S3存储桶:ACL读取所有权限

我收到来自aws的电子邮件,其中说我的aws s3存储桶被configuration为允许读取互联网上的任何人,并要求我查看ACL并加以保护。 基本上我的s3存储桶被用作云端分发的后端。 下面是我的s3桶,它们使用相同的策略应用了相同的ACL。

media-example-com font-example-com blog-example-com app-assets-example-com 

共同政策如下适用于所有的桶。

 { "Version": "2008-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::<bucket-name>-example-com/*" } ] } 

以下是所有这些桶通用的ACL屏幕截图。

在这里输入图像说明

我不明白aws支持是什么意思,当它说这些桶configuration为允许从互联网读取访问。 在屏幕截图时,清除读访问是不允许的。

这封电子邮件似乎是为了应对最近几次违规行为,即人们已经将敏感信息上传到S3公开的存储桶中。 这只是推动你看看你的水桶,看看他们是否适当的configuration。

虽然我没有通过S3运行一个网站的实际经验,但我确实尝试了解这一点,发现S3中的每个对象都有自己的ACL,并且在将file upload到S3时对其进行了定义,而且如果文件可以真正定义通过互联网公开访问。

当您为读取特权标记S3存储桶时,任何人都可以列出存储桶中的文件,因此如果您不小心上传了S3存储桶中的敏感文档,人们可以find并下载它。

从存储区中删除读取权限并将其保存在对象级别会更安全。 这样,如果你在网页中embedded了一个直接的链接,那么对象仍然可以访问,但是没有人可以在你的S3中列出文件,任何意外的上传都不容易find。

由于某些历史原因或简单性,大多数教程/指南可能要求为S3存储桶提供读取权限,但是在安全性方面,这并不是正确的选项。

在你的具体情况下,因为你只允许GetObject,而不是策略中的List *,你的bucket已经很好的了。