Amazon S3 Bucket Policy Referer

时间:2013-01-24 13:26:49

标签: amazon-s3 policy referer bucket

我正在尝试编辑我的S3存储桶配置,以便第三方网站无法链接到其中的内容。另外一个好处是,他们只能访问我的域中的内容而不是补充s3bucket.amazon-east.amazonaws.com或其他类似的内容。

文档中有一个完全相同的示例,但是当我在下面复制/粘贴/修改我的网站时,它不起作用?我仍然得到403错误。当我只取出条件部分时,它允许完全访问,因此referer部分只有一个问题。

这是一段很短的代码我正在靠墙打我的头......希望第二组眼睛可以启发我可能很明显我失踪的东西?

或者可能没有任何问题,在其他地方可能还有其他配置我没有设置/考虑过?

感谢阅读。

{
    "Version": "2008-10-17",
    "Statement": [
        {
            "Sid": "fml",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::www.mysite.com/*",
            "Condition": {
                "StringLike": {
                    "aws:Referer": [
                        "http://mysite.com/*",
                        "http://www.mysite.com/*"
                    ]
                }
            }
        }
    ]
}

2 个答案:

答案 0 :(得分:0)

您是否为您的存储桶启用了日志记录?

如果这样做,您可以检查日志以验证引用者是否记录了这些403拒绝访问消息,并且这是您所期望的。如果不是,那么问题不在于存储桶配置 - 这是为什么浏览器不会发送引用的问题。

如果您没有启用日志记录,请启用日志记录。

  

另外一个好处是,他们只能访问我的域中的内容而不是补充s3bucket.amazon-east.amazonaws.com或其他类似内容。

是什么让你觉得这是真的?

答案 1 :(得分:0)

重要的是要注意,如果你的引用者在最后包含/ *那么它只允许来自该引用者的子代的内容,而不是来自该引用者本身的内容。

因此,如果您想要包含主域名,那么您需要这样做:

[1, 2]
[3, 4]
[2, 3]
[4, 1]
[3, 4]
[1, 2]
[4, 1]
[2, 3]