如何排查网关 Amazon VPC 端点的连接问题?

2 分钟阅读
0

我想排查网关 Amazon Virtual Private Cloud(Amazon VPC)端点的连接问题。

简短描述

网关 VPC 端点让您能够从自己的 Amazon VPC 私密连接到 Amazon Simple Storage Service(Amazon S3)和 Amazon DynamoDB。网关 VPC 端点连接问题可能是由于网络访问或者允许连接的安全规则导致。

若要对连接问题进行故障排除,请使用 Reachability Analyzer。此外,请确认以下配置:

  • AWS 区域配置
  • DNS 解析
  • 子网路由表设置
  • 安全组
  • 网络访问控制列表(网络 ACL)规则
  • Amazon VPC 端点策略
  • Amazon S3 存储桶策略
  • AWS Identity and Access Management(AWS IAM)策略
  • 流经网关端点的流量

解决方法

**注意:**如果在运行 AWS 命令行界面(AWS CLI)命令时收到错误,请参阅排查 AWS CLI 错误。此外,确保您使用的是最新版本的 AWS CLI

使用 Reachability Analyzer

使用 Reachability Analyzer 对源和网关端点之间的连接问题进行故障排除。有关更多信息,请参阅如何使用 Amazon VPC Reachability Analyzer 来解决 Amazon VPC 资源的连接问题?

检查区域配置

网关端点仅在创建它们的区域中可用。请务必在与 Amazon S3 存储桶或 DynamoDB 表相同的区域创建网关端点。要查找存储桶所在的区域,请运行 get-bucket-location AWS CLI 命令。

此外,当您使用 SDK 从网关端点访问服务时,请确认区域。确保将区域配置为服务资源所在的区域。例如,针对 Boto3 使用 Config object,针对 AWS CLI 使用 AWS Config

**注意:**发送到错误区域的请求可能会导致超时,或者通过互联网访问服务。具体取决于在源子网上配置的路由表。

检查 DNS 解析

检查 Amazon VPC 中的 DNS 设置。必须在 Amazon VPC 中激活 DNS 解析。如果使用自己的 DNS 服务器,请确保将发往 AWS 服务的 DNS 请求解析到 AWS 维护的 IP 地址

检查子网路由表设置

检查路由表设置。确认存在使用网关 VPC 端点通往 Amazon S3 和 DynamoDB 的路由

检查安全组

针对发起与 Amazon S3 和 DynamoDB 连接的源,检查与其关联的安全组。确认可用的出站规则,使其允许流向 Amazon S3 或 DynamoDB 的流量。如果安全组的规则比默认出站规则更严格,请确认下面其中一项:

  • 存在这样一条出站规则,其允许向与网关 Amazon VPC 端点关联的前缀列表 ID 发送流量。
  • 目标中存在一个特定于服务的 CIDR 块(IP 地址范围)。如果没有特定于服务的 CIDR 块,则无法添加特定于服务的 CIDR 块。最佳实践是使用该服务提供的前缀列表 ID,因为 AWS 管理着前缀列表 IP 地址范围。

要查看特定区域中 Amazon S3 和 DynamoDB 的公共 IP CIDR,请运行 AWS CLI 命令 describe-prefix-lists。将 example-region 替换为您的区域:

aws ec2 describe-prefix-lists --region <example-Region>

检查网络 ACL 规则

子网网络 ACL 必须允许与区域内的 Amazon S3 或 DynamoDB 服务 CIDR 建立入站和出站 TCP 连接。检查网络 ACL 规则并确认下面的内容:

  • 入站规则视图中,确认这些规则允许您尝试访问的服务通过临时 TCP 端口 1024-65535 发送入站返回流量。
  • 出站规则视图中,确认这些规则允许通过 HTTPS 发往服务 CIDR 块(IP 地址范围)的流量。

**注意:**默认情况下,网络 ACL 允许所有入站和出站 IPv4 和 IPv6 流量。如果您的网络 ACL 规则对流量有限制,请为创建网关端点的服务指定 CIDR 块。最佳实践是设置服务 IP 地址更改通知,并使用脚本自动更新网络 ACL 规则。有关更多信息,请参阅如何获取 Amazon S3 IP 地址更改检查通知?

检查 Amazon VPC 端点策略

查看 Amazon VPC 端点策略。使用自定义端点策略时,请确认与端点关联的策略允许对服务执行操作的访问权限。默认端点策略允许对服务进行完全访问。有关更多信息,请参阅 Control access to VPC endpoints using endpoint policies

查看 Amazon S3 存储桶策略

查看 Amazon S3 存储桶策略,确认该存储桶策略允许来自网关 Amazon VPC 端点和 Amazon VPC 的访问。有关更多信息,请参阅 Control access using bucket policies

**注意:**您的存储桶策略只能限制来自与 Amazon VPC 中的实例关联的特定公共 IP 地址或弹性 IP 地址的访问。您的存储桶策略可以根据与实例关联的私有 IP 地址限制访问权限。有关更多信息,请参阅根据特定 IP 地址管理访问权限

如果使用代理服务器,请确认该服务器允许您的 Amazon VPC 连接。如果不使用 Amazon S3 代理服务器,请在访问存储桶时运行以下命令,以绕过代理服务器。将 example-region 替换为您的区域:

export no_proxy = mybucket.s3.<example-Region>.amazonaws.com

检查 IAM 策略

检查 IAM 策略,确认 IAM 用户或角色的关联用户是否具有访问 Amazon S3 所需的权限。有关更多信息,请参阅 How to restrict Amazon S3 bucket access to a specific IAM role使用用户策略控制对存储桶的访问

检查流经网关端点的流量

要检查流量是流经网关端点还是接口端点,请参阅 How do I check if my Amazon S3 traffic is going through a gateway VPC endpoint or an interface VPC endpoint?

相关信息

适用于 AWS 资源的 Access Management

AWS 官方
AWS 官方已更新 6 个月前