¿Cómo creo instancias de Amazon EC2 a través de CloudFormation si la política de IAM para RunInstances tiene restricciones basadas en etiquetas?

2 minutos de lectura
0

Quiero crear instancias de Amazon Elastic Compute Cloud (Amazon EC2) a través de AWS CloudFormation. Mi política de AWS Identity and Access Management (IAM) para RunInstances tiene restricciones basadas en etiquetas.

Resolución

La propiedad Tags del recurso AWS::EC2::Instance no se extiende a los volúmenes que creas mediante CloudFormation. Si la política de IAM asociada al usuario o al rol tiene restricciones en las etiquetas de volumen, aparecerá el siguiente error: “You are not authorized to perform this operation”.

Para pasar las etiquetas a ec2:CreateVolume a través de CloudFormation, debes definirlas en el recurso AWS::EC2::LaunchTemplate de la plantilla de CloudFormation.

Para configurar estos ajustes, sigue estos pasos:

  1. Define un recurso de plantilla de lanzamiento en la pila con las etiquetas necesarias para la política de IAM y ResourceType establecido en volume.
    Este es un ejemplo del código que puedes usar:

    RequiredTagsLaunchTemplate:
        Type: 'AWS::EC2::LaunchTemplate'
        Properties:
          LaunchTemplateData:
            TagSpecifications:
              - ResourceType: volume
                Tags:
                  - Key: Env
                     Value: Dev
  2. Adjunta la plantilla de lanzamiento al recurso de instancia de EC2.
    Este es un ejemplo del código que puedes usar:

    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. Comprueba que la plantilla de lanzamiento tenga todas las etiquetas necesarias y, a continuación, crea o actualiza la pila.

Importante: El rol o el usuario que crea la pila debe tener permiso para crear y usar una plantilla de lanzamiento sin restricciones de etiquetado. Puedes usar la clave de condición aws:CalledVia para crear una nueva instrucción que exima a las llamadas a la API de CloudFormation de los requisitos de etiquetado.

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 4 meses