Amazon web services 试图授予IAM用户创建和分配角色的权限,但限制可用策略的类型
我试图赋予用户创建角色的权限(因为我没有提供创建访问密钥的权限) 我已经想出了一个允许用户创建和分配角色的策略。 我现在的问题是,用户可以使用“AdministratorAccess”策略创建角色,即使他们不是管理员。有没有办法拒绝选项列表中的某些策略 下面是通过提供的向导执行的策略 谢谢Amazon web services 试图授予IAM用户创建和分配角色的权限,但限制可用策略的类型,amazon-web-services,amazon-iam,Amazon Web Services,Amazon Iam,我试图赋予用户创建角色的权限(因为我没有提供创建访问密钥的权限) 我已经想出了一个允许用户创建和分配角色的策略。 我现在的问题是,用户可以使用“AdministratorAccess”策略创建角色,即使他们不是管理员。有没有办法拒绝选项列表中的某些策略 下面是通过提供的向导执行的策略 谢谢 { "Version": "2012-10-17", "Statement": [ { "Sid":
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"iam:CreateInstanceProfile",
"iam:UpdateAssumeRolePolicy",
"iam:ListRoleTags",
"iam:UntagRole",
"iam:PutRolePermissionsBoundary",
"iam:TagRole",
"iam:RemoveRoleFromInstanceProfile",
"iam:CreateRole",
"iam:AttachRolePolicy",
"iam:PutRolePolicy",
"iam:ListInstanceProfilesForRole",
"iam:PassRole",
"iam:DetachRolePolicy",
"iam:DeleteRolePolicy",
"iam:ListAttachedRolePolicies",
"iam:ListRolePolicies",
"iam:ListPolicies",
"iam:GetRole",
"iam:ListRoles",
"iam:DeleteRole",
"iam:UpdateRoleDescription",
"iam:CreateServiceLinkedRole",
"iam:UpdateRole",
"iam:DeleteServiceLinkedRole",
"iam:GetRolePolicy"
],
"Resource": "*",
"Condition": {
"BoolIfExists": {
"aws:MultiFactorAuthPresent": "true"
}
}
}
]
}
编辑:26/6/20
我试图按照建议使用权限边界,但可能我的理解仍然不够。我制定了一项新政策:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DenyAdmin",
"Effect": "Deny",
"Action": [
"iam:*"
],
"Resource": "*",
"Condition": {
"ArnEquals": {
"iam:PolicyArn": [
"arn:aws:iam::aws:policy/AdministratorAccess"
]
}
}
}
]
}
我认为这意味着当涉及管理员访问策略时,拒绝任何/所有iam操作。但是,结果是,即使所附加的策略不是AdministratorAccess,也会拒绝所有角色分配/创建。但是,如果我设置了一个策略并添加了一个条件ArnNotEquals the AdministratorAccess,那么我似乎可以做我想做的事情(只是将其用作策略,而不是边界)
根据我所看到的情况,权限边界可能是正确的选择,但我还不能完全理解,因此我犹豫是否将其标记为“正确答案”。您可以使用AWS IAM权限边界: “权限边界是一项高级功能,用于使用托管策略设置基于身份的策略可以授予IAM实体的最大权限。实体的权限边界仅允许它执行其基于身份的策略及其权限边界允许的操作。”
以下是AWS安全博客上的一个分步介绍:因此,使用John Rotenstein的指导,并最终意识到我的错误所在,获得我想要的是向用户添加以下权限边界:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "BoundaryAllowAllNotAdminAccess",
"Effect": "Allow",
"Action": "*",
"Resource": "*",
"Condition": {
"ArnNotEquals": {
"iam:PolicyArn": [
"arn:aws:iam::aws:policy/AdministratorAccess"
]
}
}
}
]
}
我错的地方是我认为我需要否认,但边界是一个限制,所以我可以允许所有的,只要它不是AdministratorAccess,那么其他策略将给出实际的操作/资源,AWS将允许,只要它不使用AdministratorAccess