在S3中,我有一个名为customerdata
的存储桶。在此之下,我想为每个客户提供文件夹,所以
/customerdata/bobjones/project1/data
/customerdata/jamessmith/project1/data
我需要为每个客户提供访问其文件夹及其中的数据的权限,最好使用像cloudberry s3 explorer这样的简单免费工具。目标是让Bob Jones登录到cloudberry,并查看bobjones
文件夹中的数据。
到目前为止,我只能向鲍勃展示一切,或者什么都没有。这是我尝试设置的政策,遵循this article,this one和this one:
{
"Version":"2012-10-17",
"Statement": [
{
"Sid": "AllowUserToSeeBucketListInTheConsole",
"Action": ["s3:ListAllMyBuckets", "s3:GetBucketLocation"],
"Effect": "Allow",
"Resource": ["arn:aws:s3:::*"],
"Condition":{"StringEquals":{"s3:prefix":["","customerdata/"],"s3:delimiter":["/"]}}
},
{
"Sid": "AllowRootAndHomeListingOfCompanyBucket",
"Action": ["s3:ListBucket"],
"Effect": "Allow",
"Resource": ["arn:aws:s3:::customerdata"],
"Condition":{"StringEquals":{"s3:prefix":["","bobjones/"],"s3:delimiter":["/"]}}
},
{
"Sid": "AllowListingOfUserFolder",
"Action": ["s3:ListBucket"],
"Effect": "Allow",
"Resource": ["arn:aws:s3:::customerdata"],
"Condition":{"StringLike":{"s3:prefix":["bobjones/*"]}}
},
{
"Sid": "AllowAllS3ActionsInUserFolder",
"Effect": "Allow",
"Action": ["s3:*"],
"Resource": ["arn:aws:s3:::customerdata/bobjones/*"]
}
]
}
我做错了什么?这甚至可能是我试图做的事情吗?我也试过了小组第一种方法,并没有在cloudberry中看到任何东西。
如果这不是正确的方法,那么设置它的正确方法是什么,以便每个客户只能看到他们的项目和数据?
答案 0 :(得分:0)
使用${aws:username}
IAM策略变量执行此操作可能更简单,如下所述:
http://docs.aws.amazon.com/IAM/latest/UserGuide/PolicyVariables.html
但请注意,这将适用于IAM用户,不适合应用程序用户。