Невозможно создать конфигурацию запуска из-за недопустимого профиля 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,
            )

Я создал две локально управляемые политики, привязал их к роли и назначил роль профилю экземпляра.(Кажется, 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: ', 'logs: ', 'sns: '], 'Эффект': 'Разрешить', 'Ресурс': ' '}]},

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

Профили экземпляров кажутся в порядке:

== Профиль экземпляра =={'Путь': '/', 'InstanceProfileName': 'AWS_EC2_INSTANCE_PROFILE_ROLE', 'InstanceProfileId':'AIPAXQXBO3GJ2LGTKDJ3L', 'Arn':'arn:aws:iam::516942649747:instance-profile/AWS_EC2_INSTANCE_PROFILE_ РОЛЬ ', 'CreateDate': datetime.datetime(2020, 12, 24, 5, 30, 4,tzinfo=tzutc()), 'Роли': [{'Путь': '/', 'RoleName': 'EC2AppRole' , 'RoleId': 'AROAXQXBO3GJ2AUOHJMVV', 'Arn':'arn:aws:iam::516942649747:role/EC2AppRole', 'CreateDate':datetime.datetime(2020, 12, 24, 5, 30, 4, tzinfo=tzutc()),'AssumeRolePolicyDocument': {'Version': '2012-10-17', 'Statement':[{'Effect': 'Allow', 'Principal': {'Service': '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)

чтобы убедиться, что ресурс доступен.

(Подождет, чтобы самостоятельно принять) - Первоначальное тестирование предполагает, что это отложенная проблема.

Другие вопросы по тегам