

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Controle o uso do modelo de execução do Amazon EC2 em grupos do Auto Scaling
<a name="ec2-auto-scaling-launch-template-permissions"></a>

O Amazon EC2 Auto Scaling oferece suporte ao uso de modelos de execução do Amazon EC2 com seus grupos do Auto Scaling. Recomendamos permitir que os usuários criem grupos do Auto Scaling com base em modelos de execução, pois isso permite que eles usem os recursos mais recentes do Amazon EC2 Auto Scaling e Amazon EC2. Por exemplo, os usuários devem especificar um modelo de execução para usar uma [política de instâncias mistas](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_MixedInstancesPolicy.html).

É possível usar a política `AmazonEC2FullAccess` para conceder aos usuários acesso total para trabalhar com recursos do Amazon EC2 Auto Scaling, modelos de execução e outros recursos do EC2 em suas contas. Ou é possível criar suas próprias políticas personalizadas do IAM para conceder aos usuários permissões refinadas para trabalhar com modelos de execução, conforme descrito neste tópico. 

**Uma política de exemplo que você pode personalizar para seu próprio uso**

O exemplo a seguir mostra uma política de permissões básica que você pode personalizar para seu próprio uso. A política concede permissões para criar, atualizar e excluir todos os grupos do Auto Scaling, mas somente se o grupo usa a tag `purpose=testing`. Em seguida, concede permissão para todas as ações `Describe`. Como as ações `Describe` não oferecem suporte a permissões em nível de recurso, é necessário especificá-las em uma declaração separada sem condições. 

Identidades do IAM (usuários ou perfis) com esta política têm permissão para criar ou atualizar um grupo do Auto Scaling usando um modelo de execução porque eles também têm permissão para usar a ação `ec2:RunInstances`. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
          {
            "Effect": "Allow",
            "Action": [
                "autoscaling:CreateAutoScalingGroup",
                "autoscaling:UpdateAutoScalingGroup",
                "autoscaling:DeleteAutoScalingGroup"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": { "autoscaling:ResourceTag/purpose": "testing" }
            }
         },
         {
            "Effect": "Allow",
            "Action": [
                "autoscaling:Describe*",
                "ec2:RunInstances"
            ],
            "Resource": "*"
        }
    ]
}
```

------

Os usuários que criam ou atualizam grupos do Auto Scaling podem precisar de algumas permissões relacionadas, como:
+ **ec2: CreateTags** — Para adicionar tags às instâncias e volumes na criação, o usuário deve ter a `ec2:CreateTags` permissão em uma política do IAM. Para obter mais informações, consulte [Permissões necessárias para marcar instâncias e volumes](#policy-example-launch-template-createtags).
+ **iam: PassRole** — Para iniciar instâncias do EC2 a partir de um modelo de execução que contém um perfil de instância (um contêiner para uma função do IAM), o usuário também deve ter a `iam:PassRole` permissão em uma política do IAM. Para obter mais informações e um exemplo de política do IAM, consulte [Perfis do IAM para aplicações que são executadas em instâncias do Amazon EC2](us-iam-role.md). 
+ **ssm: GetParameters** — Para iniciar instâncias do EC2 a partir de um modelo de execução que usa um AWS Systems Manager parâmetro, o usuário também deve ter a `ssm:GetParameters` permissão em uma política do IAM. Para obter mais informações, consulte [Use AWS Systems Manager parâmetros em vez de AMI IDs em modelos de lançamento](using-systems-manager-parameters.md). 

Essas permissões para ações a serem concluídas ao iniciar instâncias são verificadas quando o usuário interage com um grupo do Auto Scaling. Para obter mais informações, consulte [Validação de permissões para `ec2:RunInstances` e `iam:PassRole`](#runinstances-permissions-validation).

Os exemplos a seguir mostram declarações de políticas que você pode usar para controlar os acessos que os usuários do IAM têm para usar modelos de execução.

**Topics**
+ [Exigir modelos de execução que têm uma tag específica](#policy-example-launch-template-ex1)
+ [Exigir um modelo de execução e um número de versão](#policy-example-launch-template-ex2)
+ [Exigir o uso do serviço de metadados de instância versão 2 () IMDSv2](#instance-metadata-requireIMDSv2)
+ [Restringir o acesso aos recursos do Amazon EC2](#policy-example-launch-template-ex4)
+ [Permissões necessárias para marcar instâncias e volumes](#policy-example-launch-template-createtags)
+ [Permissões adicionais do modelo de execução](#policy-launch-template-additional-permissions)
+ [Validação de permissões para `ec2:RunInstances` e `iam:PassRole`](#runinstances-permissions-validation)
+ [Recursos relacionados](#launch-template-permissions-related-resources)

## Exigir modelos de execução que têm uma tag específica
<a name="policy-example-launch-template-ex1"></a>

Ao conceder `ec2:RunInstances` permissões, você pode especificar que os usuários só possam usar modelos de execução com tags específicas ou específicos IDs para limitar as permissões ao iniciar instâncias com um modelo de execução. Você também pode controlar a AMI e outros recursos aos quais qualquer pessoa que use modelos de execução possa fazer referência e usar ao iniciar instâncias especificando permissões adicionais em nível de recurso para a chamada`RunInstances`.

O exemplo a seguir restringe permissões à ação `ec2:RunInstances` para iniciar modelos que estão localizados na região especificada e que têm a tag `purpose=testing`. Ele também dá aos usuários acesso aos recursos especificados em um modelo de execução: tipos de instância AMIs, volumes, pares de chaves, interfaces de rede e grupos de segurança. 

Para obter mais informações sobre o uso de políticas baseadas em tags com modelos de execução, consulte [Controlar o acesso aos modelos de execução com permissões do IAM](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/permissions-for-launch-templates.html) no *Guia do usuário do Amazon EC2 para instâncias do Linux*.

## Exigir um modelo de execução e um número de versão
<a name="policy-example-launch-template-ex2"></a>

Você também pode usar as permissões do IAM para obrigar que um modelo de execução e o número da versão do modelo de execução sejam especificados ao criar ou atualizar grupos do Auto Scaling.

O exemplo a seguir permite que os usuários criem e atualizem grupos do Auto Scaling somente se um modelo de execução e o número da versão do modelo de execução forem especificados. Se usuários com essa política omitirem o número da versão para especificar a versão `$Latest` ou `$Default` do modelo de execução ou tentarem usar uma configuração de execução, a ação falhará. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "autoscaling:CreateAutoScalingGroup",
                "autoscaling:UpdateAutoScalingGroup"
            ],
            "Resource": "*",
            "Condition": {
                "Bool": { "autoscaling:LaunchTemplateVersionSpecified": "true" }
            }
        },
        {
            "Effect": "Deny",
            "Action": [
                "autoscaling:CreateAutoScalingGroup",
                "autoscaling:UpdateAutoScalingGroup"
            ],
            "Resource": "*",
            "Condition": {
                "Null": { "autoscaling:LaunchConfigurationName": "false" }
            }
        }
    ]
}
```

------

## Exigir o uso do serviço de metadados de instância versão 2 () IMDSv2
<a name="instance-metadata-requireIMDSv2"></a>

Para maior segurança, você pode definir as permissões de seus usuários para exigir o uso de um modelo de lançamento que exija IMDSv2. Para obter mais informações, consulte [Configurar o serviço de metadados de instância](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html) no *Guia do usuário do Amazon EC2 para instâncias do Linux*. 

O exemplo a seguir especifica que os usuários não podem chamar a `ec2:RunInstances` ação, a menos que a instância também tenha optado por exigir o uso de IMDSv2 (indicado por`"ec2:MetadataHttpTokens":"required"`).

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "RequireImdsV2",
            "Effect": "Deny",
            "Action": "ec2:RunInstances",
            "Resource": "arn:aws:ec2:*:*:instance/*",
            "Condition": {
                "StringNotEquals": { "ec2:MetadataHttpTokens": "required" }
            }
        }
    ]
}
```

------

**dica**  
Para forçar a substituição de instâncias do ajuste de escala automático que usam um novo modelo de execução ou uma nova versão de um modelo de execução com as opções de metadados de instância configuradas, você pode iniciar uma atualização de instâncias. Para obter mais informações, consulte [Atualizar instâncias do Auto Scaling](update-auto-scaling-group.md#update-auto-scaling-instances). 

## Restringir o acesso aos recursos do Amazon EC2
<a name="policy-example-launch-template-ex4"></a>

Os exemplos a seguir mostram como usar permissões em nível de recurso e recursos com tags para restringir o acesso aos recursos do Amazon EC2.

**Exemplo 1: restrição das execuções de instâncias do Amazon EC2 a recursos e tipos de instância específicos**  
O exemplo a seguir controla a configuração das instâncias que um usuário pode iniciar restringindo o acesso aos recursos do Amazon EC2. Para especificar permissões em nível de recurso para recursos especificados em um modelo de execução, é necessário incluir os recursos na declaração de ação`RunInstances`.

Neste exemplo, há duas declarações:
+ A primeira declaração requer que os usuários executem instâncias em uma sub-rede específica (`subnet-1a2b3c4d`), usando um grupo de segurança (`sg-903004f88example`) específico e usando uma AMI (`ami-04d5cc9b88example`) específica. Ele também dá aos usuários acesso aos recursos especificados em um modelo de execução: interfaces de rede, pares de chaves e volumes. 
+ A segunda instrução permite que os usuários executem instâncias usando somente os tipos de instância `t2.micro` e,`t2.small` o que é possível fazer para controlar os custos.

  No entanto, observe que atualmente não há uma maneira eficaz de impedir completamente que os usuários que têm permissão para iniciar instâncias com um modelo de execução iniciem outros tipos de instância. Isso ocorre porque um tipo de instância especificado em um modelo de execução pode ser substituído para usar tipos de instância definidos usando a seleção de tipo de instância baseada em atributos.

Para obter uma lista completa das permissões em nível de recurso que você pode usar para controlar a configuração das instâncias que um usuário pode iniciar, consulte [Ações, recursos e chaves de condição do Amazon EC2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html) na *Referência de autorização do serviço*.

**Exemplo 2: exigência de tags e restrição do acesso a recursos para execuções de instâncias do Amazon EC2**  
A política de exemplo a seguir mostra como é possível usar condições em sua política baseada em identidade para controlar o acesso a recursos do Amazon EC2 com base em tags. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "InstanceTags",
            "Effect": "Allow",
            "Action": [
                "ec2:RunInstances"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1:555555555555:instance/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/owner": "dev"
                }
            }
        },
        {
            "Sid": "InstanceBoundaries",
            "Effect": "Allow",
            "Action": [
                "ec2:RunInstances"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1::image/*",
                "arn:aws:ec2:us-east-1:555555555555:subnet/*",
                "arn:aws:ec2:us-east-1:555555555555:network-interface/*"
            ]
        },
        {
            "Sid": "InstanceResourceTags",
            "Effect": "Allow",
            "Action": [
                "ec2:RunInstances"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1:555555555555:key-pair/*",
                "arn:aws:ec2:us-east-1:555555555555:security-group/*",
                "arn:aws:ec2:us-east-1:555555555555:launch-template/*",
                "arn:aws:ec2:us-east-1:555555555555:volume/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/purpose": "testing"
                }
            }
        }
    ]
}
```

------

Neste exemplo, há três instruções:
+ A primeira instrução permite que os usuários iniciem instâncias na região especificada somente se uma tag com `owner=dev` for usada na solicitação. 
+ A segunda instrução dá aos usuários acesso à AMI, à sub-rede e à interface de rede na região especificada. 
+ A terceira instrução permite que os usuários iniciem instâncias na região especificada com um par de chaves, um grupo de segurança, um modelo de execução e um volume existentes que tenham a tag `purpose=testing`.

Para obter mais informações, consulte [Controle do acesso a AWS recursos usando tags](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html) no *Guia do usuário do IAM*.

## Permissões necessárias para marcar instâncias e volumes
<a name="policy-example-launch-template-createtags"></a>

O exemplo a seguir permite que os usuários marquem instâncias e volumes na criação. Essa parte será necessária se houver tags especificadas no modelo de execução. Para obter mais informações, consulte [Conceder permissão para marcar recursos durante a criação](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/supported-iam-actions-tagging.html) no *Manual do usuário do Amazon EC2 para instâncias do Linux*.

## Permissões adicionais do modelo de execução
<a name="policy-launch-template-additional-permissions"></a>

É necessário conceder permissões aos usuários do console para as ações `ec2:DescribeLaunchTemplates` e `ec2:DescribeLaunchTemplateVersions`. Sem essas permissões, os dados do modelo de execução não podem ser carregados no assistente do grupo do Auto Scaling, e os usuários não podem utilizar o assistente para iniciar instâncias usando um modelo de execução. É possível especificar essas ações adicionais no elemento `Action` de uma instrução de política do IAM. 

## Validação de permissões para `ec2:RunInstances` e `iam:PassRole`
<a name="runinstances-permissions-validation"></a>

Os usuários podem especificar qual versão de um modelo de execução seu grupo do Auto Scaling usa. Dependendo de suas permissões, essa pode ser uma versão numerada específica ou a versão `$Latest` ou `$Default` do modelo de execução. Se for o último, tome cuidado especial. Isso pode substituir as permissões `ec2:RunInstances` e `iam:PassRole` que você pretendia restringir.

Esta seção explica o cenário de uso da versão mais recente ou padrão do modelo de execução com um grupo do Auto Scaling.

Quando um usuário chama as APIs, `CreateAutoScalingGroup` `UpdateAutoScalingGroup` ou, `StartInstanceRefresh` o Amazon EC2 Auto Scaling verifica suas permissões em relação à versão do modelo de execução que é a versão mais recente ou padrão no momento antes de prosseguir com a solicitação. Isso valida as permissões para ações a serem concluídas ao iniciar instâncias, como as ações `ec2:RunInstances` e `iam:PassRole`. Para fazer isso, emitimos uma chamada de [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html)dry run do Amazon EC2 para validar se o usuário tem as permissões necessárias para a ação, sem realmente fazer a solicitação. Quando uma resposta é retornada, ela é lida pelo Amazon EC2 Auto Scaling. Se as permissões do usuário não permitirem uma determinada ação, haverá falha na solicitação do Amazon EC2 Auto Scaling, que retornará um erro ao usuário contendo informações sobre a permissão ausente.

Depois que a verificação inicial e a solicitação forem concluídas, sempre que as instâncias forem executadas, o Amazon EC2 Auto Scaling as iniciará com a versão mais recente ou padrão, mesmo que ela tenha sido alterada, usando as permissões de seu [perfil vinculado ao serviço](autoscaling-service-linked-role.md#service-linked-role-permissions). Isso significa que um usuário que esteja usando o modelo de execução pode atualizá-lo para transferir um perfil do IAM para uma instância, mesmo que não tenha a permissão `iam:PassRole`.

Use a chave de condição `autoscaling:LaunchTemplateVersionSpecified` se quiser limitar quem tem acesso à configuração de grupos para usar a versão `$Latest` ou `$Default`. Isso garante que o grupo Auto Scaling só aceite uma versão numerada específica quando um usuário chama e. `CreateAutoScalingGroup` `UpdateAutoScalingGroup` APIs Para ver um exemplo que mostra como adicionar essa chave de condição a uma política do IAM, consulte [Exigir um modelo de execução e um número de versão](#policy-example-launch-template-ex2).

Para grupos do Auto Scaling configurados para usar a versão `$Latest` ou `$Default` do modelo de execução, considere limitar quem pode criar e gerenciar versões do modelo de execução, incluindo a ação `ec2:ModifyLaunchTemplate` que permite ao usuário especificar a versão padrão do modelo de execução. Para obter mais informações, consulte [Controlar permissões de versionamento](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/permissions-for-launch-templates.html#permissions-for-launch-template-versions) no *Guia do usuário do Amazon EC2 para instâncias do Linux*.

## Recursos relacionados
<a name="launch-template-permissions-related-resources"></a>

Para saber mais sobre permissões para visualizar, criar e excluir modelos de execução e versões de modelos de execução, consulte [Controlar o acesso aos modelos de execução com permissões do IAM](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/permissions-for-launch-templates.html) no *Guia do usuário do Amazon EC2 para instâncias do Linux*.

Para obter mais informações sobre as permissões em nível de recurso que você pode usar para controlar o acesso à chamada,`RunInstances` consulte [Ações, recursos e chaves de condição do Amazon EC2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html) na *Referência de autorização do serviço*.