简体   繁体   English

在AWS S3 IAM策略中指定多个文件夹

[英]Specifying multiple folders in AWS S3 IAM policy

I guess that my question is pretty straightforward. 我想我的问题很简单。 Let's say that I have following S3 bucket structure. 假设我具有以下S3存储桶结构。

- root_folder_bucket
  - subfolder1
  - subfolder2
  - subfolder3
  - somefolder

The naive approach to restrict access only, for example, subfolder1, subfolder2, and subfolder3 would be like bellow. 仅限制访问的简单方法,例如子文件夹1,子文件夹2和子文件夹3就像下面这样。 In fact, AWS wouldn't throw an error, but such policy will not work. 实际上,AWS不会抛出错误,但是这样的策略将行不通。 Is there any elegant way to write the Resource policy like bellow or I should stick to the prefixes, conditions, and delimiter? 有没有像下面这样写资源策略的优雅方法,或者我应该坚持使用前缀,条件和分隔符?

"arn:aws:s3:::root_folder_bucket/[subfolder1, subfolder2]/*",

Instead of defining the subfolders in a single ARN (Which won't work), you can either add multiple statements to the policy life shown below, 除了可以在单个ARN中定义子文件夹(不起作用)之外,您还可以在以下所示的策略寿命中添加多个语句,

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["s3:ListBucket"],
      "Resource": ["arn:aws:s3:::root_folder_bucket/subfolder1"]
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:GetObject",
        "s3:DeleteObject"
      ],
      "Resource": ["arn:aws:s3:::root_folder_bucket/subfolder2"]
    }
  ]
}

Or add multiple ARNs to the Resource block, 或将多个ARN添加到资源块,

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["s3:ListBucket"],
      "Resource": ["arn:aws:s3:::root_folder_bucket/subfolder1",
                   "arn:aws:s3:::root_folder_bucket/subfolder2"]
    }
  ]
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM