Durch die Nutzung von AWS re:Post stimmt du den AWS re:Post Nutzungsbedingungen

Wie erstelle ich Amazon EC2-Instances über CloudFormation, wenn die IAM-Richtlinie für RunInstances tagbasierte Einschränkungen enthält?

Lesedauer: 2 Minute
0

Ich möchte Amazon Elastic Compute Cloud (Amazon EC2)-Instances über AWS CloudFormation erstellen. Meine AWS Identity and Access Management (IAM, Identitäts- und Zugriffsmanagement)-Richtlinie für RunInstances enthält tagbasierte Einschränkungen.

Lösung

Die Eigenschaft Tags der Ressource AWS::EC2::Instance erstreckt sich nicht auf die Volumes, die du über CloudFormation erstellst. 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: „You are not authorized to perform this operation."

Um die Tags über CloudFormation an ec2:CreateVolume zu übergeben, musst du deine Tags in der Ressource AWS::EC2::LaunchTemplate in deiner CloudFormation-Vorlage definieren.

Gehe wie folgt vor, um diese Konfiguration einzurichten:

  1. Definiere eine Startvorlagenressource im Stack, wobei die erforderlichen Tags für die IAM-Richtlinie und ResourceType auf Volume gesetzt sind.
    Dies ist ein Beispiel für den Code, den du verwenden kannst:

    RequiredTagsLaunchTemplate:
        Type: 'AWS::EC2::LaunchTemplate'
        Properties:
          LaunchTemplateData:
            TagSpecifications:
              - ResourceType: volume
                Tags:
                  - Key: Env
                     Value: Dev
  2. Hänge deine Startvorlage an deine EC2-Instance-Ressource an.
    Dies ist ein Beispiel für den Code, den du verwenden kannst:

    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
  3. Vergewissere dich, dass deine Startvorlage alle erforderlichen Tags enthält, und erstelle oder aktualisiere dann den Stack.

Wichtig: Die Rolle oder der Benutzer, der den Stack erstellt, muss die Berechtigung haben, eine Startvorlage ohne Markierungs-Einschränkungen zu erstellen und zu verwenden. Du kannst den Bedingungsschlüssel aws:CalledVia verwenden, um eine neue Anweisung zu erstellen, die CloudFormation-API-Aufrufe von den Markierungs-Anforderungen ausnimmt.

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Monat