从EC2实例访问S3 bucket时流量走公网还是AWS内部私有网络?
EC2实例访问S3存储桶的链路说明
这个问题的结论取决于你的AWS网络配置,没有统一答案,我给你列清楚所有常见场景:
- 默认无特殊配置场景:如果你的EC2部署在公有子网(已分配公网IP/弹性IP),且没有配置任何S3专属的VPC端点,那么访问请求会通过公共互联网传输。
- 走AWS内部私有链路场景:只要满足以下任意一种配置,访问流量就不会进入公网,全程走AWS内部骨干网:
- 你在EC2所属的VPC内创建了S3网关端点(Gateway Endpoint):这是AWS面向S3、DynamoDB提供的免费VPC端点类型,配置后对应子网的路由表会自动添加S3服务前缀的路由规则,所有发往S3的请求都会直接走内部链路转发。
- 你在EC2所属的VPC内创建了S3接口端点(Interface Endpoint):属于AWS PrivateLink能力的一种,适合部署在私有子网、没有公网出口的EC2访问S3的场景,按流量用量计费。
- 你的EC2和S3存储桶属于同一AWS区域,且配置了S3桶的私有访问规则,部分情况下也会默认走内部链路传输。
你也可以自己验证当前的访问链路:在EC2实例中执行命令nslookup s3.<你的S3所在区域代码>.amazonaws.com(AWS中国区替换为s3.<区域代码>.amazonaws.com.cn),如果返回的解析结果是10.0.0.0/8、172.16.0.0/12、192.168.0.0/16段的私有IP,说明当前走的是私有链路;如果返回公网IP,则说明请求走公网传输。
内容的提问来源于stack exchange,提问作者Surya Krishna
相关产品推荐
相关产品推荐

