Aufgrund eines ungültigen IamInstanceProfile kann keine Startkonfiguration erstellt werden.

Aufgrund eines ungültigen IamInstanceProfile kann keine Startkonfiguration erstellt werden.

Beim Versuch, ein Startkonfigurationselement zu erstellen, erhalte ich diese Fehlermeldung:

Problem beim Starten der Konfiguration: Beim Aufrufen der Operation ist ein Fehler (ValidationError) aufgetreten: Ungültiges IamInstanceProfile:AWS_EC2_INSTANCE_PROFILE_ROLE

Ausführen dieses Codetyps mit 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,
            )

Ich habe 2 lokal verwaltete Richtlinien erstellt, sie einer Rolle zugeordnet und die Rolle einem Instanzprofil zugewiesen. (Offenbar erlaubt boto3 nicht die Anzeige lokal verwalteter Richtlinien in der Rolle, sondern nur verwalteter AWS-Richtlinien, außer wenn man es ausdrücklich versucht):

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

Hier ist die Rolle mit Richtliniendetails:

== Rolle: EC2AppRole ==

{'Rollenname': 'EC2AppRole', 'Richtlinienname': 'CloudWatchSendPolicy', 'Richtliniendokument': {'Version': '2012-10-17', 'Anweisung': [{'Aktion': ['autoscaling:Beschreiben*', 'cloudwatch:', 'Protokolle:', 'sns:'], 'Effekt': 'Erlauben', 'Ressource': ''}]},

{'Rollenname': 'EC2AppRole', 'Richtlinienname': 'AwsSecretsPolicy', 'Richtliniendokument': {'Version': '2012-10-17', 'Anweisung': {'Effekt': 'Zulassen', 'Aktion': ['secretsmanager:Beschreiben*', 'secretsmanager:Abrufen*', 'secretsmanager:Liste*'], 'Ressource': '*'}},

Die Instanzprofile scheinen in Ordnung zu sein:

== Instanzprofil == {'Pfad': '/', 'Instanzprofilname': 'AWS_EC2_INSTANCE_PROFILE_ROLE', 'Instanzprofil-ID': 'AIPAXQXBO3GJ2LGTKDJ3L', 'Arn': 'arn:aws:iam::516942649747:instance-profile/AWS_EC2_INSTANCE_PROFILE_ROLE', 'Erstellungsdatum': datetime.datetime(2020, 12, 24, 5, 30, 4, tzinfo=tzutc()), 'Rollen': [{'Pfad': '/', 'Rollenname': 'EC2AppRole', 'Rollen-ID': 'AROAXQXBO3GJ2AUOHJMVV', 'Arn': 'arn:aws:iam::516942649747:role/EC2AppRole', 'Erstellungsdatum': datetime.datetime(2020, 12, 24, 5, 30, 4, tzinfo=tzutc()), 'AssumeRolePolicyDocument': {'Version': '2012-10-17', 'Anweisung': [{'Effekt': 'Zulassen', 'Auftraggeber': {'Dienst': 'ec2.amazonaws.com'}, 'Aktion': 'sts:AssumeRole'}]}}]}

Es tut mir leid, ich weiß nicht, wie ich diesen Beitrag richtig formatieren soll.

Gibt es Informationen, die ich zur Aufklärung beitragen kann?

Ich habe alles im Aufruf „create_launch_configuration“ getestet und bin zu dem Schluss gekommen, dass alles korrekt ist, soweit ich das beurteilen kann.

Antwort1

Verwenden Sie einen Kellner:

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

odertime.sleep(x)

um sicherzustellen, dass die Ressource verfügbar ist.

(Warten auf die Selbstakzeptanz) – Erste Tests lassen darauf schließen, dass es sich um ein Warteproblem handelt.

verwandte Informationen