如何允许aws s3存储桶内容仅公开服务于某个域?

时间:2012-02-16 15:13:57

标签: amazon-s3 amazon-web-services

我使用aws s3来存储我的网站图片和视频内容。来自s3的文件链接直接输出到html / php。

问题在于其他一些网站链接了我的图片/视频,这大大增加了s3流量的使用,当然还增加了支付账单。

我知道在某些情况下,人们使用referer标头禁止外部网站链接。但在这种情况下,图片/视频直接从s3发出,而不是我的域名。

有人可以帮助实现这一目标吗?感谢。

1 个答案:

答案 0 :(得分:5)

您可以使用以下亚马逊存储桶政策:

{
    "Version": "2012-10-17",
    "Id": "http referer policy example",
    "Statement": [
        {
            "Sid": "Allow get requests originated 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/*"
                    ]
                }
            }
        }
    ]
}

http://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html

详细解释