

# API 공급자: AWS RAM을 사용하여 프라이빗 사용자 지정 도메인 이름 공유 중지
<a name="apigateway-private-custom-domains-provider-stop-sharing"></a>

프라이빗 사용자 지정 도메인 이름 공유를 중지하려면 먼저 API 소비자가 리소스 공유를 연결 해제하여 더 많은 도메인 이름 액세스 연결을 생성하지 못하도록 합니다. 그런 다음 도메인 이름 액세스 연결을 거부하고 `execute-api` 서비스에 대한 `policy`에서 API 소비자의 VPC 엔드포인트를 제거합니다. 그러면 API 소비자가 도메인 이름 액세스 연결을 삭제할 수 있습니다.

## 프라이빗 사용자 지정 도메인 이름 공유 중지
<a name="apigateway-private-custom-domains-provider-dissociate-ram"></a>

먼저 AWS RAM을 사용하여 리소스 공유를 중지합니다.

------
#### [ AWS Management Console ]

AWS Management Console을 사용하려면 [AWS RAM의 리소스 공유 업데이트](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-update.html)를 참조하세요.

------
#### [ AWS CLI ]

다음 [disassociate-resource-share](https://docs.aws.amazon.com/cli/latest/reference/ram/disassociate-resource-share.html)는 프라이빗 사용자 지정 도메인 이름에 대한 리소스 공유의 연결을 해제합니다.

```
aws ram disassociate-resource-share \
    --region us-west-2 \
    --resource-arns arn:aws:apigateway:us-west-2:111122223333:/domainnames/private.example.com+abcd1234 \
    --principals 222222222222
```

------

## 도메인 이름 액세스 연결 거부
<a name="apigateway-private-custom-domains-provider-reject"></a>

AWS RAM을 사용하여 리소스 공유를 중지한 후에는 다른 계정의 VPC 엔드포인트와 프라이빗 사용자 지정 도메인 이름 간의 도메인 이름 액세스 연결을 거부합니다.

**참고**  
자신의 계정에서 도메인 이름 액세스 연결을 거부할 수 없습니다. 리소스 공유를 중지하려면 도메인 이름 액세스 연결을 삭제합니다. 자세한 내용은 [도메인 이름 액세스 연결 삭제](apigateway-private-custom-domains-tutorial.md#apigateway-private-custom-domains-cleanup)를 참조하세요.

VPC 엔드포인트와의 도메인 이름 액세스 연결을 거부하는 경우 API 소비자가 프라이빗 사용자 지정 도메인 이름을 직접적으로 호출하려고 하면 API Gateway는 직접적 호출을 거부하고 `403` 상태 코드를 반환합니다.

------
#### [ AWS Management Console ]

**도메인 이름 액세스 연결을 거부하려면**

1. [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway)에서 API Gateway 콘솔에 로그인합니다.

1. 기본 탐색 창에서 **사용자 지정 도메인 이름**을 선택합니다.

1. 다른 AWS 계정과 공유한 프라이빗 사용자 지정 도메인 이름을 선택합니다.

1. **리소스 공유**에서 거부할 도메인 이름 액세스 연결을 선택합니다.

1. **연결 거부**를 선택합니다.

1. 선택 사항을 검토한 다음 **거부**를 선택합니다.

------
#### [ AWS CLI ]

다음 `reject-domain-name-access-association` 명령은 VPC 엔드포인트와 프라이빗 사용자 지정 도메인 이름 간의 도메인 이름 액세스 연결을 거부합니다.

```
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
```

------

## 프라이빗 사용자 지정 도메인 이름을 간접적으로 호출하기 위한 API 공급자 액세스 거부
<a name="apigateway-private-custom-domains-provider-deny-access"></a>

도메인 이름 액세스 연결을 거부한 후에는 `execute-api` 서비스에 대한 `policy`에서 API 소비자의 VPC 엔드포인트를 제거합니다.

------
#### [ AWS Management Console ]

**리소스 정책에서 API 소비자의 VPC 엔드포인트를 제거하려면**

1. [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway)에서 API Gateway 콘솔에 로그인합니다.

1. 기본 탐색 창에서 **사용자 지정 도메인 이름**을 선택합니다.

1. 다른 AWS 계정과 공유한 프라이빗 사용자 지정 도메인 이름을 선택합니다.

1. **리소스 정책** 탭에서 **편집**을 선택합니다.

1. 정책에서 VPC 엔드포인트를 제거합니다.

1. **변경 사항 저장**을 선택합니다.

------
#### [ AWS CLI ]

다음 [update-domain-name](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-domain-name.html) 명령은 패치 작업을 사용하여 프라이빗 사용자 지정 도메인 이름의 `execute-api` 서비스에 대한 `policy`를 업데이트합니다. 이 새 `policy`는 [다른 계정이 프라이빗 사용자 지정 도메인 이름을 간접적으로 호출하도록 허용](apigateway-private-custom-domains-provider-share.md#apigateway-private-custom-domains-provider-policy-update)에 추가된 추가 VPC 엔드포인트 ID를 제거합니다.

```
aws apigateway update-domain-name
    --domain-name private.example.com \
    --domain-name-id abcd1234 \
    --patch-operations op=replace,path=/policy,value='"{\"Version\": \"2012-10-17\",		 	 	 \"Statement\": [{\"Effect\": \"Allow\",\"Principal\": \"*\",\"Action\": \"execute-api:Invoke\",\"Resource\":[\"execute-api:/*\"]},{\"Effect\": \"Deny\",\"Principal\": \"*\",\"Action\": \"execute-api:Invoke\",\"Resource\":[\"execute-api:/*\"],\"Condition\":{\"StringNotEquals\":{\"aws:SourceVpce\": \"vpce-abcd1234efg\"}}}]}"
```

------

그런 다음 API 소비자는 도메인 이름 액세스 연결을 삭제해야 합니다. 해당 사용자에 대해서는 삭제할 수 없습니다. 자세한 내용은 [API 소비자: 프라이빗 사용자 지정 도메인 이름과의 도메인 이름 액세스 연결 삭제](apigateway-private-custom-domains-consumer-delete-domain-name-access-association.md) 섹션을 참조하세요.