Django 调用PutObject操作时发生错误(AccessDenied):拒绝访问?
我遵循本教程,使我的django应用程序能够将文件直接上传到S3 创建新IAM用户时,我启用了对S3的完全访问AmazonS3FullAccess 但是当我上传文件时,我仍然得到了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
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实例上运行,或者凭据是否存储在应用程序的本地?