【问题标题】:How to manage 100s of AWS IAM Roles?如何管理数百个 AWS IAM 角色?
【发布时间】:2018-08-10 15:50:02
【问题描述】:

我们有 3 个存储桶和许多文件夹。

目前有 3 个角色来管理这些存储桶,因此可以保持访问级别。

客户希望限制仅提供对某些特定文件夹的访问权限。

如果我们为特定文件夹创建多个角色,最终会产生 100 多个不同的角色。

Hashi Corp Vault 将使用这些 IAM 角色来提供访问权限。

有没有更好的方法来管理和扩展 AWS IAM 角色?

是否有关于如何管理多个角色的指南?

【问题讨论】:

  • 查看政策条件和政策变量,看看它们是否能提供您需要的灵活性。

标签: amazon-web-services amazon-iam amazon-polly


【解决方案1】:

您可以在 IAM 策略中使用前缀来控制 IAM 角色或 IAM 用户。

这里有一篇关于 S3 存储桶的 IAM 用户级别权限的精彩文章:https://aws.amazon.com/blogs/security/writing-iam-policies-grant-access-to-user-specific-folders-in-an-amazon-s3-bucket/

但总而言之,如果您想获得用户级别的权限,您最终将为每位用户拥有一个 IAM 实体。策略将如下所示

{
  "Version":"2012-10-17",
  "Statement": [
    {
      "Sid": "AllowGroupToSeeBucketListInTheConsole",
      "Action": ["s3:ListAllMyBuckets", "s3:GetBucketLocation"],
      "Effect": "Allow",
      "Resource": ["arn:aws:s3:::*"]
    },
    {
      "Sid": "AllowRootAndHomeListingOfCompanyBucket",
      "Action": ["s3:ListBucket"],
      "Effect": "Allow",
      "Resource": ["arn:aws:s3:::my-company"],
      "Condition":{"StringEquals":{"s3:prefix":["","home/"],"s3:delimiter":["/"]}}
    },
    {
      "Sid": "AllowListingOfUserFolder",
      "Action": ["s3:ListBucket"],
      "Effect": "Allow",
      "Resource": ["arn:aws:s3:::my-company"],
      "Condition":{"StringLike":{"s3:prefix":
                  [
                       "home/${aws:username}/*"
                       "home/${aws:username}"
                  ]
               }
        }
    },
    {
       "Sid": "AllowAllS3ActionsInUserFolder",
       "Action":["s3:*"],
       "Effect":"Allow",
       "Resource": ["arn:aws:s3:::my-company/home/${aws:username}/*"]
    }
  ]
}

对于角色,您将遵循类似的模式,但您不需要那么多 IAM 角色,因为许多用户可能属于类似角色,因此可以共享。

{
  "Version":"2012-10-17",
  "Statement": [
  ...
    {
       "Sid": "AllowAllS3ActionsInUserFolder",
       "Action":["s3:*"],
       "Effect":"Allow",
       "Resource": [
         "arn:aws:s3:::my-folder-1/${aws:username}/*",
         "arn:aws:s3:::my-folder-2/${aws:username}/*"
       ]
    }
    ...
  ]
}

请记住,在 IAM 策略中,您可以为每个语句和多个语句(allowdeny 在资源操作组合上)列出多个资源(文件夹)和操作(创建、列表等文件操作等) .

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-10
    • 2018-08-19
    • 2016-08-27
    • 2021-09-10
    • 1970-01-01
    • 1970-01-01
    • 2021-09-26
    • 2019-05-10
    相关资源
    最近更新 更多