【发布时间】:2013-11-18 05:51:24
【问题描述】:
我在桶下有以下键demo.for.customers
demo.for.customers/customer1/
demo.for.customers/customer2/
现在我有 2 个客户,即 customer1 和 customer2。这就是我想要的:
- 仅授予他们对 demo.for.customers 存储桶的访问权限。
- customer1 应该只能访问
demo.for.customers/customer1/,customer2 应该只能访问demo.for.customers/customer2/。
我可以通过以下策略来实现这一点(我正在为每个客户创建策略。因此我只为下面的 customer1 粘贴一个。)我在 IAM 中定义了这个策略,而不是在 S3 中。
{
"Version":"2012-10-17",
"Statement": [
{
"Action": ["s3:ListAllMyBuckets", "s3:GetBucketLocation"],
"Effect": "Allow",
"Resource": ["arn:aws:s3:::*"]
},
{
"Action": ["s3:ListBucket"],
"Effect": "Allow",
"Resource": ["arn:aws:s3:::demo.for.customers"],
"Condition":{"StringEquals":{"s3:prefix":["","customer1/"],"s3:delimiter":["/"]}}
},
{
"Effect": "Allow",
"Action": ["s3:*"],
"Resource": ["arn:aws:s3:::demo.for.customers/customer1/*"]
}
]
}
问题:
- Customer1 能够看到我的所有存储桶,尽管他无法访问其中任何一个。我不想要这个。他应该只能看到 demo.for.customers
- Customer1 也可以看到
demo.for.customers/customer2,尽管他无法访问它。这是非常不可接受的,因为我什至不希望他看到我在此存储桶下还有哪些其他客户文件夹。
问题:
- 经过大量谷歌搜索后,我知道无法列出特定的存储桶。这是真的吗?
- 但是,我必须找到一种方法来仅列出给定用户的存储桶内的特定文件夹。该怎么做?
谢谢。
【问题讨论】:
标签: amazon-web-services amazon-s3 amazon-iam