Не удается установить политику S3 для операций HEAD (403 - запрещено)

Я использую Django с django-storages библиотека для загрузки файлов моей модели на S3 и необходимо добавить политику, чтобы заблокировать прямую загрузку с URL-адресов корзины.

Я добился этого, установив политику ниже (проверьте Referer) но это привело к проблеме, когда я использую функцию автоматического переименования библиотеки. Моя текущая политика:

{
    "Version": "2012-10-17",
    "Id": "Policy1542209806458",
    "Statement": [
        {
            "Sid": "Block access globally except by the indicated referers.",
            "Effect": "Deny",
            "Principal": "*",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": "arn:aws:s3:::my-bucket/subfolder/*",
            "Condition": {
                "StringNotLike": {
                    "aws:Referer": [
                        "http://ref.localhost:8000/*",
                        "http://localhost:8000/*"
                    ]
                }
            }
        }
    ]
}

Отладкой я обнаружил, что когда библиотека пытается выполнить HEAD запрос на получение существующей информации о файле (которая будет указывать на необходимость переименования), ответ - ошибка HTTP 403. Я пытался в том числе ActionНиже (из других источников и документации), чтобы иметь более разрешительный доступ, но та же проблема сохраняется.

"Action": [
    "s3:GetObject",
    "s3:GetObjectVersion",
    "s3:GetObjectAcl",
    "s3:PutObject",
    "s3:PutObjectAcl",
    "s3:DeleteObject",
    "s3:DeleteObjectVersion"
]

У меня нет такой проблемы при добавлении новых файлов с уникальными именами, только когда необходимо переименование.

0 ответов

Другие вопросы по тегам