我在桶下面有下面的钥匙客户演示
demo.for.customers/customer1/
demo.for.customers/customer2/
现在我有 2 个客户客户1 and 客户2。这就是我要的:
- 仅授予他们访问权限客户演示 bucket.
- 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/*"]
}
]
}
Problem:
- Customer1 能够看到我的所有存储桶,尽管他无法访问其中任何一个。我不想要这个。他应该只能看到客户演示
- 客户1可以看到
demo.for.customers/customer2
尽管他无法访问它。这是非常不可接受的,因为我什至不希望他看到我在此存储桶下有哪些其他客户文件夹。
问题:
- 经过大量谷歌搜索后,我发现没有办法列出特定的存储桶。这是真的吗?
- 但是,我必须找到一种方法仅列出特定文件夹位于给定用户的存储桶内。怎么做?
Thanks.
关于您的问题:
- 不幸的是,没有办法只列出某些存储桶。如果目的只是允许访问一个已知的存储桶,我将完全删除第一个语句,因为它不会添加任何值(存储桶已经已知,不需要列出)。
- 您可以显示用于列出存储桶内容的代码吗?根据您在此处显示的内容,我希望 customer1 只能在其前缀的根处列出存储桶内容,而不能在其他地方列出。
关于您的问题:
- 是的,没有办法列出某些存储桶。列表存储桶 API 是全有或全无操作。
- 这是通过前缀完成的。您使用什么语言?我们有一个 AWS 移动开发工具包示例,它使用令牌自动售货机来交付每个用户对 S3 存储桶的访问权限 http://aws.amazon.com/code/4598681430241367.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)