0

開発者用のフェデレーション開発者ロール(duh)を作成し、それをcfテンプレートの形でAWSにプッシュすると、ロール名は単にその名前になります。しかし何らかの理由で、AWSサービス/リソースが想定する役割(EC2インスタンスのラムダロールなど)が設計されている場合、役割には12文字のランダムな文字列が追加されています。IAM CloudFormationテンプレートAWSロール

例:IAM-LAM-役割85C94J38RDE2

はなぜCloudFormationは、これを自動的に追加しますか?

+0

CloudFormationテンプレートを表示できますか?どちらの場合でもRoleNameプロパティを設定しますか? – hellomichibye

答えて

1

がCloudFormation文書のName Typeセクションを参照してください:デフォルトでは

、AWS CloudFormationは、リソースに名前を付けるためのユニークな物理的なIDを生成します。たとえば、AWS CloudFormationは、次の物理IDがstack123123123123-s3bucket-abcdefghijk1のAmazon S3バケットを指定します。 [...]

カスタム名を使用する場合は、AWS CloudFormationテンプレートでそのリソースのnameプロパティを指定します。 AWS::IAM::Roleについては

resources that supports custom namesの一つである)、カスタム名を提供するために、RoleNameプロパティを指定します。

AWS::IAM::Roleリソース内のAssumeRolePolicyDocumentプロパティの内容に基づいて、デフォルトの物理IDが実際に変更されることが示唆されています。私は実際にそのような動作を観察していないので、あるリソースに対してはRoleNameを指定した可能性が高いと思います。

1

CloudFormationは物理IDにランダムな文字を追加するため、2つのIAMロールの間に名前の衝突はありません。特定のAWSアカウントでは、同じ名前のIAMロールが2つ存在することはできません。

それぞれが同じ論理ID(たとえばMyRole)を持つIAMロールを含む2つのCloudFormationスタックを作成する場合、作成されたIAMロールの名前衝突が発生します。そのため、CloudFormationはIAMの役割のランダムな名前を生成します(例:MyRole-85C94J38RDE2MyRole-78DM29SKFJD8)。

IAMロールに固定名を割り当てる場合は、the RoleName propertyを使用できます。

関連する問題