Comment créer des instances Amazon EC2 via CloudFormation lorsque la politique IAM pour RunInstances présente des restrictions basées sur les balises ?

Lecture de 2 minute(s)
0

Je souhaite créer des instances Amazon Elastic Compute Cloud (Amazon EC2) via AWS CloudFormation. Mais ma politique AWS de gestion des identités et des accès (IAM) pour RunInstances comporte des restrictions basées sur des balises.

Brève description

Vous pouvez utiliser un modèle de lancement pour créer des instances EC2 via CloudFormation.

La propriété des balises de la ressource AWS::EC2::Instance ne s'étend pas aux volumes qui sont créés via CloudFormation. Si la politique IAM associée à l'utilisateur ou au rôle comporte des restrictions sur les balises de volume, le message d'erreur suivant s'affiche :

« Vous n'avez pas l'autorisation nécessaire pour effectuer cette opération »

Pour transmettre les balises à ec2:CreateVolume, via CloudFormation, vous devez définir vos balises dans la ressource AWS::EC2::LaunchTemplate dans votre modèle CloudFormation.

Solution

1.    Définissez un modèle de lancement dans la pile avec les balises requises par la politique IAM. Par exemple :

RequiredTagsLaunchTemplate:
    Type: 'AWS::EC2::LaunchTemplate'
    Properties:
      LaunchTemplateData:
        TagSpecifications:
          - ResourceType: volume
            Tags:
              - Key: Env
                 Value: Dev

2.    Attachez votre modèle de lancement à votre ressource d'instance EC2. Par exemple :

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.    Vérifiez que votre modèle de lancement possède toutes les balises nécessaires.

Important : vous devez confirmer que le rôle ou l'utilisateur qui crée la pile dispose des autorisations nécessaires pour créer et utiliser un modèle de lancement sans restriction de balisage. Vous pouvez utiliser la clé de condition aws:CalledVia pour créer une nouvelle instruction qui exempte les appels CloudFormation API des exigences de balisage.


AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an