Доступ запрещен для экземпляра EC2 с присоединенной ролью IAM

#amazon-web-services #amazon-ec2 #amazon-iam

#amazon-web-services #amazon-ec2 #amazon-iam

Вопрос:

У меня есть следующая роль IAM:

  • AmazonEC2FullAccess
  • Пользовательская политика

В моей пользовательской политике у меня есть:

 {
"Version": "2012-10-17",
"Statement": [
    {
        "Sid": "VisualEditor1",
        "Effect": "Allow",
        "Action": "iam:ListRoles",
        "Resource": "*",
        "Condition": {
            "IpAddress": {
                "aws:SourceIp": "10.0.0.0/16"
            }
        }
    }
]
}
  

Затем я создаю новый экземпляр EC2 и прикрепляю к нему эту роль.

Внутри экземпляра EC2 я пытаюсь сделать:

 aws iam list-roles
  

Но я получаю эту ошибку:

Произошла ошибка (доступ запрещен) при вызове операции ListRoles: Пользователь: arn: aws: sts::XXXXXXX: предполагаемая роль / My-Role/i-XXXXXX не авторизован для выполнения: iam: ListRoles на ресурсе: arn: aws: iam::XXXXXXX:роль/

У вас есть идея, почему это не работает, пожалуйста? Спасибо.

PS: IP-адрес экземпляра EC2 равен 10.0.0.XX

Комментарии:

1. Это не тот IP, который видит IAM. Вы можете подтвердить это, удалив условие IP-адреса. И, возможно, вместо этого используйте общедоступный IP-адрес вашего экземпляра EC2 для вашего условия.

2. Что вы хотели контролировать, добавляя ограничение IP? Вы беспокоитесь о том, что роль используется в другом месте или другими людьми?

3. Спасибо, ребята, это имеет смысл, и это сработало!

Ответ №1:

IAM API работает в Интернете. Таким образом, когда он получит ваш запрос, он будет поступать с IP-адреса экземпляра. IAM никогда не видит частный IP-адрес экземпляра.

Теоретически ограничение IP-адреса не должно быть необходимым, поскольку роль может использоваться только в тех экземплярах, где она была назначена. Вы должны обеспечить безопасность для того, кто может использовать роль ( iam:PassRole ), а не для того, откуда эта роль может быть использована.

Комментарии:

1. имеет смысл, поскольку iam предназначен для WHO, а группа безопасности — для ОТКУДА.