Django 调用PutObject操作时发生错误(AccessDenied):拒绝访问?

Django 调用PutObject操作时发生错误(AccessDenied):拒绝访问?,django,amazon-web-services,amazon-s3,file-upload,amazon-iam,Django,Amazon Web Services,Amazon S3,File Upload,Amazon Iam,我遵循本教程,使我的django应用程序能够将文件直接上传到S3 创建新IAM用户时,我启用了对S3的完全访问AmazonS3FullAccess 但是当我上传文件时,我仍然得到了 An error occurred (AccessDenied) when calling the PutObject operation: Access Denied 当时我试图在S3存储桶中添加一个策略 但我不断得到错误的政策有无效的行动 { "Version": "2012-10-17", "Stateme

我遵循本教程,使我的django应用程序能够将文件直接上传到S3

创建新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]" }
    }
]
}


那我该怎么办呢?

与其试着调试你的策略,不如试着确定应用程序收到
拒绝访问的原因,因为这是提供访问的正确方法。应用程序如何接收凭据?它是否在具有关联角色的EC2实例上运行,或者凭据是否存储在应用程序的本地?