【发布时间】:2016-06-26 22:36:28
【问题描述】:
我正在使用 AWS S3 组件来存储文件。
我有一个名为“mybucket”的存储桶,其中包含以下文件夹:
+---Mybucket
\---toto1
\---toto2
+---toto3
| \--- subfolder
| \---subsubfolder
\---toto4
我的 AWS 控制台用户只需要访问“toto3”文件夹。
我试图限制对该文件夹的访问,但用户必须有权列出存储桶的根目录。如果我添加了访问根文件夹的附加权限,用户可以浏览“toto1”和“toto2”文件夹,我不想要。
我想配置类似的东西:
- 授权列出我的 S3 账户的所有存储桶(listAllBuckets 政策)
- 自动列出存储桶的根目录(如果用户看到目录名称,我可以)
- 拒绝所有不同于“toto3”的前缀桶的访问
- 自动为用户在 toto3 文件夹中的每个操作
- 我不想写一个包容性的规则
我尝试了这个 IAM 政策但没有成功:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:PutObject",
"s3:GetObject"
],
"Resource": ["arn:aws:s3:::mybucket/toto3/*"]
},
{
"Sid": "Stmt1457617383000",
"Effect": "Allow",
"Action": [
"s3:GetBucketLocation",
"s3:ListBucket"
],
"Resource": ["arn:aws:s3:::mybucket"]
},
{
"Sid": "Stmt1457617230000",
"Effect": "Deny",
"Action": ["s3:*"],
"Condition": {
"StringNotLike": {
"s3:prefix": "toto3*"
}
},
"Resource": [
"arn:aws:s3:::mybucket/*"
]
},
{
"Effect": "Allow",
"Action": [
"s3:ListAllMyBuckets"
],
"Resource": [
"*"
]
}
]
}
【问题讨论】:
标签: amazon-web-services amazon-s3