簡體   English   中英

AWS S3存儲桶訪問被拒絕

[英]AWS S3 Bucket Access Denied

這是我在存儲桶中實施的存儲桶策略。

    {
    "Id": "Policy1535460101139",
    "Version": "2012-10-17",
    "Statement": [
      {
       "Sid": "Stmt1535460099601",
       "Action": "s3:*",
       "Effect": "Deny",
       "Resource": "arn:aws:s3:::bucketname",
       "Condition": {
       "StringNotEquals": {
          "aws:SourceVpc": "vpc-id"
        }
      },
      "Principal": "*"
    }
  ]
}

保存此存儲區策略后,我無法從控制台(我擁有s3完全訪問權限)對存儲區進行列出或執行任何操作,並且所有顯示訪問權限的操作都被拒絕。 因此,當我嘗試從VPC中的ec2實例之一復制文件時,復制成功,但是我無法列出存儲桶中的對象。 我收到拒絕訪問的錯誤消息(EC2實例具有對存儲桶具有完全權限的角色)。 這是附加到EC2實例的角色。

    {
     "Version": "2012-10-17",
     "Statement": [
      {
        "Sid": "VisualEditor0",
        "Effect": "Allow",
        "Action": "s3:*",
        "Resource": "arn:aws:s3:::bucketname/*"
      }
    ]
  }

我想知道的是,這種奇怪的行為是我的存儲桶策略的原因還是其他原因。 如果是,那么有關如何立即更改我的存儲桶策略的任何提示? 此外,這是我的控制台的屏幕截圖。 在此處輸入圖片說明

是的,根據您的政策,它是100%。

該政策說:

  • "Effect": "Deny", -拒絕訪問
  • "Principal": "*" -適合所有人
  • "Resource": "arn:aws:s3:::bucketname" -到此存儲桶
  • "StringNotEquals": {"aws:SourceVpc": "vpc-id" -如果請求不是來自此VPC

至於如何解決它,則取決於您的要求,而您在問題中並未提到。

我什至無法從vpc內的實例訪問存儲桶的原因是,因為我沒有將VPC到S3端點連接到該實例所屬的子網的路由表。 與文檔中提到的相反,單詞"aws:SourceVpc"用於允許來自同一VPC的多個終結點連接,與我所認為的相反,即它將允許來自所提及VPC的所有請求。 因此,此問題的最終解決方案是,您可以從提到的VPC內存在的實例中刪除存儲分區,前提是該實例屬於一個子網,並且該子網已連接了VPC至S3端點。

暫無
暫無

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

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