【问题标题】:AWS .NET SDK: cannot access S3 from S3 endpointAWS .NET SDK:无法从 S3 端点访问 S3
【发布时间】:2017-09-26 07:13:49
【问题描述】:

我的 Web 服务器需要访问 S3。当我将它们放在公共子网中,或者将它们放在私有子网中并使用 NAT 网关时,一切正常:

IAmazonS3 client = new AmazonS3Client("myaccesskey", "mysecretkey", enRegion);
PutObjectRequest putReq = new PutObjectRequest();
putReq.FilePath = "c:\temp\myphoto.jpg";
putReq.BucketName = "MyBucket";
putReq.Key = "myphoto.jpg";
PutObjectResponse putResp = client.PutObject(putReq);

现在我尝试将 Web 服务器放置在具有 S3 端点的私有子网中,我的代码无法再访问 S3。我需要更改代码吗?

【问题讨论】:

  • 您是否已将路由表配置为使用 S3 VPC 端点?您是否尝试访问与您的 VPC 位于同一区域或不同区域的存储桶?您收到什么错误消息? (随时编辑您的问题以添加详细信息。)

标签: amazon-web-services amazon-s3 endpoint


【解决方案1】:

仅供参考的 VPC 是真正私有的。只有您明确允许的流量才能通过 VPC 的边界。

因此,在 VPC 内部,需要访问外部资源的实例要么需要分配 EIP(在这种情况下,它们可以使用 AWS 的基础设施访问外部资源),要么您需要提供 NAT 主机(在这种情况下,所有流量通过您自己的 NAT 流出 VPC)。

截至 2015 年 5 月 11 日,AWS 发布了适用于 S3 的“VPC Endpoint”,允许直接从 VPC 访问 S3,而无需通过代理主机或 NAT 实例

您可以创建 Endpoint,选择所需的 VPC,并自定义访问策略(如果需要):

详情请参考AWS Blog Post

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-22
    • 1970-01-01
    • 2017-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-21
    相关资源
    最近更新 更多