Как добавить роль IAM к существующему экземпляру в AWS?

Я хочу добавить роль IAM к существующему экземпляру EC2 в AWS. Я пытался использовать AWS CLI. Однако я не мог найти способ сделать это.


person Sanjeev Kumar    schedule 10.03.2016    source источник
comment
Вы не можете добавить роль в существующий работающий экземпляр. Это невозможно через aws-cli, а также через aws-консоль.   -  person Hussain K    schedule 10.03.2016
comment
Обновление, февраль 2017 г. Теперь можно добавить роль IAM к существующему экземпляру. Это можно сделать с помощью интерфейса командной строки AWS. Используйте replace-iam-instance-profile-association команда.   -  person John Rotenstein    schedule 15.02.2017


Ответы (5)


Начиная с AWS CLI v1.11.46, который был выпущен только вчера (см. файл CHANGELOG на GitHub), теперь вы можете прикрепить роль IAM к существующему инстансу EC2, который изначально был запущен без роли IAM, с помощью команды associate-iam-instance-profile.

Вы также можете заменить текущую роль IAM для работающего экземпляра, используя replace-iam-instance-profile-association.

Дополнительные сведения см. в следующей статье в блоге безопасности AWS:

Присоединить роль AWS IAM к существующему инстансу Amazon EC2 с помощью интерфейса командной строки AWS.

ОБНОВЛЕНИЕ

С 22 февраля 2017 г. вы можете прикрепить/заменить роль IAM к существующему экземпляру EC2 из Консоль EC2. См. эту запись в блоге для получения более подробной информации.

person Khalid T.    schedule 10.02.2017

если вы получаете сообщение об ошибке «Ассоциация не является активной ассоциацией» при попытке прикрепить роль к существующему экземпляру EC2, вам следует:

1. detach the existing role from the existing EC2 instance.
2. attach a new role to the existing EC2 instance.

как только вы это сделаете, вы сможете прикрепить роль к существующему экземпляру EC2.

person Ajit Goel    schedule 25.11.2017
comment
Я получаю The association iip-assoc-05c59456ac0648156 is not the active association, но IAM-роль экземпляра пуста. Что еще может означать эта ошибка? - person TakingItCasual; 21.09.2018
comment
Попробуйте запустить aws ec2 disassociate-iam-instance-profile --association-id iip-assoc-05c59456ac0648156 Мне нужно было сначала отключить профиль экземпляра iam, чтобы исправить эту конкретную проблему, даже после того, как я удалил роль из ec2 в первую очередь. - person Adam Fowles; 24.02.2020

Роли должны быть назначены при первом запуске экземпляра.

Невозможно назначить Роль после запуска.

Я бы рекомендовал запустить новый экземпляр с помощью консольной команды Launch More Like This. Обратите внимание, что при этом будет создан новый загрузочный диск на основе того же AMI, поэтому любые сохраненные вами данные не будут скопированы. Если вы хотите сохранить данные, вам нужно будет создать AMI из экземпляра и запустить новый экземпляр из этого AMI.

Обновление, февраль 2017 г. Теперь можно добавить роль IAM к существующему экземпляру. Это можно сделать с помощью интерфейса командной строки AWS. Используйте replace-iam-instance-profile-association команда.

person John Rotenstein    schedule 10.03.2016
comment
Если вы окажетесь здесь, продолжайте проверять эту тему: forums.aws.amazon. com/thread.jspa?messageID=748752򶳐 - person eco; 27.10.2016
comment
См. ответ @Khalid T. Эта функция была добавлена. - person Digital Impermanence; 10.02.2017

Ну это суровая правда на данный момент. Вы не можете связать роль IAM с существующим экземпляром. Я узнал об этом, когда пытался использовать службу System Server Manager, которая требовала, чтобы ваш экземпляр EC2 взаимодействовал с ssm API.

Я думаю, нам нужно подождать еще некоторое время.

person Himanshu Chauhan    schedule 09.12.2016

Эта функция была добавлен 9 февраля 2017 г. Примечание: то, что вы ищете, называется "Профиль экземпляра". Политика описывает права. Затем эта политика добавляется к роли и/или профилю экземпляра. Я не вижу никаких заметок о том, как это сделать, поэтому я добавлю в качестве ответа.

Исходный документ здесь

Конкретные инструкции приведены ниже, чтобы соответствовать рекомендациям StackOverflow относительно гниения ссылок.

1) Создать роль

aws iam create-role --role-name YourNewRole --assume-role-policy-document file://YourNewRole-Trust-Policy.json

2) Прикрепить политику к роли

aws iam attach-role-policy --role-name YourNewRole --policy-arn arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess

3) Создать профиль инстанса (именно так называется роль при прикреплении к инстансу)

aws iam create-instance-profile --instance-profile-name YourNewRole-Instance-Profile

4) Добавить роль в профиль экземпляра

 aws iam add-role-to-instance-profile --role-name YourNewRole --instance-profile-name YourNewRole-Instance-Profile

5) Прикрепить профиль экземпляра к экземпляру ec2

aws ec2 associate-iam-instance-profile --instance-id YourInstanceId --iam-instance-profile Name=YourNewRole-Instance-Profile
person joar    schedule 04.09.2019