2017-09-26 118 views
0

我的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相同的區域或不同區域中的存儲區?你收到什麼錯誤信息? (隨意編輯您的問題以添加詳細信息。) –

回答

1

只是FYI VPC的是真正私有的。只有您明確允許的流量可以通過VPC的邊界。

因此,在VPC內部,需要訪問外部資源的實例需要分配一個EIP(在這種情況下,他們可以使用AWS的基礎設施訪問外部資源),或者您需要提供NAT主機(在這種情況下,全部的流量通過您自己的NAT離開VPC)。

隨着2015年5月11日的,AWS已發佈了「VPC端點」爲S3,它允許直接從VPC訪問S3,而不必通過代理主機或NAT實例

你能創建端點,選擇所需的VPC,並自定義訪問策略(如果你想):

請參閱AWS Blog Post瞭解詳情。

希望這會有所幫助。