使用 AWS SDK 通过 Direct Connect、VPC 和 VPC Endpoint 从本地环境访问 AWS S3

Accessing the AWS S3 from on-premise world through Direct Connect, VPC and VPC Endpoint using AWS SDK

我们的设置:

我们的假设是一切都正确路由(本地可以看到 AWS 中的 VPC)。假设 VPC CIDR 范围是 10.10.10.0/24.

当我们在 SDK 中调用 "PutObject"(但可以是任何 S3 方法)并提供我们的存储桶名称时,来自 SDK 的结果请求的目标是 public S3 IP 地址( 52.xxx)。但是,这不会路由为:Direct Connect -> VPC -> VPC Endpoint -> S3,相反,我们的路由器会将流量路由到互联网代理(作为默认 0.0.0.0/0 路由)——因为 VPC CIDR 范围是 10.10.10.0/24。

我的问题是(很明显):是否有通过 AWS Direct Connect 而不是通过互联网路由流量的正确方法

我希望得到类似的东西:

免责声明:我不是真正的网络或 AWS 基础设施专家,请原谅我的一些含糊不清。

您无法在不使用 proxies 的情况下通过 Direct Connect 私有 VIF 访问 VPC 端点。

您可以改为分配 public VIF。当您在 VGW 中启用路由传播时,AWS 会将所有 public 路由通告到客户的路由器,因此流向该区域中 AWS 服务的所有流量都将通过 Direct Connect。

A public virtual interface can access all AWS public services using public IP addresses. A public virtual interface allows you to connect to all AWS public IP spaces globally. Direct Connect customers in any Direct Connect location can create public virtual interfaces to receive Amazon’s global IP routes

AWS 现在支持 s3 的私有链接,允许使用端点特定的 DNS 名称直接通过 Direct Connect/VPN 发送流量。 https://aws.amazon.com/blogs/aws/aws-privatelink-for-amazon-s3-now-available/