#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, а группа безопасности — для ОТКУДА.