Ich möchte Amazon Elastic Compute Cloud (Amazon EC2) -Instances über AWS CloudFormation erstellen. Meine AWS-Richtlinie für Identity and Access Management (IAM) für RunInstances enthält jedoch tagbasierte Einschränkungen.
Kurzbeschreibung
Sie können eine Startvorlage verwenden, um Amazon EC2-Instances über CloudFormation zu erstellen.
Die Eigenschaft Tags der Ressource AWS::EC2::Instance erstreckt sich nicht auf die Volumes, die über CloudFormation erstellt werden. Wenn die IAM-Richtlinie, die dem Benutzer oder der Rolle zugeordnet ist, Einschränkungen für Volume-Tags enthält, wird die folgende Fehlermeldung angezeigt:
„Sie sind nicht berechtigt, diesen Vorgang durchzuführen.“
Um die Tags über CloudFormation an ec2:CreateVolume zu übergeben, müssen Sie Ihre Tags in der Ressource AWS::EC2::LaunchTemplate in Ihrer CloudFormation-Vorlage definieren.
Behebung
- Definieren Sie im Stapel eine Startvorlage mit den Tags, die die IAM-Richtlinie erfordert. Zum Beispiel:
RequiredTagsLaunchTemplate:
Type: 'AWS::EC2::LaunchTemplate'
Properties:
LaunchTemplateData:
TagSpecifications:
- ResourceType: volume
Tags:
- Key: Env
Value: Dev
- Hängen Sie Ihre Startvorlage an Ihre EC2-Instance-Ressource an. Zum Beispiel:
Instance:
Type: 'AWS::EC2::Instance'
Properties:
LaunchTemplate:
LaunchTemplateId: !Ref RequiredTagsLaunchTemplate
Version: 1
InstanceType: r4.xlarge
.
.
RequiredTagsLaunchTemplate:
Type: 'AWS::EC2::LaunchTemplate'
Properties:
LaunchTemplateData:
TagSpecifications:
- ResourceType: volume
Tags:
- Key: Env
Value: Dev
- Vergewissern Sie sich, dass Ihre Startvorlage alle erforderlichen Tags enthält.
**Wichtig:**Sie müssen bestätigen, dass die Rolle oder der Benutzer, der den Stack erstellt, über die Berechtigungen verfügt, eine Startvorlage ohne Tagging-Einschränkungen zu erstellen und zu verwenden. Sie können den Bedingungsschlüssel aws:CalledVia verwenden, um eine neue Anweisung zu erstellen, die CloudFormation-API-Aufrufe von den Tagging-Anforderungen ausnimmt.