仅在我的域下允许来自S3的图像

时间:2016-04-02 22:29:49

标签: amazon-web-services amazon-s3

是否有办法允许只在我的域xyz.com下访问存储在我的aws s3中的静态图像?

我知道这不能保护图像,我只是想通过在新的浏览器选项卡中粘贴s3网址来避免人们查看图像

感谢

1 个答案:

答案 0 :(得分:0)

正如评论中Mark B所述,可以创建Amazon S3存储桶策略。

在许多可能的策略设置中,有一个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/*"]}
      }
    }
  ]
}

请参阅文档:Restricting Access to a Specific HTTP Referrer