

# API 提供方：使用 Amazon 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>

首先，使用 Amazon RAM 停止资源共享。

------
#### [ Amazon Web Services 管理控制台 ]

要使用 Amazon Web Services 管理控制台，请参阅 [Update a resource share in Amazon RAM](https://docs.amazonaws.cn/ram/latest/userguide/working-with-sharing-update.html)。

------
#### [ Amazon CLI ]

使用以下 [disassociate-resource-share](https://docs.amazonaws.cn/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>

使用 Amazon RAM 停止资源共享后，您需要拒绝其他账户中的 VPC 端点与您的私有自定义域名之间的域名访问关联。

**注意**  
您不能拒绝自己账户中的域名访问关联。要停止资源共享，请删除域名访问关联。有关更多信息，请参阅[删除域名访问关联](apigateway-private-custom-domains-tutorial.md#apigateway-private-custom-domains-cleanup)。

在您拒绝与某个 VPC 端点的域名访问关联时，如果 API 使用方尝试调用您的私有自定义域名，API Gateway 会拒绝该调用并返回状态代码 `403`。

------
#### [ Amazon Web Services 管理控制台 ]

**拒绝域名访问关联**

1. 通过以下网址登录到 Amazon API Gateway 控制台：[https://console.aws.amazon.com/apigateway](https://console.amazonaws.cn/apigateway)。

1. 在主导航窗格中，选择**自定义域名**。

1. 选择您与其他 Amazon Web Services 账户共享的私有自定义域名。

1. 在**资源共享**上，选择要拒绝的域名访问关联。

1. 选择**拒绝关联**。

1. 确认选择，然后选择**拒绝**。

------
#### [ Amazon 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 端点。

------
#### [ Amazon Web Services 管理控制台 ]

**从您的资源策略中删除 API 使用方的 VPC 端点**

1. 通过以下网址登录到 Amazon API Gateway 控制台：[https://console.aws.amazon.com/apigateway](https://console.amazonaws.cn/apigateway)。

1. 在主导航窗格中，选择**自定义域名**。

1. 选择您与其他 Amazon Web Services 账户共享的私有自定义域名。

1. 在**资源策略**选项卡上，选择**编辑**。

1. 从策略中删除 VPC 端点。

1. 选择**保存更改**。

------
#### [ Amazon CLI ]

以下 [update-domain-name](https://docs.amazonaws.cn/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)。