0

Итак, если бы я создал федеративную роль разработчика для разработчиков (duh) и нажимал ее на AWS в виде cf-шаблона, имя роли - это просто то, что я назвал. Но по какой-то причине, если роль предназначена для служб/ресурсов AWS, чтобы предположить (скажем, роль Лямбды для экземпляров EC2), роль имеет, казалось бы, случайную строку из 12 символов, присоединенных к ней.Шаблоны IAM CloudFormation AWS Роли

Ex: IAM-лам-ролевой 85C94J38RDE2

Почему CloudFormation добавить это автоматически?

+0

Вы можете показать свой шаблон CloudFormation? Вы устанавливаете свойство RoleName в обоих случаях? – hellomichibye

ответ

1

Обратитесь к Name Type разделу документации CloudFormation:

По умолчанию AWS CloudFormation генерирует уникальный физический идентификатор назвать ресурс. Например, AWS CloudFormation может назвать ведро Amazon S3 со следующим физическим идентификатором stack123123123123-s3bucket-abcdefghijk1. [...]

Если вы хотите использовать собственное имя, укажите свойство имени для этого ресурса в шаблоне AWS CloudFormation.

Для AWS::IAM::Role (который является одним из resources that supports custom names), указать свойство RoleName, чтобы обеспечить пользовательское имя.

Ваш вопрос предполагает, что физический ID по умолчанию фактически изменяется в зависимости от содержимого свойства AssumeRolePolicyDocument в пределах ресурса AWS::IAM::Role. На практике я не наблюдал такого поведения, поэтому я думаю, что, вероятно, вы указали RoleName для одного ресурса, а не для другого.

1

CloudFormation добавляет случайные символы в физический идентификатор, чтобы не было столкновений имен между 2 ролями IAM. В данной учетной записи AWS не может быть 2 роли IAM с тем же именем.

Если вы должны были создать 2 стека CloudFormation, каждая из которых содержит роль IAM с тем же логическим идентификатором (например, MyRole), возникли бы столкновения имен для создаваемых ролей IAM. Вот почему CloudFormation генерирует случайное имя для ваших ролей IAM (например, MyRole-85C94J38RDE2 и MyRole-78DM29SKFJD8).

Если вы хотите назначить фиксированное имя для своих ролей IAM, вы можете использовать the RoleName property.

Смежные вопросы