其他人可以在他们的网站上显示我的Amazon S3公共只读图像吗?(让我支付使用费用)

时间:2017-12-21 23:18:51

标签: amazon-web-services amazon-s3

我在Amazon S3中有一些图像,我在我的网站上显示它们,因此公开(不需要登录)可以查看图像。 我不确定是否还有其他人也可以在他们的网站上显示图像,因为他们会有图像的网址。如果是这样我该如何控制?

(我不想要签名的网址,因为我希望每个人都能够在没有登录的情况下查看图片。)

1 个答案:

答案 0 :(得分:3)

来自Restricting Access to a Specific HTTP Referrer

  

假设您的网站包含域名(www.example.comexample.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。