6

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

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

这是一段如此短的代码,我正在把头撞到墙上......希望第二双眼睛可以启发我一些可能很明显我遗漏的东西?

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

谢谢阅读。

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

2 回答 2

0

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

如果这样做,您可以检查日志以验证引用者是否与那些 403 Access Denied 消息一起被记录,并且这是您所期望的。如果不是,那么问题不在于存储桶配置——这是为什么浏览器没有发送引用者的问题。

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

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

是什么让你认为这是真的?

于 2013-01-26T19:53:04.590 回答
0

重要的是要注意,如果您的引荐来源网址最后包含 /* ,那么它将只允许来自该引荐来源网址的孩子的内容,而不是来自该引荐来源网址本身的内容。

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

                "aws:Referer": [
                    "http://example.com",
                    "http://example.com/*",
                    "http://www.example.com",
                    "http://www.example.com/*"
                ]
于 2017-11-15T17:46:38.297 回答