我得到:
在调用ListObjects操作时发生错误(AccessDenied): AccessDenied
当我试图从S3存储桶中获取文件夹时。
使用该命令:
aws s3 cp s3://bucket-name/data/all-data/ . --recursive
桶的IAM权限如下所示:
{
"Version": "version_id",
"Statement": [
{
"Sid": "some_id",
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": [
"arn:aws:s3:::bucketname/*"
]
}
] }
我需要改变什么才能成功复制和ls ?
我得到了相同的错误时使用策略如下,虽然我有“s3:ListBucket”s3:ListObjects操作。
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"s3:ListBucket",
"s3:GetObject",
"s3:GetObjectAcl"
],
"Resource": [
"arn:aws:s3:::<bucketname>/*",
"arn:aws:s3:::*-bucket/*"
],
"Effect": "Allow"
}
]
}
然后我通过添加一行来修复它
“攻击:aws: s3::: bucketname”
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"s3:ListBucket",
"s3:GetObject",
"s3:GetObjectAcl"
],
"Resource": [
"arn:aws:s3:::<bucketname>",
"arn:aws:s3:::<bucketname>/*",
"arn:aws:s3:::*-bucket/*"
],
"Effect": "Allow"
}
]
}
我也有同样的问题。我必须提供正确的资源和行动,资源是你的桶的arn和行动在你想要的权限。另外,请确保您有正确的用户arn。以下是我的解决方案。
{
"Version": "2012-10-17",
"Id": "Policy1546414123454",
"Statement": [
{
"Sid": "Stmt1546414471931",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::123456789101:root"
},
"Action": ["s3:ListBucket", "s3:ListBucketVersions"],
"Resource": "arn:aws:s3:::bucket-name"
}
]
}