AWS S3:更改策略后无法列出存储桶



>我们在 AWS S3 中创建了一个存储桶,并使用特定策略创建了一个 IAM 用户,以限制对此存储桶的访问,如下所示:

桶:测试

政策

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:GetObjectAcl",
"s3:GetObjectVersion",
"s3:PutObject",
"s3:PutObjectAcl",
"s3:PutObjectVersionAcl"
],
"Resource": [
"arn:aws:s3:::testbucket/*",
]
}
]
}

然后,我们创建了一个 IAM 用户,并将此策略分配给用户的权限。我们获得了访问密钥和秘密访问密钥,可以成功将文件上传到存储桶,还可以使用给定的已知 URL 下载它们。

现在我们希望能够列出存储桶中的所有对象。 因此,我以这种方式更改了策略:

新政策:

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:GetObjectAcl",
"s3:GetObjectVersion",
"s3:PutObject",
"s3:PutObjectAcl",
"s3:PutObjectVersionAcl"
],
"Resource": [
"arn:aws:s3:::testbucket/*",
]
},
{
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::testbucket/*"
]
}
]
}

这里的新项目是s3:ListBucket.

我已成功更改此策略,并且可以在 AWS 上重新加载页面以确保这些更改仍然存在。

但是,我已经等了一个小时,但仍然无法列出存储桶的对象。

为了进行测试,我使用应用程序CyberDuck。它可以在身份验证后列出存储桶本身,但仍然无法列出存储桶中的对象。

我需要做其他事情吗?

s3:ListBucket 适用于存储桶,而不是其中的对象。因此,第二个语句不得包含尾部斜杠和通配符,因此应为:

{
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::testbucket"
]
}

相关内容

  • 没有找到相关文章

最新更新