【发布时间】:2017-07-26 07:16:16
【问题描述】:
我们在 AWS S3 中创建了一个 Bucket 和一个具有特定策略的 IAM-User 来限制对该存储桶的访问,如下所示:
桶:测试桶
政策:
{
"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 用户并将此策略分配给用户的权限。我们得到了一个 Access-Key 和一个 Secret-Access-Key,并且可以成功地将文件上传到存储桶,并使用给定的已知 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 应用程序。认证后可以列出bucket本身,但仍然不能列出bucket中的对象。
我需要做点别的吗?
【问题讨论】:
标签: amazon-web-services amazon-s3 amazon-iam