【发布时间】:2021-12-29 10:53:36
【问题描述】:
创建 IAM 用户后,我无法执行 DeleteObject 操作。必要的信息(访问密钥 ID、秘密访问密钥等)已作为环境变量插入。可以毫无问题地执行上传、下载操作。
IAM 用户政策
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:ListAllMyBuckets",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetBucketLocation"
],
"Resource": [
"arn:aws:s3:::************"
]
},
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:DeleteObject",
"s3:PutObjectAcl",
"s3:GetObjectAcl"
],
"Resource": [
"arn:aws:s3:::************",
"arn:aws:s3:::************/*"
]
}
]
}
存储桶权限
阻止所有公共访问:关闭(所有 4 个选项)
错误信息
执行 s3.Object('BUCKET_NAME','fol.jpeg').delete()
给我这个错误信息:
botocore.exceptions.ClientError: 调用 DeleteObject 操作时发生错误 (AllAccessDisabled):对该对象的所有访问都已禁用
【问题讨论】:
-
暂停的 AWS 账户会导致这种情况。您现在可以从同一个存储桶下载对象吗? 100% 确定您的存储桶名称正确吗?相关问题here.
-
感谢您的回复。暂停帐户不是我的情况,因为可以毫无问题地执行其他操作。
-
仔细检查存储桶名称。这里的重点是,如果您不小心提供了错误的存储桶名称,则可能是针对已暂停帐户中的现有存储桶,并会导致此错误。
-
感谢您的回答。最终,这是一个暂停帐户的情况。感谢您的宝贵时间。
标签: python amazon-web-services amazon-s3 boto3