AWS .NET SDK:无法从S3端点

AWS .NET SDK:无法从S3端点

问题描述:

我的Web服务器需要访问S3访问S3。当我将它们放置在公共子网,或将它们放置在专用子网,并使用NAT网关,一切工作正常:AWS .NET SDK:无法从S3端点

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); 

现在我试图把与S3端点专用子网的Web服务器,我的代码不能再访问S3。我需要更改代码吗?

+1

你有没有配置路由表使用S3 VPC端点?您是否尝试访问与您的VPC相同的区域或不同区域中的存储区?你收到什么错误信息? (随意编辑您的问题以添加详细信息。) –

只是FYI VPC的是真正私有的。只有您明确允许的流量可以通过VPC的边界。

因此,在VPC内部,需要访问外部资源的实例需要分配一个EIP(在这种情况下,他们可以使用AWS的基础设施访问外部资源),或者您需要提供NAT主机(在这种情况下,全部的流量通过您自己的NAT离开VPC)。

随着2015年5月11日的,AWS已发布了“VPC端点”为S3,它允许直接从VPC访问S3,而不必通过代理主机或NAT实例

你能创建端点,选择所需的VPC,并自定义访问策略(如果你想):

请参阅AWS Blog Post了解详情。

希望这会有所帮助。