将Amazon S3限制为CloudFront和http referrer

问题描述 投票:0回答:1

我有一个用于图像和文件资产的Amazon S3 REST端点。我希望只有CloudFront和访问图像的网站(使用http referrer)才能访问S3存储桶。

到目前为止,这是我的存储桶政策:

{
    "Version": "2008-10-17",
    "Id": "PolicyForCloudFrontPrivateContent",
    "Statement": [
        {
            "Sid": "1",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity XXXXXXXXXXXX"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::<DOMAIN>/*",
            "Condition":{
                "StringLike":{"aws:Referer":["http://<DOMAIN>/*"]}
            }
        }
    ]
}

但是,一旦我应用该政策,图像就无法在网站上访问。

这可能吗?

amazon-s3 amazon-cloudfront
1个回答
0
投票

CloudFront默认剥离Referer标头,因此S3不会看到它。

https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html

您需要在CloudFront中将Referer标头列入白名单,并使缓存无效以查看其是否有效。

© www.soinside.com 2019 - 2024. All rights reserved.