Ограничьте Amazon S3 для CloudFront и http реферером - PullRequest
0 голосов
/ 16 апреля 2019

У меня есть конечная точка REST Amazon S3 для изображений и файловых ресурсов.Я хочу, чтобы корзина S3 была доступна только CloudFront, а веб-сайт обращался к изображениям (используя http referrer).

Пока это моя политика корзины:

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

Но как только я применяю политику, изображения не доступны на сайте.

Возможно ли это сделать?

1 Ответ

0 голосов
/ 16 апреля 2019

CloudFront удаляет заголовок Referer по умолчанию, поэтому S3 его не видит.

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

Вам необходимо внести белый список заголовка Referer в CloudFront и сделать недействительным кеш, чтобы увидеть, работает ли он.

...