我遇到了同样的错误“在调用ListObjectsV2操作时发生了错误(AccessDenied):访问被拒绝”
注意:
桶策略不是一个好的解决方案。
在IAM服务中创建新的自定义策略,附加到各自的用户将更安全。
按以下程序求解:
IAM Service > Policies > Create Policy > select JSON > .使用实例
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetObject",
"s3:GetObjectAcl",
"s3:ListBucketVersions"
],
"Resource": [
"arn:aws:s3:::<bucket name>"
]
},
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetObject",
"s3:GetObjectAcl",
"s3:PutObject",
"s3:DeleteObject",
"s3:ListBucketMultipartUploads",
"s3:ListMultipartUploadParts",
"s3:AbortMultipartUpload",
"s3:DeleteObjectVersion",
"s3:GetObjectVersion",
"s3:PutObjectACL",
"s3:ListBucketVersions"
],
"Resource": [
"arn:aws:s3:::<bucketname>/*"
]
}
]
}
选择Next Tag > Review Policy输入并创建策略。
选择新创建的策略
在新创建的策略窗口的编辑窗口中选择“Policy Usage”选项卡。
选择“附加”,从列表中选择用户并保存。
现在尝试在控制台用桶名列出对象,没有桶名会抛出相同的错误。
$aws s3 ls