You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法通过网关VPC终端节点连接到S3存储桶

问题描述

默认VPC内的us-east-2区域EC2实例,尝试通过网关VPC终端节点连接同区域S3存储桶失败,执行aws s3 ls时出现以下错误:

[ec2-user@ip-172-31-37-114 ~]$ aws s3 ls
Connect timeout on endpoint URL: "https://s3.amazonaws.com/"
[ec2-user@ip-172-31-37-114 ~]$

已确认的配置项:

  • VPC DNS解析功能已开启
  • VPC路由表已配置通过网关终端节点访问S3的规则
  • EC2安全组出站规则允许全端口/全流量
  • VPC网络ACL允许所有进出流量
  • 存储桶策略开放公网访问权限
  • EC2实例绑定了附加S3FullAccess策略的IAM角色
  • 存储桶与EC2实例同属us-east-2区域
排查与解决步骤
  1. 修正AWS CLI区域配置
    S3网关终端节点仅对区域特定端点(如s3.us-east-2.amazonaws.com)生效,而默认的s3.amazonaws.com是全局端点,会走公网路由而非终端节点。

    • 先检查当前CLI区域配置:
      aws configure get region
      
    • 若输出不是us-east-2,执行命令设置区域:
      aws configure set region us-east-2
      
    • 也可在单次命令中指定区域参数测试:
      aws s3 ls --region us-east-2
      
  2. 验证终端节点DNS解析有效性
    在EC2实例上执行nslookup,确认区域端点解析到VPC内网IP:

    nslookup s3.us-east-2.amazonaws.com
    

    若返回公网IP,需再次检查:

    • VPC的DNS主机名和DNS解析是否均已开启(默认VPC通常已开启,但需确认)
    • 网关终端节点是否已关联到EC2实例所在子网的路由表
  3. 检查路由表条目优先级
    确保路由表中指向S3前缀列表(pl-xxxx)的终端节点路由,优先级高于默认路由(0.0.0.0/0)。若默认路由优先级更高,流量会优先走公网而非终端节点。

  4. 直接测试区域端点连通性
    用curl直接访问区域端点验证网络连通性:

    curl -v https://s3.us-east-2.amazonaws.com
    

    若返回XML格式的权限提示(如AccessDenied),说明网络连通正常,问题出在CLI配置;若仍超时,需重新检查终端节点的关联状态和路由规则。

补充说明

S3网关终端节点不依赖安全组配置(仅网络ACL和路由表生效),因此之前的安全组配置无问题。另外,存储桶开放公网访问不是必要条件——通过终端节点的内网访问仅依赖EC2绑定的IAM角色权限。

内容的提问来源于stack exchange,提问作者meallhour

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 14:15:37