IamInstanceProfile が無効なため起動構成を作成できません

IamInstanceProfile が無効なため起動構成を作成できません

起動構成項目を作成しようとすると、次のエラーが発生します:

起動構成の問題: 操作の呼び出し時にエラーが発生しました (ValidationError): 無効な IamInstanceProfile:AWS_EC2_INSTANCE_PROFILE_ROLE

このタイプのコードをboto 3で実行する:

self.as_client.create_launch_configuration(
                KeyName=f"{self.vpcid}-{self.profile_name}.pem",
                IamInstanceProfile=self.inst_prof_name,
                ImageId=self.ec2_inst.ami,
                InstanceType=self.ec2_inst.type,
                LaunchConfigurationName=self.ec2_inst.lc_name,
                SecurityGroups=[x.id for x in self.sec_groups.values()],
                UserData=userdata,
            )

ローカルで管理されるポリシーを 2 つ作成し、ロールにアタッチして、そのロールをインスタンス プロファイルに割り当てました。(boto3 では、明示的に試行しない限り、ロールでローカルで管理されるポリシーの表示は許可されず、管理される AWS のポリシーのみが表示されるようです。)

print(iam_client.get_role_policy(RoleName="EC2AppRole",PolicyName="CloudWatchSendPolicy"))
print(iam_client.get_role_policy(RoleName="EC2AppRole",PolicyName="AwsSecretsPolicy"))

ポリシーの詳細を含む役割は次のとおりです。

== ロール: EC2AppRole ==

{'RoleName': 'EC2AppRole'、'PolicyName': 'CloudWatchSendPolicy'、'PolicyDocument': {'Version': '2012-10-17'、'Statement': [{'Action': ['autoscaling:Describe*'、'cloudwatch:', 'ログ:', 'SNS:']、'効果': '許可'、'リソース': ''}]},

{'RoleName': 'EC2AppRole'、'PolicyName': 'AwsSecretsPolicy'、'PolicyDocument': {'Version': '2012-10-17'、'Statement': {'Effect': 'Allow'、'Action': ['secretsmanager:Describe*'、'secretsmanager:Get*'、'secretsmanager:List*']、'Resource': '*'}}、

インスタンス プロファイルは問題ないようです:

== インスタンスプロファイル == {'Path': '/'、'InstanceProfileName': 'AWS_EC2_INSTANCE_PROFILE_ROLE'、'InstanceProfileId': 'AIPAXQXBO3GJ2LGTKDJ3L'、'Arn': 'arn:aws:iam::516942649747:instance-profile/AWS_EC2_INSTANCE_PROFILE_ROLE'、'CreateDate': datetime.datetime(2020, 12, 24, 5, 30, 4, tzinfo=tzutc())、'Roles': [{'Path': '/'、'RoleName': 'EC2AppRole'、'RoleId': 'AROAXQXBO3GJ2AUOHJMVV'、'Arn': 'arn:aws:iam::516942649747:role/EC2AppRole'、'CreateDate': datetime.datetime(2020, 12, 24, 5, 30, 4, tzinfo=tzutc())、'AssumeRolePolicyDocument': {'バージョン': '2012-10-17'、'ステートメント': [{'効果': '許可'、'プリンシパル': {'サービス': 'ec2.amazonaws.com'}、'アクション': 'sts:AssumeRole'}]}}]}

申し訳ありませんが、この投稿を適切にフォーマットする方法がよくわかりません。

明確にするために共有できる情報はありますか?

私は、create_launch_configuration 呼び出しのすべてが正しいことをできる限りテストしました。

答え1

ウェイターを使用する:

https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/iam.html#waiters

またはtime.sleep(x)

リソースが利用可能であることを確認します。

(自己承認を待つ) - 最初のテストでは、待機の問題であることが示唆されています。

関連情報