Политика корзины Amazon S3 разрешает доступ ТОЛЬКО к определенным http - PullRequest
0 голосов
/ 20 мая 2019

Я пытаюсь ограничить доступ к объектам (мультимедийным файлам) в корзине Amazon S3 для конкретного домена рефералов, privatewebsite.com, с помощью политики корзины, но продолжаю получать отказ в доступе, независимо от того, на какой домен ссылался.

У меня есть следующие настройки для блокировки общего доступа

Блокировать публичный доступ к корзинам и объектам, предоставленным через новые списки контроля доступа (ACL) - Вкл.

Блокировать публичный доступ к контейнерам и объектам, предоставленным через любые списки контроля доступа (ACL) - Вкл.

Блокировать публичный доступ к корзинам и объектам, предоставленным с помощью новых политик общедоступных корзин - Выкл.

Блокировать общедоступный и кросс-аккаунт доступ к контейнерам и объектам с помощью любых общедоступных политик хранения - Выкл.

Я добавил следующий код, URL с и без, http: // и https://,, но доступ по-прежнему запрещен. (privatewebsite.com, https://privatewebsite.com, http://privatewebsite.com)

{
    "Version": "2012-10-17",
    "Id": "Policy8675309",
    "Statement": [
        {
            "Sid": "Stmt8675309",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::my-media-bucket/*",
            "Condition": {
                "StringLike": {
                    "aws:Referer": "https://privatewebsite.com"
                }
            }
        },
        {
            "Sid": "Explicit deny to ensure requests are allowed only from specific referer.",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::my-media-bucket/*",
            "Condition": {
                "StringNotLike": {
                    "aws:Referer": [
                        "https://privatewebsite.com/*",
                        "http://privatewebsite.com/*"
                    ]
                }
            }
        }
    ]
}

Может ли кто-нибудь увидеть какие-либо очевидные ошибки в моей политике корзины?

Я ожидаю, что эта политика разрешит любой запрос, исходящий со страницы на privatewebsite.com, при ОТКЛЮЧЕНИИ всех других запросов, но на данный момент ВСЕ запросы отклонены.

Ответы [ 2 ]

1 голос
/ 21 мая 2019

С Примеры политики Bucket - ограничение доступа к определенному HTTP Referrer :

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

Этот метод предоставляет Allow доступ только для данного Реферера. Нет необходимости использовать политику Deny с ней, потому что доступ запрещен по умолчанию. Таким образом, предоставляются только разрешения Allow.

1 голос
/ 21 мая 2019

Попробуйте для вас строковый раздел (разрешить раздел):

        "StringLike": {
            "aws:Referer": [
                "https://privatewebsite.com/*",
                "http://privatewebsite.com/*"
            ]
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...