Salta al contenuto

Come posso creare istanze Amazon EC2 tramite CloudFormation quando la policy IAM per RunInstances prevede restrizioni basate su tag?

2 minuti di lettura
0

Desidero creare istanze Amazon Elastic Compute Cloud (Amazon EC2) tramite AWS CloudFormation. La mia policy di AWS Identity and Access Management (IAM) per RunInstances prevede restrizioni basate su tag.

Risoluzione

La proprietà Tags della risorsa AWS::EC2::Instance non si estende ai volumi che crei tramite CloudFormation. Se la policy IAM associata all'utente o al ruolo presenta restrizioni sui tag di volume, verrà visualizzato l'errore seguente: "You are not authorized to perform this operation."

Per passare i tag tramite CloudFormation a EC2:createVolume, devi definire i tag nella risorsa AWS::EC2::LaunchTemplate nel tuo modello CloudFormation.

Per creare questa configurazione, completa i passaggi seguenti:

  1. Definisci una risorsa del modello di avvio nello stack con i tag necessari per la policy IAM e ResourceType impostato su volume.
    Ecco un esempio del codice che puoi usare:

    RequiredTagsLaunchTemplate:
        Type: 'AWS::EC2::LaunchTemplate'
        Properties:
          LaunchTemplateData:
            TagSpecifications:
              - ResourceType: volume
                Tags:
                  - Key: Env
                     Value: Dev
  2. Collega il modello di avvio alla risorsa dell'istanza EC2.
    Ecco un esempio del codice che puoi usare:

    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. Verifica che il modello di avvio contenga tutti i tag necessari, quindi crea o aggiorna lo stack.

Importante: il ruolo o l'utente che crea lo stack deve disporre dell'autorizzazione per creare e utilizzare un modello di avvio senza restrizioni sui tag. Puoi utilizzare la chiave di condizione aws:CalledVia per creare una nuova istruzione che esenta le chiamate API CloudFormation dai requisiti di tagging.

AWS UFFICIALEAggiornata un anno fa