У администратора AWS нет операций описания EC2.

avatar
Olshansk
1 июля 2021 в 16:18
143
2
1

У меня есть роль IAM с AdministratorAccess, но когда я загружаю пользовательский шаблон в AWS CloudFormation, я получаю следующую ошибку:

Операция не удалась, ComputeEnvironment стал НЕДЕЙСТВИТЕЛЬНЫМ с ошибкой: CLIENT_ERROR — у вас нет прав для вызова операций описания EC2. Требуется выполнить операцию CreateLaunchConfiguration.

Похоже, что все остальные ресурсы успешно завершены, поэтому я не уверен, что происходит какое-то делегирование ролей?

Источник
Felix
1 июля 2021 в 17:06
0

вы можете запустить его напрямую (не через cloudformation)?

Olshansk
1 июля 2021 в 18:50
0

Да, запуск aws ec2 describe-instances от моего настроенного пользователя CLI работает нормально. Интересно, не распространяются ли некоторые разрешения на формирование облака, даже если у роли есть доступ администратора.

Felix
1 июля 2021 в 21:10
0

или, может быть, команда не работает под этой ролью. ненавижу говорить - но требует много устранения неполадок. Вы говорите role — роль назначается экземпляру сервера. Когда вы запускаете шаблоны CF, обычно они выполняются под пользователем, а разрешения назначаются пользователю. Вы уверены, что имеете в виду роль?

Olshansk
1 июля 2021 в 22:24
0

Я создал нового пользователя, принадлежащего к группе AdministratorAccess, и настроил мои ~/.aws/credentials с новыми ключами. Попробовав оба aws --debug cloudformation create-stack --template-url <url> --stack-name my_stack --capabilities CAPABILITY_NAMED_IAM и заменив возможности на CAPABILITY_IAM, я продолжаю видеть одно и то же. Буду продолжать искать полезные журналы отладки...

John Rotenstein
1 июля 2021 в 23:01
0

В роли службы AWS CloudFormation — AWS CloudFormation упоминается, что CloudFormation может использовать роль службы, прикрепленную к стеку. Когда вы запускаете этот шаблон, указывает ли он роль IAM (шаг консоли № 3)? Кстати, через консоль запускать не пробовали?

Olshansk
2 июля 2021 в 01:13
1

Джон, кажется, это действительно было проблемой. На 2-м шаге создания стека мне пришлось установить CustomRole на true И указать роль IAM на 3-м шаге (admin в моем случае). Любая другая перестановка (истина + без роли, ложь + роль, ложь + без роли) не работала. Я собираюсь продолжить расследование и полностью понять, почему это так, а затем ответить на свой вопрос.

Ответы (2)

avatar
Jason Smith
12 июля 2021 в 19:38
0

Я работал над этой проблемой четыре дня и, наконец, нашел решение, которое, как мне кажется, решает ее.

Существует два вида начальной загрузки CDK: устаревшая и современная. Устаревшая версия используется по умолчанию.

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

Если по какой-то причине вы не застряли на устаревшем бутстрапе, просто перейдите на современный бутстрап. Это должно устранить ошибку (и причину ошибки).

Инструкции находятся здесь: https://docs.aws.amazon.com/cdk/latest/guide/bootstrapping.html

По сути, перед вызовом cdk bootstrap необходимо установить переменную среды, а затем изменить код или конфигурацию в проекте.

Не интуитивно понятно, что эта функция вообще существует в CDK, и что она может решить эту конкретную проблему. Тем не менее, это прояснило это для меня. Возможно, то же самое произойдет и с другими.

avatar
Shawn
1 июля 2021 в 16:46
1

Вполне возможно, что на вас влияют Политики управления обслуживанием (SCPS) или по Границы разрешений <911824141089> или даже другие Типы полисов <91182414149> или даже другие .

Относительно SCP:

SCP ограничивает разрешения для пользователей и ролей IAM в члене учетные записи, включая пользователя root учетной записи участника. Любой аккаунт имеет только те разрешения, которые разрешены каждым родителем над ним. Если разрешение заблокировано на любом уровне выше учетной записи, либо неявно (не будучи включенным в оператор политики Allow) или явно (путем включения в заявление политики запрета), пользователь или роль в затронутой учетной записи не может использовать это разрешение, даже если администратор учетной записи прикрепляет IAM-политику AdministratorAccess с помощью / разрешения пользователю.

Также см. Как использовать политики управления службами для установки ограничений разрешений для аккаунтов в вашей организации AWS

Как указано в этой статье,

Учетные записи участников организации AWS не могут видеть SCP. которые были применены к ним. Далее, когда действия отвергаются, невозможно узнать, связано ли это с политикой IAM, SCP, или что-то еще (например, политика сеанса, граница IAM, политика ресурсов). Это означает, что в сообщении об ошибке от вызов API или в журнале CloudTrail, чтобы показать, что отклонило вызов. Этот может затруднить отладку.

В этой статье есть несколько полезных диаграмм, которые показывают различные факторы, которые могут влиять на доступ или ограничивать его.

Felix
1 июля 2021 в 17:05
0

Возможно, но крайне маловероятно. OP ничего не говорит об организациях AWS, и если все остальное работает - вероятно, это настройка одной организации.

Olshansk
1 июля 2021 в 17:37
0

Это правильно. Там нет SCP, потому что это личная учетная запись, а также нет никаких ограничений разрешений.