
При попытке создать элемент конфигурации запуска возникает следующая ошибка:
Проблема с конфигурацией запуска: произошла ошибка (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': '*'}},
Профили экземпляров кажутся правильными:
== Профиль экземпляра == {'Путь': '/', 'ИмяПрофиляЭкземпляра': 'AWS_EC2_INSTANCE_PROFILE_ROLE', 'ИдентификаторПрофиляЭкземпляра': 'AIPAXQXBO3GJ2LGTKDJ3L', 'Arn': 'arn:aws:iam::516942649747:профиль-экземпляра/AWS_EC2_INSTANCE_PROFILE_ROLE', 'ДатаСоздания': datetime.datetime(2020, 12, 24, 5, 30, 4, tzinfo=tzutc()), 'Роли': [{'Путь': '/', 'ИмяРоли': 'EC2AppRole', 'ИдентификаторРоли': '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'}, 'Action': 'sts:AssumeRole'}]}}]}
Извините, я не знаю, как правильно отформатировать этот пост.
Могу ли я поделиться какой-либо информацией, которая поможет прояснить ситуацию?
Я проверил все данные в вызове create_launch_configuration и, насколько я могу судить, все правильно.
решение1
Воспользуйтесь услугами официанта:
https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/iam.html#waiters
илиtime.sleep(x)
чтобы убедиться, что ресурс доступен.
(Подожду, чтобы принять это самостоятельно) - Первоначальное тестирование показывает, что это проблема ожидания.