Как я могу ограничить использование AWS AMI владельцем в политике IAM? - PullRequest
0 голосов
/ 31 января 2020

Вот сокращенный (но отформатированный) фрагмент политики:

{
   "Version": "2012-10-17",
   "Statement": [{
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": [ 
         "arn:aws:ec2:us-east-1::image/ami-*"
      ],
      "Condition": {
         "StringEquals": {
            "ec2:Owner": "987654321000"
         }
      }
   },
   {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": [ 
         "arn:aws:ec2:us-east-1:000123456789:instance/*",
         "arn:aws:ec2:us-east-1:000123456789:subnet/*",
         "arn:aws:ec2:us-east-1:000123456789:volume/*",
         "arn:aws:ec2:us-east-1:000123456789:network-interface/*",
         "arn:aws:ec2:us-east-1:000123456789:key-pair/*",
         "arn:aws:ec2:us-east-1:000123456789:security-group/*"
         ]
      }
   ]
}

Предполагается, что 000123456789 - учетная запись, в которой активна политика. Предполагая, что 987654321000 является учетной записью, от которой AMI является общим и является владельцем.

Эта политика завершается ошибкой в ​​имитаторе политики, когда я применяю правильные записи условий и не работает должным образом в целевой аккаунт - не удается.

Что я пропускаю?

Как я читал это:

Разрешить ec2: RunInstances в us-east-1 с использованием любого AMI в us-east-1, где владельцем является 98765432100 для любого экземпляра , su bnet, volume, eni, key-pair или sg, расположенные в us-east-1 в целевой учетной записи 000123456789 .

Что вызывает сбой?

Ответы [ 2 ]

1 голос
/ 01 февраля 2020

Ваша политика хорошо работает для меня. Вот что я сделал:

  • Создание нового пользователя IAM и сохранение его учетных данных с помощью aws configure --profile foo
  • Предоставил этому пользователю IAM свою политику, но:
    • Измененные регионы (Я использую ap-southeast-2)
    • Изменен 000123456789 в мой идентификатор учетной записи
    • Создан AMI в другой учетной записи , поделился им с первой учетной записью и изменил 987654321000 в идентификатор этой учетной записи
  • Запустил экземпляр из AWS CLI:
aws ec2 run-instances --image-id ami-xxx --security-group-id sg-xxx --instance-type t2.nano --region ap-southeast-2 --profile xxx

Он успешно запустил экземпляр. Однако указание AMI из другой учетной записи привело к сбою запуска (по желанию).

Одна вещь, которую я заметил, заключается в том, что при запуске с AMI с поддержкой AWS для ec2:Owner должно быть установлено значение amazon, а не номер счета.

0 голосов
/ 31 января 2020

Я думаю, что это то, что вам нужно Уровень 300: границы разрешений IAM. Делегирование создания ролей , замена создания ролей использованием AMI)

На основе использования Границы разрешений IAM

...