我需要创建一个 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 权限,但他们不应该能够创建上述策略。