Como faço para criar instâncias do Amazon EC2 por meio do CloudFormation quando a política do IAM para RunInstances tem restrições baseadas em tags?

2 minuto de leitura
0

Quero criar instâncias do Amazon Elastic Compute Cloud (Amazon EC2) por meio do AWS CloudFormation. Mas minha política do AWS Identity and Access Management (IAM) para RunInstances tem restrições baseadas em tags.

Breve descrição

Você pode usar um modelo de execução para criar instâncias do Amazon EC2 por meio do CloudFormation.

A propriedade Tags do recurso AWS::EC2::Instance não se estende aos volumes criados por meio do CloudFormation. Se a política do IAM associada ao usuário ou perfil tiver restrições às tags de volume, você receberá o seguinte erro:

“Você não tem autorização para realizar esta operação.”

Para passar as tags pelo CloudFormation para ec2:CreateVolume, você deve definir as tags no recurso AWS::EC2::LaunchTemplate no modelo do CloudFormation.

Resolução

1.Defina um modelo de execução na pilha com as tags que a política do IAM exige. Por exemplo:

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

2.Anexe o modelo de execução ao seu recurso de instância do EC2. Por exemplo:

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.Confirme se o modelo de execução tem todas as etiquetas necessárias.

Importante: você deve confirmar se o perfil ou o usuário que cria a pilha tem as permissões para criar e usar um modelo de execução sem restrições de tags. Você pode usar a chave de condição aws:CalledVia para criar uma nova declaração que isenta as chamadas de API do CloudFormation dos requisitos de tags.


AWS OFICIAL
AWS OFICIALAtualizada há um ano