具有N个域的AWS S3 Dynamic HTTP Referer策略

时间:2016-10-05 15:53:26

标签: amazon-s3 policy http-referer whitelist bucket

实施一个应用程序,其中S3图像只能通过列入白名单的列表进行热链接。

对于一个简单的案例,我可以创建一个带有静态域名列表的Referer Policy,例如:

{
  "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/*"]}
      }
    }
  ]
}

我希望通过脚本语言从数据库动态生成此列表,然后通过API SDK发布到AWS。

这可以通过为:

生成动态JSON字符串来完成
["http://www.example.com/*","http://example.com/*"]

这是最好的吗?我无法找到有关此问题的任何文档,但我认为StringLike条件中字符串匹配的数量有限制吗?

在Condition中创建一个单独的StringLike条目会更好吗,每个域一个?

我可能有10000个域到白名单,所以试图找到最好的缩放方式。

1 个答案:

答案 0 :(得分:0)

鉴于S3政策框架中的长度限制,未使用此解决方案。