我在Amazon S3中有一些图像,我在我的网站上显示它们,因此公开(不需要登录)可以查看图像。我不确定是否还有其他人也可以在他们的网站上显示图像,因为他们会有图像的网址。如果是这样我该怎么控制?
(我不想要签名的URL,因为我希望每个人都能够在没有登录的情况下查看图像。)
来自Restricting Access to a Specific HTTP Referrer:
假设您有一个域名(
www.example.com
或example.com
)的网站,其中包含存储在S3存储桶中的照片和视频的链接,examplebucket。默认情况下,所有S3资源都是私有的,因此只有创建资源的AWS账户才能访问它们。要允许从您的网站对这些对象进行读取访问,您可以使用s3:GetObject
密钥添加允许aws:referer
权限的存储桶策略,该请求必须来自特定网页。以下策略使用StringLike
条件键指定aws:Referer
条件。
{
"Version":"2012-10-17",
"Id":"http referer policy example",
"Statement":[
{
"Sid":"Allow get requests originating from www.example.com and example.com.",
"Effect":"Allow",
"Principal":"*",
"Action":"s3:GetObject",
"Resource":"arn:aws:s3:::examplebucket/*",
"Condition":{
"StringLike":{"aws:Referer":["http://www.example.com/*","http://example.com/*"]}
}
}
]
}
该文档还说明了如何应用显式DENY。