我想解决我在创建 Amazon Virtual Private Cloud (Amazon VPC) 接口端点时收到的错误。
简短描述
创建 Amazon VPC 接口端点时,您可能会由于以下原因收到错误:
- 您超过了端点的 Amazon VPC 服务配额限制。
- API 发生节流。
- 私有 DNS 命名空间重叠。
- 您的 AWS Identity and Access Management (IAM) 权限不足。
解决方法
**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅排查 AWS CLI 错误。此外,请确保您使用的是最新版本的 AWS CLI。
**先决条件:**在 your AWS CloudTrail events(您的 AWS CloudTrail 事件)中找到 CreateVpcEndpoint API 调用。
对超出 Amazon VPC 服务配额的接口端点进行故障排除
**重要事项:**共享子网中的 VPC 端点总数不能超过拥有者的 AWS 账户的配额。
默认情况下,每个 VPC 的接口端点和网关负载均衡器端点的配额为 50,其中包括参与者账户创建的 VPC 端点。有关详细信息,请参阅 AWS PrivateLink quotas(AWS PrivateLink 配额)。
您超过了端点的 Amazon VPC 服务配额限制
如果您创建的端点数量超过了服务配额允许的数量,您可能会在 CloudTrail 事件中收到以下错误:
"errorCode": "Client.VpcEndpointLimitExceeded",
"errorMessage": "Limit of VPC endpoints per VPC exceeded."
要解决此问题,请 request a service quota increase(申请增加服务配额)。
您在共享 Amazon VPC 中使用参与者账户创建了 Amazon VPC 端点
**注意:**参与者账户无法在共享子网中创建接口端点。但是,如果参与者账户在 VPC 的共享子网中配置了支持的服务,该服务将在共享子网中创建接口端点。
如果您利用参与者 AWS 账户创建端点,则会发生以下错误:
"errorCode": "Client.UnauthorizedOperation"
"errorMessage": "This operation does not support shared VPCs."
运行 describe-subnets 命令,验证子网所有权并检查 SubnetArn:
aws ec2 describe-subnets --subnet-ids example-subnet-id
**注意:**请将 example-subnet-id 替换为您的子网 ID。
要解决此错误,请从 Amazon VPC 拥有者账户创建端点。有关详细信息,请参阅管理 VPC 资源。
您在共享 Amazon VPC 中使用拥有者账户创建的 Amazon VPC 端点包含参与者账户拥有的安全组
如果您使用拥有者账户创建的端点包含参与者账户拥有的安全组,则会出现以下错误:
"errorCode": "Client.InvalidParameter",
"errorMessage": "You are not authorized to perform CreateNetworkInterface operation.A subnet in this vpc is shared but the provided object is not owned by you"
运行 describe-security-groups 命令,检查安全组的 OwnerId:
aws ec2 describe-security-groups --group-id security-group-id
**注意:**请将 security-group-id 替换为您的安全组 ID。
要解决此错误,请使用与拥有者账户属于同一账户的安全组。
API 发生节流
如果您的 API 调用发生节流,您的 CloudTrail 事件中会出现以下错误:
"errorCode": "Client.RequestLimitExceeded",
"errorMessage": "Request limit exceeded."
要解决此错误,请执行以下操作:
- 使用回退机制重试失败的 API 请求。
- 处理多个资源。
- 延长请求之间的休眠间隔以降低请求率。
**注意:**最佳做法是使用递增或可变的休眠间隔。
有关详细信息,请参阅 Request throttling for the Amazon Elastic Compute Cloud (Amazon EC2) API(Amazon Elastic Compute Cloud (Amazon EC2) API 的请求节流)。
私有 DNS 命名空间重叠
如果您的私有 DNS 命名空间重叠,您的 CloudTrail 事件中会出现以下错误:
"errorCode": "Client.InvalidParameter",
"errorMessage": "private-dns-enabled cannot be set because there is already a conflicting DNS domain for in VPC "
以下问题会导致此错误:
- Amazon VPC 中存在带有私有 DNS 的现有接口端点,可用于相同服务。
- 服务名称相同的私有托管区与 Amazon VPC 相关联。
要解决此错误,请在创建端点时停用 PrivateDNSEnabled 并使用默认的 Amazon VPC 端点 DNS。对于具有私有托管区且命名空间重叠的 Amazon VPC,使用默认 Amazon VPC 端点 DNS 手动创建 ALIAS 记录。
与 Amazon VPC 关联的 Amazon Route 53 私有托管区可以位于不同的账户中。要查看有关所有私有托管区关联的详细信息,请运行 list-hosted-zones-by-vpc 命令:
aws route53 list-hosted-zones-by-vpc --vpc-id example-vpc-ID --vpc-region example-region
**注意:**请将 example-vpc-ID 替换为您的 VPC ID,将 example-region 替换为您的 AWS 区域。
IAM 权限不足
如果您没有足够的 IAM 权限来创建 Amazon VPC 端点,则会收到“AccessDenied”错误。要解决此错误,请查看发起 API 调用的 IAM 角色的权限。然后,更新 IAM 角色,使其具备所需权限。
相关信息
拥有者和参与者的责任和权限
Amazon VPC 配额