Amazon-S3

Amazon S3 - 私人文件仍然可供所有人下載?

  • December 23, 2019

我有一些秘密文件,我想限制匿名使用者查看/下載。我試圖通過執行以下命令將其設為私有:

s3cmd setacl --acl-private s3://bucket/some/path/*.ext

然後我轉到 S3 管理控制台,選擇文件,然後點擊屬性,我確定每個人都未選中打開/下載權限。

但是複制連結https://s3-us-west-2.amazonaws.com/bucket/some/path/blah.ext,粘貼到新的瀏覽器中,仍然可以打開/下載。

我錯過了什麼?

通過轉到儲存桶檢查您的儲存桶策略,然後點擊屬性和編輯儲存桶策略。如果你有這樣的事情:

   {
       "Sid": "Stmt1391783519913",
       "Effect": "Allow",
       "Principal": {
           "AWS": "*"
       },
       "Action": [
           "s3:GetObject",
       ],
       "Resource": "arn:aws:s3:::bucket/*"
   },

這意味著您允許每個人下載此儲存桶中的每個文件。

根據文件

如果帳戶有權訪問 ACL 或策略指定的資源,則他們能夠訪問請求的資源。

這就是匿名使用者仍然可以打開/下載您的文件的原因。

您可以通過添加如下新策略來阻止它:

   {
       "Sid": "Stmt1395306106592",
       "Effect": "Deny",
       "Principal": {
           "AWS": "*"
       },
       "Action": "s3:*",
       "Resource": "arn:aws:s3:::bucket/some/path/*.ext"
   },

引用自:https://serverfault.com/questions/583471