ec2-пользователь против изменения профиля корневого экземпляра IAM

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

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

Вопрос:

У меня есть развертывание приложения на основе CloudFormation, которое создает экземпляр Amazon Linux 2 EC2 из Marketplace AMI с профилем экземпляра IAM. В шаблоне CloudFormation я запускаю сценарии через cfn-init, в которых есть некоторые команды командной строки AWS CLI, такие как ssm get-parameter, а также монтирую том EFS с помощью mount и amazon-efs-utils. Это работает как шарм.

Теперь у меня есть клиент, который работает в своей учетной записи AWS, используя общие шаблоны AMI и CloudFormation. Для них cfn-init завершается с ошибкой, потому что cfn-init выполняется от имени root, но root, как ни странно, не имеет привилегий IAM и не может запускать сценарии или монтирование на основе efs-helper, даже если профиль экземпляра есть. Но у ec2-user есть привилегии IAM из профиля экземпляра!

Подводя итог:

ec2-пользователь имеет права доступа к IAM из профиля экземпляра.

 # logged in as ec2-user
aws ssm get-parameter --name "/aParameter"
 

возвращает результат

root не имеет привилегий IAM из профиля экземпляра.

 # logged in as ec2-user
sudo aws ssm get-parameter --name "/aParameter"

An error occurred (ParameterNotFound) when calling the GetParameter operation: 
 

Я ожидал, что все пользователи, работающие в экземпляре, будут иметь профиль экземпляра в качестве своих учетных данных, если они явно не прошли проверку подлинности каким-либо другим способом. Я не вижу ничего в среде клиента, что могло бы вызвать это — я думал, может быть, политика управления службами — но у них ничего этого нет.

Кто-нибудь видел это поведение и исправил?

Заранее большое спасибо…..

Ответ №1:

Я понятия не имею о взаимосвязи между ec2-user и профилем экземпляра. ec2-user — это пользователь в Linux. профиль экземпляра — это роль IAM, прикрепленная к экземпляру EC2. Я думаю, вы можете проверить с помощью других команд, таких как aws s3 ls . Кстати, вы используете sudo с root.

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

1. не могли бы вы также попробовать aws iam get-user, который может показать, какие учетные данные используются.

2. Я полагаю, вы упомянули о приоритете учетных данных профиля экземпляра и учетных данных пользователя. Следуйте этим документам: aws.amazon.com/premiumsupport/knowledge-center /… => учетные данные пользователя имеют более высокий приоритет, чем учетные данные роли. Он должен следовать документам и проверять учетные данные.

Ответ №2:

Оказывается, учетные данные AWS были оставлены у пользователя root в AMI. :-/

aws iam get-user Предложение Асри Бадлаха показало проблему. Спасибо!

У профиля экземпляра не было доступа к get-user, но sudo get-user сделал это и показал пользователю учетные данные в /root/.aws .