亚马逊S3 – 私人文件仍然可以下载给大家?

我有一些秘密文件,我想限制匿名用户查看/下载。 我试图通过运行像这样的私人:

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

然后我进入S3pipe理控制台,select文件,然后点击属性,我确定打开/下载权限没有被选中。

但复制链接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" },