【发布时间】:2012-05-18 16:23:22
【问题描述】:
我正在尝试实施一项 IAM 策略,其中用户也只能访问他有权访问的文件夹。我从 Amazon docs 获得此代码
允许用户仅列出公司存储桶中其主目录中的对象
此示例建立在上一个示例的基础上,该示例为 Bob 提供了一个主目录。为了让 Bob 能够列出他的主目录中的对象,他需要访问 ListBucket。但是,我们希望结果仅包含他的主目录中的对象,而不是存储桶中的所有内容。为了以这种方式限制他的访问,我们使用名为 s3:prefix 的策略条件键,其值设置为 home/bob/。这意味着只有带有前缀 home/bob/ 的对象会在 ListBucket 响应中返回。
{
"Statement":[{
"Effect":"Allow",
"Action":"s3:ListBucket",
"Resource":"arn:aws:s3:::my_corporate_bucket",
"Condition":{
"StringLike":{
"s3:prefix":"home/bob/*"
}
}]
}
这对我不起作用。当我运行我的代码时,我能够看到所有文件夹和子文件夹。我修改后的代码如下所示:
{
"Statement":[{
"Effect":"Allow",
"Action":"s3:ListBucket",
"Resource":"arn:aws:s3:::Test-test",
"Condition":{
"StringLike":{
"s3:prefix":"Test/*"
}
}]
}
当我使用附加到上述策略的用户凭据在 c# 中运行我的代码时,我会得到所有文件夹,而不仅仅是“测试”下的文件夹... 非常感谢您的帮助!
【问题讨论】:
标签: amazon-s3