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

AWS EC2在VPC内连接S3:流量路径及网关端点使用问询

AWS VPC公有子网EC2连接S3的流量路径及网关端点使用方法

未配置S3网关型VPC端点时的流量路径

在公有子网中部署的EC2实例(带有公网IP或可通过Internet Gateway访问公网),通过Boto3连接S3时,流量会走公网路径:

  • 实例的S3请求会先通过Internet Gateway离开VPC,进入AWS公网网络,再通过AWS的公网链路访问S3服务。
  • 虽然AWS内部对这类流量有优化(不会真正进入公网互联网),但从网络架构归属和权限要求来看,属于公网流量范畴,需要实例具备公网访问权限(如安全组允许出站到公网、路由表指向Internet Gateway)。

通过Boto3使用S3网关型VPC端点的方法

要确保流量仅在AWS内网传输,需先完成VPC端点的基础配置,Boto3客户端无需额外修改即可自动利用该端点:

前置配置要求

  1. 在对应VPC中创建S3网关型VPC端点,并关联到EC2所在的公有子网路由表。
  2. 在路由表中添加路由规则:目标为S3服务的前缀列表(pl-xxxxxx),下一跳为网关型端点的ID(vpce-xxxxxx)。
  3. 确认VPC端点的访问策略允许EC2实例(或其关联的IAM角色)访问目标S3资源。
  4. EC2实例的IAM权限需包含对应的S3操作权限(如s3:ListBuckets、s3:GetObject等)。

Boto3客户端使用示例

网关型端点通过路由表和DNS解析自动生效,Boto3客户端无需指定额外参数,直接使用默认配置即可:

import boto3

# 初始化S3客户端,无需手动指定endpoint_url
s3_client = boto3.client('s3')

# 示例:列出所有有权限访问的存储桶
bucket_list = s3_client.list_buckets()
for bucket in bucket_list['Buckets']:
    print(f"存储桶名称: {bucket['Name']}")

流量路径验证方法

可在EC2实例上执行traceroute s3.amazonaws.com命令,若路由结果中出现vpce-xxxxxx相关的内网地址,说明流量已通过VPC端点传输。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 22:50:29