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. Ma la mia politica di AWS Identity and Access Management (IAM) per RunInstances prevede restrizioni basate su tag.

Breve descrizione

Puoi utilizzare un modello di avvio per creare istanze Amazon EC2 tramite CloudFormation.

La proprietà Tags della risorsa AWS::EC2::Instance non si estende ai volumi creati tramite CloudFormation. Se la policy IAM associata all'utente o al ruolo presenta restrizioni sui tag di volume, viene visualizzato il seguente errore:

"Non sei autorizzato a eseguire questa operazione."

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

Risoluzione

  1. Definisci un modello di avvio nello stack con i tag richiesti dalla policy IAM. Ad esempio:
RequiredTagsLaunchTemplate:
    Type: 'AWS::EC2::LaunchTemplate'
    Properties:
      LaunchTemplateData:
        TagSpecifications:
          - ResourceType: volume
            Tags:
              - Key: Env
                 Value: Dev
  1. Allega il tuo modello di lancio alla tua risorsa di istanza EC2. Ad esempio:
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
  1. Verifica che il tuo modello di lancio contenga tutti i tag necessari.

Importante: devi confermare che il ruolo o l'utente che crea lo stack disponga delle autorizzazioni per creare e utilizzare un modello di avvio senza restrizioni di etichettatura. Puoi utilizzare la chiave di condizione aws:CalledVia per creare una nuova dichiarazione che esenta le chiamate API CloudFormation dai requisiti di etichettatura.


AWS UFFICIALE
AWS UFFICIALEAggiornata 2 anni fa