如何通过角色链限制 IAM 角色以获得比其本身允许的更高的权限?

Rah*_*obe -2 amazon-web-services amazon-iam

我有一个ThisRole具有以下deny权限的角色:

        {
            "Sid": "DenyPolicies",
            "Effect": "Deny",
            "Action": [
                "iam:AddUserToGroup",
                "iam:AttachGroupPolicy",
                "iam:AttachUserPolicy",
                "iam:CreateGroup",
                "iam:CreateLoginProfile",
                "iam:CreateUser",
                "iam:DeleteUser",
                "iam:DeleteLoginProfile",
                "iam:DeleteAccountPasswordPolicy",
                "iam:DeleteGroup",
                "iam:DeleteGroupPolicy",
                "iam:DeleteOpenIDConnectProvider",
                "iam:DeleteUserPolicy",
                "iam:DeleteVirtualMFADevice",
                "iam:DetachGroupPolicy",
                "iam:DetachUserPolicy",
                "iam:EnableMFADevice",
                "iam:RemoveUserFromGroup",
                "iam:UpdateGroup",
            ],
            "Resource": "*"
        }
Run Code Online (Sandbox Code Playgroud)

以及以下allow权限:

    "Statement": [
        {
            "Effect": "Allow",
            "Action": "*",
            "Resource": "*"
        }
    ]
Run Code Online (Sandbox Code Playgroud)

我确实想ThisRole创建新角色、创建新角色并更新现有 IAM 策略。这就是为什么iam:CreateRole和喜欢不被拒绝。但这为这个角色打开了后门:

  1. 创建一个新角色(比方说NewRole)。
  2. 允许NewRole所有权限本身被拒绝。
  3. 假设这个NewRole(角色链)。
  4. 执行否则被拒绝的权限ThisRole

允许ThisRole创建新角色/策略、修改现有角色/策略或承担其他角色但仅在其本身被允许做的范围内的最佳方法是什么?

Azi*_*ize 5

您最好的选择是使用Permissions Boundary

通过这种方式,您将允许他们创建角色,但他们将被迫使用您定义的权限边界,限制他们可以做什么。

下面的两个链接将为您解释更多: