Произошла ошибка (AccessDenied) при вызове операции PutObject: Доступ запрещен? - PullRequest
2 голосов
/ 07 марта 2019

Я следую этому руководству, чтобы мое приложение django могло загрузить файл непосредственно на S3.

https://simpleisbetterthancomplex.com/tutorial/2017/08/01/how-to-setup-amazon-s3-in-a-django-project.html

При создании нового пользователя IAM я включил полный доступ к своему S3. AmazonS3FullAccess

Но когда я загрузил файл, я все еще получил ошибку

An error occurred (AccessDenied) when calling the PutObject operation: Access Denied

Тогда я попытался добавить политику в мое хранилище S3.

Но я постоянно получаю сообщение об ошибке «Политика имеет неверное действие»

{
"Version": "2012-10-17",
"Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "s3:ListAllMyBuckets",
            "s3:GetBucketLocation"
        ],
        "Resource": "*",
        "Principal": { "AWS": "[my-IAM user]" }
    },
    {
        "Effect": "Allow",
        "Action": "s3:ListBucket",
        "Resource": "arn:aws:s3:::[s3-bucket-name]",
        "Condition": {
            "StringLike": {
                "s3:prefix": [
                    "",
                    "home/",
                    "home/${aws:username}/*"
                ]
            }
        },
        "Principal": { "AWS": "[my-IAM user]" }
    },
    {
        "Effect": "Allow",
        "Action": "s3:*",
        "Resource": [
            "arn:aws:s3:::[bucket-name]/home/${aws:username}",
            "arn:aws:s3:::[bucket-name]/home/${aws:username}/*"
        ],
        "Principal": { "AWS": "[my-IAM user]" }
    }
]

}

Что именно мне тогда делать?

...