Comment puis-je créer des instances Amazon EC2 via CloudFormation lorsque la stratégie IAM pour RunInstances comporte des restrictions basées sur des identifications ?

Lecture de 2 minute(s)
0

Je souhaite créer des instances Amazon Elastic Compute Cloud (Amazon EC2) via AWS CloudFormation. Ma stratégie AWS Identity and Access Management (IAM) pour RunInstances comporte des restrictions basées sur des identifications.

Résolution

La propriété Identifications de la ressource AWS::EC2::Instance ne s'étend pas aux volumes que vous créez via CloudFormation. Si la stratégie IAM associée à l'utilisateur ou au rôle comporte des restrictions sur les identifications de volume, le message d'erreur suivant s'affiche : « You are not authorized to perform this operation. »

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

Pour paramétrer cette configuration, procédez comme suit :

  1. Définissez une ressource de modèle de lancement dans la pile avec les identifications requises pour la stratégie IAM et ResourceType défini sur volume.
    Voici un exemple de code que vous pouvez utiliser :

    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.
    Voici un exemple de code que vous pouvez utiliser :

    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 contient toutes les identifications, puis créez ou mettez à jour votre pile.

Important : Le rôle ou l'utilisateur qui crée la pile doit être autorisé à créer et à utiliser un modèle de lancement sans restrictions de balisage. Vous pouvez utiliser la clé de condition aws:CalledVia pour créer une nouvelle instruction qui exempte les appels d'API CloudFormation des exigences de balisage.

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 3 mois