Не удается установить политику S3 для операций HEAD (403 - запрещено) - PullRequest
0 голосов
/ 19 ноября 2018

Я использую 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 s ниже (из других источников и документацию ), чтобы иметь более разрешающий доступ, но та же проблема сохраняется.

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...