Как вы препятствуете связать роль с EC2 без определенного тега? - PullRequest
1 голос
/ 27 марта 2019

Я создал роль AWS IAM, и она включала в себя следующее

           AssumeRolePolicyDocument:
            Version: "2012-10-17"
            Statement: 
            - 
                Effect: "Allow"
                Principal: 
                    Service: 
                        - "ec2.amazonaws.com"
                Action: 
                    - "sts:AssumeRole"
                Condition:
                    StringEquals:
                        ec2:ResourceTag/AppCode: !Sub "${AppCode}"

Я проверил, что в моем EC2 есть тег AppCode, и его значение было передано в CloudFormation.

После связывания роли с EC2 я не смог увидеть роль при запуске 'aws configure list' на EC2.

После снятия вышеуказанного условия все заработало немедленно!'aws configure list' вернул правильные результаты.

Что является правильным, чтобы не связывать роль с экземплярами EC2, если у них нет определенного тега с конкретным значением?

Спасибо

1 Ответ

1 голос
/ 27 марта 2019

Я не уверен, возможно ли то, что вы описываете, но, пожалуйста, продолжайте изучать!

Ваша политика гласит: "Разрешить службе EC2 вызывать AssumeRole, если у нее есть определенный тег".

Официальный способ *1006*, позволяющий контролировать, можно ли назначить роль экземпляру EC2, заключается в предоставлении iam:PassRole объекту IAM, который запускает экземпляр.

Если у кого-то нет iam:PassRole, тогда он не может указать роль при запуске экземпляра. Если вы хотите, чтобы они могли использовать определенную роль, вы можете предоставить им iam:PassRole для определенной роли, которую они могут затем использовать при запуске экземпляра.

Этот метод предоставляет IAM User / Group / Role разрешение на выбор роли, а не управление разрешениями на основе экземпляра (который еще не обязательно существует).

...