Назад | Перейти на главную страницу

Создайте политику IAM, которая разрешает все, кроме IAM, кроме PassRole

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

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

Я использовал информацию в этот вопрос чтобы добавить iam: PassRole, но политика не проходит проверку в симуляторе.

{
"Statement": [
    {
        "Effect": "Allow",
        "NotAction": "iam:*",
        "Resource": "*"
    },
    {
        "Effect": "Allow",
        "Action": "iam:PassRole",
        "Resource": "arn:aws:iam::ACCOUNTID:role/MYROLE"
    }
]
}

Если я изменю ресурс второго оператора на "Resource": "*" проверка проходит успешно, и симулятор показывает, что PassRole явно разрешена, все остальное в IAM неявно запрещается, а все в S3 явно разрешено.

Что я делаю не так с указанной ролью? Какие могут быть последствия для безопасности, если разрешить PassRole для всех (я предполагаю, что симулятор политики не обманывает). Есть ли лучший способ достичь того, чего я хочу?

Мне это кажется ошибкой в ​​Симуляторе политик. Даже сами Amazon декларируют такую ​​же политику, как ваша в их примере. Симулятор жалуется, но на самом деле привязка этой политики к пользователю работает нормально.

Что я делаю не так с указанной ролью?

Насколько мне известно, ничего.

Какие могут быть последствия для безопасности, если разрешить PassRole для всех (я предполагаю, что симулятор политики не обманывает).

Что ж, вы бы позволили iam:PassRole действие на любую роль. По сути, это означает, что пользователь с этой политикой сможет запустить экземпляр EC2 с любой прикрепленной к нему ролью IAM. Это также объясняется в Документация AWS, указанная выше:

В качестве альтернативы вы можете предоставить пользователям IAM доступ ко всем вашим ролям, указав ресурс как «*» в этой политике. Однако подумайте, могут ли пользователи, запускающие экземпляры с вашими ролями (существующие или создаваемые вами позже), получить разрешения, которые им не нужны или не должны иметь.