Amazon web services 如何管理100个AWS IAM角色?

Amazon web services 如何管理100个AWS IAM角色?,amazon-web-services,amazon-iam,amazon-polly,Amazon Web Services,Amazon Iam,Amazon Polly,我们有3个存储桶和许多文件夹 目前有3个角色用于管理这些存储桶,因此可以保持访问级别 客户希望限制仅提供对特定文件夹的访问 如果我们为特定的文件夹创建多个角色,我们将得到100个不同的角色 Hashi Corp Vault将使用这些IAM角色提供访问权限 是否有更好的方法来管理和扩展AWS IAM角色 有关于如何管理多个角色的指导原则吗?您可以在IAM策略中使用前缀来控制IAM角色或IAM用户 关于S3存储桶上的IAM用户级权限,这里有一个很棒的writeup: 但总而言之,如果您想要进入用户级

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

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

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

如果我们为特定的文件夹创建多个角色,我们将得到100个不同的角色

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

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


有关于如何管理多个角色的指导原则吗?

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

关于S3存储桶上的IAM用户级权限,这里有一个很棒的writeup:

但总而言之,如果您想要进入用户级权限,那么最终每个用户将拥有一个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策略中,每个语句和多个语句(资源操作组合上的
allow
deny
)可以列出多个资源(文件夹)和操作(文件操作,如创建、列表等).

查看策略条件和策略变量,看看它们是否提供了您所需的灵活性。