쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

API 공급자: API Gateway AWS CLI를 사용하여 프라이빗 사용자 지정 도메인 이름 공유

포커스 모드
API 공급자: API Gateway AWS CLI를 사용하여 프라이빗 사용자 지정 도메인 이름 공유 - Amazon API Gateway

API Gateway AWS CLI를 사용하여 프라이빗 사용자 지정 도메인 이름을 공유할 수 있지만 AWS RAM을 사용하여 운영 오버헤드를 줄이는 것이 좋습니다. AWS RAM을 사용하여 프라이빗 사용자 지정 도메인 이름을 공유하는 방법에 대한 지침은 API 공급자: AWS RAM을 사용하여 프라이빗 사용자 지정 도메인 이름 공유 섹션을 참조하세요.

API Gateway AWS CLI를 사용하여 프라이빗 사용자 지정 도메인 이름을 공유하려면 다른 AWS 계정 액세스 권한을 부여하여 도메인 이름 액세스 연결을 생성하고 프라이빗 사용자 지정 도메인 이름을 간접적으로 호출합니다. 이렇게 하려면 API Gateway Management 서비스의 managementPolicy와 프라이빗 사용자 지정 도메인 이름의 execute-api 서비스에 대한 policy를 업데이트합니다. 또한 프라이빗 사용자 지정 도메인 이름에 매핑된 프라이빗 API에 대한 리소스 정책에서 API 소비자의 VPC 엔드포인트에 대한 액세스 권한을 부여해야 합니다.

API 소비자는 VPC 엔드포인트와 프라이빗 사용자 지정 도메인 이름 간에 자체 계정에서 도메인 이름 액세스 연결을 생성해야 합니다. 이 작업을 수행할 수 없습니다.

프라이빗 사용자 지정 도메인 이름에 대한 액세스 권한 부여

프라이빗 사용자 지정 도메인 이름에 대한 액세스 권한을 부여하려면
  1. API Gateway Management 서비스의 managementPolicy를 업데이트하려면 정책을 업데이트하는 패치 작업이 포함된 JSON 파일을 생성합니다. 다음 patch-managementPolicy.json에서는 현재 managementPolicy를 프라이빗 사용자 지정 도메인 이름 private.example.com과 도메인 이름 액세스 연결을 생성할 수 있는 액세스 권한을 AWS 계정 111122223333 및 444455556666에 부여하는 예제 정책으로 바꿉니다.

    [{ "op": "replace", "path": "/managementPolicy", "value": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":[\"arn:aws:iam::111122223333:root\", \"arn:aws:iam::444455556666:root\"]},\"Action\":\"apigateway:CreateAccessAssociation\",\"Resource\":\"arn:aws:apigateway:us-west-2:111122223333:/domainnames/private.example.com+abcd1234\"}]}" }]

    다음 update-domain-name 명령은 patch-managementPolicy.json을 사용하여 managementPolicy를 업데이트합니다.

    aws apigateway update-domain-name \ --domain-name private.example.com \ --domain-name-id abcd1234 \ --patch-operations file://patch-managementPolicy.json

    액세스 권한을 부여한 후에는 API 소비자에게 도메인 이름 액세스 연결을 구성할 수 있음을 알려야 합니다. AWS RAM을 사용하는 경우 AWS RAM이 이 단계를 대신 수행합니다.

  2. execute-api 서비스의 policy를 업데이트하려면 정책을 업데이트하는 패치 작업이 포함된 JSON 파일을 생성합니다. 다음 patch-policy.json에서는 현재 policy를 프라이빗 사용자 지정 도메인 이름 private.example.com을 간접적으로 호출하기 위해 두 개의 VPC 엔드포인트를 부여하는 예제 정책으로 바꿉니다.

    [{ "op": "replace", "path": "/policy", "value": "{\"Version\": \"2012-10-17\",\"Statement\": [{\"Effect\": \"Allow\",\"Principal\": \"*\",\"Action\": \"execute-api:Invoke\",\"Resource\": \"arn:aws:execute-api:us-west-2:111122223333:/domainnames/private.example.com+abcd1234\"},{\"Effect\": \"Deny\",\"Principal\": \"*\",\"Action\": \"execute-api:Invoke\",\"Resource\": \"arn:aws:execute-api:us-west-2:111122223333:/domainnames/private.example.com+abcd1234\",\"Condition\": {\"StringNotEquals\": {\"aws:SourceVpce\": [\"vpce-abcd1234efg\",\"vpce-xyz000abc\"]}}}]}" }]

    다음 update-domain-name 명령을 사용하면 patch-policy.json을 사용하여 policy를 업데이트할 수 있습니다.

    aws apigateway update-domain-name \ --domain-name private.example.com \ --domain-name-id abcd1234 \ --patch-operations file://patch-policy.json

프라이빗 사용자 지정 도메인 이름에 대한 액세스 거부

프라이빗 사용자 지정 도메인 이름 공유를 중지하려면 프라이빗 사용자 지정 도메인 이름과 API 소비자의 VPC 엔드포인트 간의 도메인 이름 액세스 연결을 거부해야 합니다.

프라이빗 사용자 지정 도메인 이름에 대한 액세스를 거부하려면
  1. 다음 reject-domain-name-access-association 명령은 도메인 이름 액세스 연결을 거부합니다.

    aws apigateway reject-domain-name-access-association \ --domain-name-access-association-arn arn:aws:apigateway:us-west-2:444455556666:/domainnameaccessassociations/domainname/private.example.com+abcd1234/vpcesource/vpce-abcd1234efg \ --domain-name-arn arn:aws:apigateway:us-west-2:111122223333:/domainnames/private.example.com+abcd1234
  2. patch-managementPolicy.json을 수정하여 API 공급자의 계정에 대한 액세스를 제거하여 프라이빗 사용자 지정 도메인 이름과 도메인 이름 액세스 연결을 생성합니다. 다음 patch-managementPolicy.jsonmanagementPolicy에서 계정 하나를 제거합니다.

    [{ "op": "replace", "path": "/managementPolicy", "value": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":\"*\",\"Action\":\"apigateway:CreateAccessAssociation\",\"Resource\":\"arn:aws:apigateway:us-west-2:111122223333:/domainnames/private.example.com+abcd1234\"}]}" }]

    다음 update-domain-name 명령은 patch-managementPolicy.json을 사용하여 managementPolicy를 업데이트합니다.

    aws apigateway update-domain-name \ --domain-name private.example.com \ --domain-name-id abcd1234 \ --patch-operations file://patch-managementPolicy.json
  3. patch-policy.json을 수정하여 API 공급자의 VPC 엔드포인트에 대한 액세스를 제거하여 프라이빗 사용자 지정 도메인 이름을 간접적으로 호출합니다. 다음 patch-policy.jsonpolicy에서 VPC 엔드포인트 ID를 제거합니다.

    [{ "op": "replace", "path": "/policy", "value": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":\"*\",\"Action\":\"execute-api:Invoke\",\"Resource\":\"arn:aws:execute-api:us-west-2:111122223333:/domainnames/private.example.com+abcd1234\"},{\"Effect\":\"Deny\",\"Principal\":\"*\",\"Action\":\"execute-api:Invoke\",\"Resource\":\"arn:aws:execute-api:us-west-2:111122223333:/domainnames/private.example.com+abcd1234\",\"Condition\":{\"StringNotEquals\":{\"aws:SourceVpce\":\"vpce-abcd1234efg\"}}}]}" }]

    다음 update-domain-name 명령은 patch-policy.json을 사용하여 policy를 업데이트합니다.

    aws apigateway update-domain-name \ --domain-name private.example.com \ --domain-name-id abcd1234 \ --patch-operations file://patch-policy.json

이 절차에 사용되는 정책 예제

다음 섹션에서는 이전 절차에서 사용한 정책 예제를 보여줍니다.

다음 예제 정책은 Amazon API Gateway Management 서비스용 managementPolicy에 대한 정책입니다. 이 정책은 AWS 계정 111122223333 및 444455556666에 프라이빗 사용자 지정 도메인 이름 private.example.com과 도메인 이름 액세스 연결을 생성할 수 있는 액세스 권한을 부여합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "111122223333", "444455556666" ] }, "Action": "apigateway:CreateAccessAssociation", "Resource": "arn:aws:apigateway:us-west-2:111122223333:/domainnames/private.example.com+a1b2c3" } ] }

다음 예제 정책은 execute-api 서비스에 대한 policy의 정책입니다. 이 정책은 VPC 엔드포인트 vpce-abcd1234efg와 프라이빗 사용자 지정 도메인 이름을 간접적으로 호출할 수 있는 vpce-xyz000abc 액세스 권한을 부여합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "execute-api:Invoke", "Resource": "arn:aws:execute-api:us-west-2:111122223333:/domainnames/private.example.com+abcd1234" }, { "Effect": "Deny", "Principal": "*", "Action": "execute-api:Invoke", "Resource": "arn:aws:execute-api:us-west-2:111122223333:/domainnames/private.example.com+abcd1234", "Condition": { "StringNotEquals": { "aws:SourceVpce": [ "vpce-abcd1234efg", "vpce-xyz000abc" ] } } } ] }
프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.