4

我需要创建一个 IAM 策略,并且该策略将附加到用户。我想要的是,具有此策略的用户能够创建新的 IAM 角色和自定义策略,但我不希望用户使用 iam:* 或管理策略等操作创建任何自定义策略。例如:

我的保单包含声明

        {
        "Sid": "LimitIamRoleAndPolicyAccess",
        "Effect": "Allow",
        "Action": [
            "iam:AttachRolePolicy",
            "iam:CreatePolicy",
            "iam:CreatePolicyVersion",
            "iam:CreateRole"
        ],
        "Resource": "*",
        "Condition": {
            "ArnNotEquals": {
                "iam:PolicyArn": [
                    "arn:aws:iam::aws:policy/AdministratorAccess",
                    "arn:aws:iam::*:group/Administrators",
                    "arn:aws:iam::aws:policy/IAMFullAccess"
                ]
            }
        }

上面的语句限制用户对角色附加 IAMFullAccess 权限,但用户能够创建自定义策略并提供如下 json 以允许访问所有 iam 服务

{
   "Effect": "Allow",
   "Action": "iam:*",
   "Resource": "*"
}

甚至更糟的是,他可以制定政策,例如

{
   "Effect": "Allow",
   "Action": "*",
   "Resource": "*"
}

可以访问所有内容。我如何限制他们创建此类策略。对我来说,重要的是他们确实拥有 iam:CreatePolicy 权限,但他们不应该能够创建上述策略。

4

1 回答 1

2

对用户策略的“iam:CreateUser”权限使用“iam:permissionboundary”条件

"Condition": {"StringEquals": 
                {"iam:PermissionsBoundary": "arn:aws:iam::111122223333:policy/XCompanyBoundaries"}}

您的方案与此示例相同

于 2018-12-18T14:46:57.480 回答