Политика Amazon IAM: запретить пользователю создавать группу / роль только в том случае, если одной из прикрепленных политик является BaseDeny - PullRequest
0 голосов
/ 09 октября 2018

Я хотел ограничить IAM пользователя от создания новой группы / ролей и разрешить, только если пользователь присоединяет пользовательскую политику BaseDeny вместе с другими политиками.Это означает, что в каждой группе / ролях, созданных пользователем, должна быть политика BaseDeny, чтобы он мог создать новую группу / роли.

Я пытался добавить следующую политику для пользователя, чтобы добиться этого, однако это позволяет добавлять только BaseDeny, но я хотел разрешить, если пользователь добавляет любую другую политику вместе с BaseDeny.

Какие условия необходимы для достижения этой цели?Или любой другой способ заставить это работать?

{
"Version": "2012-10-17",
"Statement": [{
        "Sid": "ManageUsersPermission",
        "Effect": "Allow",
        "Action": [
            "iam:ChangePassword",
            "iam:CreateAccessKey",
            "iam:CreateLoginProfile",
            "iam:DeleteAccessKey",
            "iam:DeleteLoginProfile",
            "iam:UpdateAccessKey",
            "iam:ListAttachedUserPolicies",
            "iam:ListPolicies",
            "iam:ListUserPolicies",
            "iam:ListGroups",
            "iam:ListGroupsForUser",
            "iam:GetPolicy",
            "iam:GetAccountSummary",
            "iam:GetGroup",
            "iam:ListGroupPolicies"
        ],
        "Resource": "*"
    },
    {
        "Sid": "CreateGroupRoleLimited",
        "Effect": "Allow",
        "Action": [
            "iam:CreateGroup",
            "iam:AddUserToGroup",
            "iam:CreateRole",
            "iam:ListAttachedGroupPolicies",
            "iam:ListAttachedRolePolicies"
        ],
        "Resource": "*"
    },
    {
        "Sid": "AttachDettachLimitedPolicy",
        "Effect": "Allow",
        "Action": [
            "iam:AttachGroupPolicy",
            "iam:AttachRolePolicy",
            "iam:AttachUserPolicy"
        ],
        "Resource": "*",
        "Condition": {
            "ArnLike": {
                "iam:PolicyArn": [
                    "arn:aws:iam::*:policy/BaseDeny"
                ]
            }
        }
    }
]
}

Ответы [ 2 ]

0 голосов
/ 10 октября 2018

Чтобы решить эту проблему, взгляните на Делегирование разрешений IAM

То, что вы пытаетесь сделать, это именно то, для чего была создана функция делегирования.Вместо того, чтобы пытаться убедиться, что конкретная политика BaseDeny включена в новые группы (один из способов достижения границы разрешений), следуйте по ссылке в блоге, чтобы создать границу разрешений, исключающую то, что вы хотелиотклонить с BaseDeny .

0 голосов
/ 10 октября 2018

Это невозможно.

Ближайшим вариантом будет создание правила конфигурации AWS для проверки ролей / групп, которые не содержат эту политику.

Это проверяет «по факту», но вы можете автоматизировать правило, чтобы отключить роль / группу, которая нарушает правило.

См .: Как разрабатывать пользовательские правила конфигурации AWS с помощью разработки правилКит |Блог инструментов управления AWS

...