Как разрешить отказ в доступе к файлам aws s3?

Я пытаюсь сделать файлы в моем ведре s3 (файлы CSS JS) доступными для приложения Django, запущенного в heroku.

Я думаю, что у меня правильно настроен settings.py.

Однако, когда я пытаюсь внести изменения в разрешения в ведре S3, мне отказывают в доступе. Ошибка отказа в доступе

Я добавил cors, и политика ведра установлена ​​на общедоступную.

В конечном итоге, когда я загружаю приложение из heroku, я получаю ошибку 403 при попытке доступа к статическим файлам.

Политика ведра:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AddPerm",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::NameOfBucket/*"
        }
    ]
}

Конфигурация COR:

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
    <AllowedOrigin>*</AllowedOrigin>
    <AllowedMethod>GET</AllowedMethod>
    <MaxAgeSeconds>3000</MaxAgeSeconds>
    <AllowedHeader>Authorization</AllowedHeader>
</CORSRule>
</CORSConfiguration>

общедоступные настройки Как мне получить разрешения на внесение изменений в корзину s3, пожалуйста?


person mogoli    schedule 22.12.2018    source источник
comment
Вы настроили параметры Блокировать общий доступ к S3? Он довольно новый и добавляет еще один уровень защиты для сегментов, который вам нужно отключить, чтобы разрешить общий доступ.   -  person John Rotenstein    schedule 23.12.2018
comment
Отредактировал вопрос, чтобы показать настройки общего доступа, спасибо   -  person mogoli    schedule 23.12.2018
comment
Что вы нажали, когда получили сообщение Доступ запрещен? Если у вас есть политика сегмента, предоставляющая доступ, то нет необходимости использовать функцию Сделать общедоступной. Если вы получили сообщение об ошибке при нажатии Сделать общедоступным, это означает, что S3 Block Public Access в настоящее время блокирует ACL. Это нормально, если у вас есть политика корзины.   -  person John Rotenstein    schedule 23.12.2018
comment
Я нажал на список управления доступом ›› Общий доступ. Это также происходит, если я пытаюсь сделать отдельный файл общедоступным. Я попытался создать политику корзины, которая сделает ее общедоступной, но это тоже не удалось. arn: aws: s3 ::: nameOfBucket, arn: aws: s3 ::: nameOfBucket / *   -  person mogoli    schedule 23.12.2018
comment
Если вы хотите сделать одну корзину общедоступной, вам необходимо отключить первые два параметра в настройках S3 Block Public Access. В этом нет необходимости, если вы создали политику сегмента. Что заставляет вас думать, что политика корзины работает некорректно? Кроме того, не рекомендуется предоставлять s3:* в корзине для * - это фактически дает всему миру разрешение делать что-нибудь с корзиной (включая удаление контента или загрузку всей коллекции фильмов). . Вероятно, вы хотите только предоставить s3:GetObject разрешение.   -  person John Rotenstein    schedule 23.12.2018
comment
Дело в том, что когда я пытаюсь посетить приложение, ни один из файлов css или js не загружается. В консоли браузера я получаю net :: ERR_ABORTED 403 (Запрещено). Это тоже происходит локально.   -  person mogoli    schedule 23.12.2018
comment
Попробуйте отключить 4-ю опцию в S3 Block Public Access.   -  person John Rotenstein    schedule 23.12.2018
comment
Это работает! Вы можете объяснить, почему это работает. Мне также нужно изменить s3: * на что-то более безопасное, спасибо   -  person mogoli    schedule 23.12.2018


Ответы (2)


Параметр называется Блокировать общедоступный доступ и доступ для нескольких учетных записей, если для сегмента установлены общедоступные политики. Когда это было ИСТИНА, это означало, что политика сегмента применяется только к владельцу сегмента.

Для получения дополнительной информации см .: Использование Amazon S3 Блокировать публичный доступ - Amazon Simple Storage Service

Эти четыре новых параметра можно считать раздражающими, поскольку они создают дополнительные препятствия для попыток сделать контент общедоступным, но они, вероятно, избавят многие организации от множества затруднений, предотвратив случайное публичное раскрытие данных.

person John Rotenstein    schedule 22.12.2018

Новая функция S3 - ваш запрос может быть заблокирован публичным блоком S3. Вы можете посмотреть свои журналы Cloudtrail, чтобы получить более подробную информацию. Подробнее: https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html

Также, глядя на свою политику, вы разрешаете s3:* действие с префиксом корзины для всех участников AWS. Как правило, не рекомендуется открывать все действия S3 для всех участников AWS. Пожалуйста, просмотрите свои потребности и ограничьте область действия политик, чтобы повысить безопасность объектов корзины.

person pradeep    schedule 25.12.2018