#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 .