

# Anexar uma função do IAM a uma instância
<a name="attach-iam-role"></a>

É possível criar uma função do IAM e anexá-la a uma instância durante ou depois da execução. Você também pode substituir ou desanexar perfis do IAM.

**Criar e anexar um perfil do IAM durante a inicialização da instância (recomendado)**

1. Durante a inicialização da instância EC2, expanda os **Detalhes avançados**.

1. Na seção **Perfil de instância do IAM**, escolha **Criar novo perfil do IAM**.

1. Um formulário de criação de perfil em linha é aberto, permitindo que você:
   + Especifique o **Nome do perfil** (por exemplo, `EC2-S3-Access-Role`)
   + Defina permissões selecionando políticas gerenciadas da AWS ou criando políticas personalizadas para sua instância

     Por exemplo, para conceder acesso ao S3, selecione a política gerenciada da `AmazonS3ReadOnlyAccess`
   + Revise a política de confiança que permita a `ec2.amazonaws.com` a assumir o perfil
   + Adicione tags opcionais para metadados

1. Selecione **Criar perfil**.

   O perfil recém-criado é selecionado automaticamente e será anexado à sua instância por meio de um perfil de instância quando a instância for iniciada.

**nota**  
Ao criar um perfil usando o console durante a inicialização da instância, um perfil de instância com o mesmo nome de perfil é criado automaticamente. O perfil de instância é um contêiner que transmite as informações do perfil do IAM para uma instância do EC2 na inicialização.

**Importante**  
Você só pode anexar uma função do IAM a uma instância, mas pode anexar a mesma função a muitas instâncias.
Associe as políticas de IAM com privilégios mínimos que restrinjam o acesso às chamadas de API específicas que o aplicativo requer.

Para obter mais informações sobre como criar e usar funções do IAM, consulte [Funções](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) no *Guia do usuário do IAM*.

**Anexar um perfil do IAM existente durante a inicialização da instância**  
Para anexar um perfil do IAM a uma instância na inicialização usando o console do Amazon EC2, expanda **Detalhes avançados**. Para **Perfil de instância do IAM**, selecione o perfil do IAM na lista do menu suspenso.

**nota**  
Caso tenha criado o perfil do IAM usando o console do IAM, o perfil da instância terá sido criado para você e terá o mesmo nome do perfil. Caso tenha criado o perfil do IAM usando a AWS CLI, a API ou um SDK da AWS, é possível que você tenha dado um nome diferente do perfil para o perfil da instância.

É possível anexar um perfil do IAM a uma instância que está em execução ou interrompida. Se a instância já tiver um perfil do IAM anexado, você deverá substituí-lo pelo novo perfil do IAM.

------
#### [ Console ]<a name="attach-iam-role-console"></a>

**Como anexar uma função do IAM a uma instância**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, escolha **Instances (Instâncias)**.

1. Selecione a instância.

1. Selecione **Actions** (Ações), **Security** (Segurança), **Modify IAM role** (Modificar perfil do IAM).

1. Para **Perfil do IAM**, selecione o perfil de instância do IAM.

1. Escolha **Atualizar perfil do IAM**.

------
#### [ AWS CLI ]
<a name="attach-iam-role-instance-cli"></a>
**Como anexar uma função do IAM a uma instância**  
Use o comando [associate-iam-instance-profile](https://docs.aws.amazon.com/cli/latest/reference/ec2/associate-iam-instance-profile.html) para anexar o perfil do IAM à instância. Ao especificar o perfil de instância, você pode usar o nome do recurso da Amazon (ARN) do perfil de instância ou o seu nome.

```
aws ec2 associate-iam-instance-profile \
    --instance-id i-1234567890abcdef0 \
    --iam-instance-profile Name="TestRole-1"
```

------
#### [ PowerShell ]

**Como anexar uma função do IAM a uma instância**  
Use o cmdlet [Register-EC2IamInstanceProfile](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2IamInstanceProfile.html).

```
Register-EC2IamInstanceProfile `
    -InstanceId i-1234567890abcdef0 `
    -IamInstanceProfile_Name TestRole-1
```

------

Para substituir o perfil do IAM em uma instância que já tenha um perfil do IAM anexado, essa instância deve estar em execução. Será possível fazer isso se você quiser alterar a função do IAM de uma instância sem desanexar a existente primeiro. Por exemplo, é possível fazer isso para garantir que as ações de API desempenhadas por aplicações executadas na instância não sejam interrompidas.

------
#### [ Console ]<a name="replace-iam-role-console"></a>

**Como substituir uma função do IAM para uma instância**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, escolha **Instances (Instâncias)**.

1. Selecione a instância.

1. Selecione **Actions** (Ações), **Security** (Segurança), **Modify IAM role** (Modificar perfil do IAM).

1. Para **Perfil do IAM**, selecione o perfil de instância do IAM.

1. Escolha **Atualizar perfil do IAM**.

------
#### [ AWS CLI ]<a name="replace-iam-role-cli"></a>

**Como substituir uma função do IAM para uma instância**

1. Se necessário, use o comando [describe-iam-instance-profile-associations](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-iam-instance-profile-associations.html) para obter o ID da associação.

   ```
   aws ec2 describe-iam-instance-profile-associations \
       --filters Name=instance-id,Values=i-1234567890abcdef0 \
       --query IamInstanceProfileAssociations.AssociationId
   ```

1. Use o comando [replace-iam-instance-profile-association](https://docs.aws.amazon.com/cli/latest/reference/ec2/replace-iam-instance-profile-association.html). Especifique o ID de associação do perfil de instância existente e o ARN ou o nome do novo perfil de instância.

   ```
   aws ec2 replace-iam-instance-profile-association \
       --association-id iip-assoc-0044d817db6c0a4ba \
       --iam-instance-profile Name="TestRole-2"
   ```

------
#### [ PowerShell ]

**Como substituir uma função do IAM para uma instância**

1. Se necessário, use o cmdlet [Get-EC2IamInstanceProfileAssociation](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2IamInstanceProfileAssociation.html) para obter o ID da associação.

   ```
   (Get-EC2IamInstanceProfileAssociation -Filter @{Name="instance-id"; Values="i-0636508011d8e966a"}).AssociationId
   ```

1. Use o cmdlet [Set-EC2IamInstanceProfileAssociation](https://docs.aws.amazon.com/powershell/latest/reference/items/Set-EC2IamInstanceProfileAssociation.html). Especifique o ID de associação do perfil de instância existente e o ARN ou o nome do novo perfil de instância.

   ```
   Set-EC2IamInstanceProfileAssociation `
       -AssociationId iip-assoc-0044d817db6c0a4ba `
       -IamInstanceProfile_Name TestRole-2
   ```

------

É possível desvincular um perfil do IAM de uma instância que esteja em execução ou interrupção.

------
#### [ Console ]<a name="detach-iam-role-console"></a>

**Como desanexar uma função do IAM de uma instância**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, escolha **Instances (Instâncias)**.

1. Selecione a instância.

1. Selecione **Actions** (Ações), **Security** (Segurança), **Modify IAM role** (Modificar perfil do IAM).

1. Em **IAM role (Função do IAM)**, selecione **No IAM Role (Nenhuma função do IAM)**.

1. Escolha **Atualizar perfil do IAM**.

1. Quando a confirmação for solicitada, insira **Desanexar** e depois escolha **Desanexar**.

------
#### [ AWS CLI ]<a name="detach-iam-role-cli"></a>

**Como desanexar uma função do IAM de uma instância**

1. Se necessário, use [describe-iam-instance-profile-associations](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-iam-instance-profile-associations.html) para obter o ID de associação do perfil de instância do IAM a ser desanexado.

   ```
   aws ec2 describe-iam-instance-profile-associations \
       --filters Name=instance-id,Values=i-1234567890abcdef0 \
       --query IamInstanceProfileAssociations.AssociationId
   ```

1. Use o comando [disassociate-iam-instance-profile](https://docs.aws.amazon.com/cli/latest/reference/ec2/disassociate-iam-instance-profile.html).

   ```
   aws ec2 disassociate-iam-instance-profile --association-id iip-assoc-0044d817db6c0a4ba
   ```

------
#### [ PowerShell ]

**Como desanexar uma função do IAM de uma instância**

1. Se necessário, use [Get-EC2IamInstanceProfileAssociation](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2IamInstanceProfileAssociation.html) para obter o ID de associação do perfil de instância do IAM a ser desanexado.

   ```
   (Get-EC2IamInstanceProfileAssociation -Filter @{Name="instance-id"; Values="i-0636508011d8e966a"}).AssociationId
   ```

1. Use o cmdlet [Unregister-EC2IamInstanceProfile](https://docs.aws.amazon.com/powershell/latest/reference/items/Unregister-EC2IamInstanceProfile.html).

   ```
   Unregister-EC2IamInstanceProfile -AssociationId iip-assoc-0044d817db6c0a4ba
   ```

------