簡體   English   中英

將文件放入私有子網的 S3 存儲桶中

[英]putting a file in S3 bucket in private subnet

過去兩天我一直在努力解決這個問題。 我正在嘗試將文件放入私有子網的 S3 存儲桶中。 下面是我的代碼:

var s3Config = new AmazonS3Config() { ServiceURL = "https://myVPCnameamazonaws.com" };
            using (var cli = new AmazonS3Client(
               awsAccessKey,
               awsSecretKey,
               s3Config))

            {
                PutObjectRequest req = new PutObjectRequest()
                {
                    BucketName = "test",
                    ContentType = "image/jpg",
                    InputStream = st,
                    Key = fileName
                    
                };
                var response = cli.PutObject(req);

在我的代碼的最后一行中,我收到一條錯誤消息:HttpErrorResponseException:遠程服務器返回錯誤:(403) Forbidden。 內部異常:

WebException:遠程服務器返回錯誤:(403) Forbidden。

在此處輸入圖片說明

我不確定我應該寫什么代碼來擺脫這個錯誤。 我正在使用 AWS 工具包。 Visual Studio 2019..net 框架 4.7.2

對此的任何幫助將不勝感激。

問題似乎是 AccessDenied 響應,它表明您的請求已到達 S3,但您的憑據無權將對象上傳到該 S3 存儲桶。

檢查與您的 AWS 憑證關聯的 IAM 策略。 他們是否擁有必要的 S3 權限?

適當的策略將包括如下內容(假設您的存儲桶名稱是mybucket ):

{
   "Version":"2012-10-17",
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "s3:PutObject",
            "s3:PutObjectAcl"
         ],
         "Resource":"arn:aws:s3:::mybucket/*"
      }
   ]
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM