我无法使用接口 Amazon Virtual Private Cloud(Amazon VPC)终端节点连接到我的 Amazon Simple Storage Service(Amazon S3)存储桶。如何排查此问题?
简短描述
要排查此错误,请检查以下各项:
- 验证与接口 VPC 终端节点和 S3 存储桶关联的策略。
- 验证您的网络是否可以连接到 S3 终端节点。
- 验证您的 DNS 是否可以解析为 S3 终端节点 IP 地址。
**注意:**如果您在运行 AWS Command Line Interface(AWS CLI)命令时遇到错误,请确保您使用的是最新版本的 AWS CLI。
解决方法
验证与接口 VPC 终端节点和 S3 存储桶关联的策略
默认情况下,在您创建存储桶时,S3 存储桶没有与其关联的策略。默认情况下,在创建期间与 S3 接口终端节点关联的策略允许对任何 S3 存储桶执行任何操作。有关查看终端节点关联策略的信息,请参阅查看您的接口终端节点。
验证您的网络是否可以连接到 S3 终端节点
检查源和目标之间的连接性。例如,检查网络访问控制列表(ACL)和与 S3 接口终端节点关联的安全组,以确认允许流量流入接口终端节点。
使用以下 telnet 命令测试 AWS 资源或本地部署主机与 S3 终端节点之间的连接性。在以下命令中,将 S3_interface_endpoint_DNS 替换为您的 S3 接口终端节点的 DNS。
telnet bucket.S3_interface_endpoint_DNS 443
Trying a.b.x.y...
Connected to bucket.vpce-0a1b2c3d4e5f6g-m7o5iqbh.s3.us-east-2.vpce.amazonaws.com
您还可以通过测试 Amazon Elastic Compute Cloud(Amazon EC2)实例来测试 telnet 的连接性。在您拥有来自源(本地部署主机或其他实例)的终端节点的子网中测试连接性,以验证从源到目标 AWS 资源的第 3 层连接是否存在。确保在与 S3 接口终端节点关联的测试实例中使用相同的安全组。测试此连接性有助于确定问题出在安全组还是网络 ACL 上。
验证 DNS 是否可以解析为 S3 终端节点
确保您可以从源解析接口终端节点 DNS。您可以使用诸如 nslookup、dig 等工具来执行此操作。以下示例使用 dig。在以下命令中,将 S3_interface_endpoint_DNS 替换为您的 S3 接口终端节点的 DNS。
dig *s3_interface_endpoint_DNS@local_nameserver
**注意:**Amazon 提供的 DNS 服务器是 VPC CIDR 的 .2 IP 地址。您的本地部署主机是 /etc/resolv.conf 文件中列出的主机的本地名称服务器。
相关信息
从 S3 接口终端节点访问存储桶和 S3 访问点