我正在使用AWS S3组件存储文件。
我有一个名为“ mybucket ”的存储桶,其中包含以下文件夹:
+---Mybucket
\---toto1
\---toto2
+---toto3
| \--- subfolder
| \---subsubfolder
\---toto4
我有AWS控制台用户,只需要访问“ toto3”文件夹。
我试图限制对此文件夹的访问,但是用户必须有权列出存储桶的根目录。如果我授予访问根文件夹其他权限,则用户可以浏览“ toto1”和“ toto2”文件夹,但我不希望这样做。
我想配置类似的东西:
我尝试了此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": [
"*"
]
}
]
}
这是一项适用于您的政策:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListAllMyBuckets"
],
"Resource": [
"*"
]
},
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::mybucket/toto3/*"
]
},
{
"Sid": "Stmt1457617230000",
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Condition": {
"StringLike": {
"s3:prefix": [
"",
"toto3/"
]
}
},
"Resource": [
"arn:aws:s3:::mybucket*"
]
}
]
}
细节:
ListAllMyBuckets
控制台需要。它显示所有存储桶的列表。toto3/
路径内允许的任何操作。ListBucket
(检索对象列表)允许在存储桶的根目录和toto3/
路径中使用。我成功测试了此解决方案。
AWS文档参考:允许用户访问Amazon S3中的个人“主目录”
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句