为单个客户提供文件夹访问权限



在S3中,我有一个名为customerdata的bucket。在这种情况下,我希望每个客户都有文件夹,所以

/customerdata/bobjones/project1/data
/customerdata/jamessmith/project1/data

我需要让每个客户只访问他们的文件夹和其中的数据,最好是使用一个简单的免费工具,比如cloudberry s3 explorer。目标是让Bob Jones登录cloudberry,并查看bobjones文件夹中的数据。

不过到目前为止,我只能向鲍勃展示水桶里的一切,或者什么都没展示。这是我在这篇文章、这篇文章和这篇文章之后试图建立的策略:

{
 "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没有看到任何结果。

如果这不是正确的方法,那么正确的设置方法是什么,以便每个客户只看到他们的项目和数据?

使用${aws:username} IAM策略变量可能更简单,如下所述:http://docs.aws.amazon.com/IAM/latest/UserGuide/PolicyVariables.html

但请注意,这将适用于IAM用户,不适合应用程序用户。

相关内容

  • 没有找到相关文章

最新更新