为什么我无法删除请求者托管的 VPC 端点?

2 分钟阅读
0

为什么我无法删除请求者托管的 Amazon Virtual Private Cloud (Amazon VPC) 端点?

简短描述

删除接口 VPC 终端节点时,您可能会收到以下错误:

“vpce-0399e6e9fd2f4e430: Operation is not allowed for requester-managed VPC endpoints for the service com.amazonaws.vpce.region.vpce-svc-04c257ad126576358(vpce-0399e6e9e9fd2f4e430:不允许对该服务的请求者托管的 VPC 终端节点进行操作 com.amazonaws.vpce.region.vpce.region.vpce-04c-04c257ad126576358)”

如果要删除的终端节点是请求者托管的 VPC 终端节点,则会发生此错误。请求者托管的终端节点由任何 AWS 托管的服务(例如 Amazon Aurora Serverless)创建。要删除此类端点,您必须确定创建端点的 AWS 托管服务。确定服务后,必须先删除该资源,然后才能删除端点。

解决方法

要验证哪个 AWS 托管服务创建了终端节点,请执行以下操作:

如果终端节点是在 90 天内创建的

如果终端节点是在您尝试删除终端节点后的 90 天内创建的,请使用 AWS CloudTrail 来确定创建它的服务。确保将 CloudTrail 控制台视图设置为记录的 API 活动(管理事件)的最近 90 天。

要查看 CloudTrail 事件,请执行以下操作:

1.    打开 CloudTrail 控制台

2.    在导航窗格中,选择事件历史记录

3.    从下拉列表中选择 Resource(资源)名称,然后在筛选条件中添加 VPC 端点 ID(例如 vpce-xxxxxx)。

4.    查找 CreateVpcEndpoint API 调用并检查用户名。对于由 Aurora Serverless 创建的终端节点,用户名显示为 RDSAuroraServeless。对于由 Amazon Relational Database Service (Amazon RDS) Proxy 创建的端点,用户名显示为 RDSSlrAssumptionSession。要确定 AWS Network Firewall 创建的端点,请查看 CreateVpcEndpoint API 调用的事件记录,并检查键值为 Firewall(防火墙)和 AWSNetworkFirewallManaged 的标签:

"Tag": [
                  {
                        "Value": ""arn:aws:network-firewall:<region>:<account number>:firewall/<firewall name>",
                        "tag": 1,
                        "Key": "Firewall"

                    },
                    {
                        "Value": true,
                        "tag": 2,
                        "Key": "AWSNetworkFirewallManaged"
                    }

如果端点的时间超过 90 天

要确定 AWS Network Firewall 是否创建了终端节点,请执行以下操作

1.    打开 VPC 控制台,然后选择 Endpoints(终端节点)。

2.    选择终端节点,然后选择 Tags(标签)。

3.    检查以下事项:

  • Key(键)是 AWSNetworkFirewallManagedValue(值)是 True
  • Key(键)是 Firewall(防火墙),Value(值)是您的 Network Firewall ARN arn:aws:network-firewall:region:account number:firewall/firewall 名称

您还可以通过执行以下操作查看 AWS Network Firewall 创建的端点:

1.    打开 VPC 控制台,然后选择 Firewalls(防火墙)。

2.    选择 Firewall details(防火墙详细信息)。

要确定 Aurora Serverless 是否创建了终端节点,请执行以下操作:

如果请求者托管的接口终端节点是由 Aurora Serverless 在 90 天后创建的,请对现有 Aurora Serverless 数据库的终端节点执行名称查找。这会将别名记录作为 VPC 接口终端节点 DNS 名称返回。您可以使用它来确认终端节点是否由 Aurora Serverless 创建。

例如,您有一个无法删除的 ID 为 vpce-0013b47d434ae7786 的接口 VPC 终端节点。要验证 Aurora Serverless 是否创建了终端节点,请执行以下操作:

1.    在 Aurora Serverless 终端节点上执行名称查找:

dig test1.proxy-chnis5vssnuj.us-east-1.rds.amazonaws.com +short
vpce-0ce9fdcdd4aa4097e-1hbywnw6.vpce-svc-0b2f119acb23c050e.us-east-1.vpce.amazonaws.com.
172.31.4.218
172.31.21.82

2.    检查与您尝试删除的终端节点的 DNS 名称匹配的记录的别名记录值。这确认了此终端节点是由 Aurora Serverless 创建的。

**注意:**要验证终端节点的 DNS 名称,请执行以下操作:

1.    打开 VPC 控制台,然后选择Endpoints(终端节点)。

2.    选择 Details(详细信息)选项卡并查看列出的 DNS names(DNS 名称)。

要确定 RDS Proxy 是否创建了终端节点,请执行以下操作:

完成前面为 Aurora Serverless 提供的步骤。如果有多个 RDS Proxy 和 Aurora 无服务器端点,请对每个端点重复这些步骤。

要确定是否为 RedShift 管理的 VPC 端点,请执行以下操作:

1.    打开 Amazon Redshift console(Amazon Redshift 控制台),请选择 Configurations(配置)。

2.    检查在 Redshift-managed VPC 端点下是否配置了任何端点。

删除服务

确定创建端点的服务后,删除该服务(和相应的端点)。

**注意:**如果在运行 AWS CLI 命令时收到错误,请确保您使用的是最新版本的 AWS CLI


AWS 官方
AWS 官方已更新 1 年前