

 **Ajudar a melhorar esta página** 

Para contribuir com este guia de usuário, escolha o link **Editar esta página no GitHub**, disponível no painel direito de cada página.

# Perfil do IAM em nós do Amazon EKS
<a name="create-node-role"></a>

O daemon `kubelet` do nó do Amazon EKS chama as APIs da AWS em seu nome. Os nós recebem permissões para essas chamadas de API por meio de um perfil de instância do IAM e políticas associadas. Antes de iniciar os nós e registrá-los em um cluster, você deve criar um perfil do IAM para uso desses nós quando eles forem iniciados. Esse requisito se aplica a nós executados com a AMI otimizada para Amazon EKS fornecida pela Amazon ou com qualquer outra AMI do nó que você pretende usar. Além disso, este requisito se aplica tanto aos grupos de nós gerenciados quanto aos nós autogerenciados.

**nota**  
Não é possível usar a mesma função usada para criar clusters.

Antes de criar os nós, é necessário criar um perfil do IAM com as seguintes permissões:
+ Permissões para que o `kubelet` descreva os recursos do Amazon EC2 na VPC, como as fornecidas pela política [AmazonEKSWorkerNodePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKSWorkerNodePolicy.html). Esta política também fornece as permissões para o Amazon EKS Pod Identity Agent.
+ Permissões para que o `kubelet` use imagens de contêiner do Amazon Elastic Container Registry (Amazon ECR), como as fornecidas pela política [AmazonEC2ContainerRegistryPullOnly](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEC2ContainerRegistryPullOnly.html). As permissões para usar imagens de contêiner do Amazon Elastic Container Registry (Amazon ECR) são necessárias porque os complementos integrados para a rede executam pods que usam imagens de contêiner do Amazon ECR.
+ (Opcional) Permissões para que o Amazon EKS Pod Identity Agent use a ação `eks-auth:AssumeRoleForPodIdentity` para recuperar credenciais para pods. Se você não usa a [AmazonEKSWorkerNodePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKSWorkerNodePolicy.html), então forneça esta permissão adicionalmente às permissões do EC2 para usar a Identidade de Pods do EKS.
+ (Opcional) Caso não use a Identidade de Pods do EKA ou IRSA para conceder permissões aos pods da CNI da VPC, forneça permissões para a CNI da VPC no perfil da instância. Você pode usar a política gerenciada [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKS_CNI_Policy.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKS_CNI_Policy.html) (caso tenha criado o cluster com a família `IPv4`) ou uma [política destinada a IPv6 criada por você](cni-iam-role.md#cni-iam-role-create-ipv6-policy) (caso tenha criado o cluster com a família `IPv6`). Contudo, em vez de anexar a política à essa função, recomendamos que você anexe a política a uma função separada usada especificamente para o complemento CNI da Amazon VPC. Para obter mais informações sobre a criação de uma função separada para o complemento CNI da Amazon VPC, consulte [Configurar o plug-in CNI da Amazon VPC para usar IRSA](cni-iam-role.md).

**nota**  
Os grupos de nós do Amazon EC2 devem ter uma função do IAM diferente do perfil do Fargate. Para obter mais informações, consulte [Perfil do IAM de execução de pods do Amazon EKS](pod-execution-role.md).

## Verificar se há uma função existente do nó
<a name="check-worker-node-role"></a>

Use o procedimento a seguir para verificar se a conta já tem a função de nó do Amazon EKS.

1. Abra o console do IAM em https://console.aws.amazon.com/iam/.

1. No painel de navegação à esquerda, escolha **Funções**.

1. Procure `eksNodeRole`, `AmazonEKSNodeRole` ou `NodeInstanceRole` na lista de funções. Se não houver uma função com um desses nomes, consulte [Criação de uma função para a função do IAM de nó do Amazon EKS](#create-worker-node-role) para criar a função. Se houver uma função que contenha `eksNodeRole`, `AmazonEKSNodeRole` ou `NodeInstanceRole`, selecione-a para visualizar as políticas anexadas.

1. Escolha **Permissões**.

1. Certifique-se de que as políticas gerenciadas **AmazonEKSWorkerNodePolicy** e **AmazonEC2ContainerRegistryPullOnly** estejam anexadas à perfil ou que uma política personalizada esteja anexada com as permissões mínimas.
**nota**  
Se o**AmazonEKS\$1CNI\$1Policy**estiver anexada à função, recomendamos removê-la e anexá-la a uma função do IAM mapeada para o`aws-node`Em vez disso, a conta do serviço Kubernetes. Para obter mais informações, consulte [Configurar o plug-in CNI da Amazon VPC para usar IRSA](cni-iam-role.md).

1. Escolha **Trust relationships** (Relacionamentos de confiança) e, em seguida, escolha **Edit trust policy** (Editar política de confiança).

1. Verifique se o relacionamento de confiança contém a seguinte política: Se o relacionamento de confiança corresponder à seguinte política, escolha **Cancel** (Cancelar). Se o relacionamento de confiança não corresponder, copie a política para a janela **Edit trust policy** (Editar política de confiança) e escolha **Update policy** (Atualizar política).

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "sts:AssumeRole"
               ],
               "Principal": {
                   "Service": [
                       "ec2.amazonaws.com"
                   ]
               }
           }
       ]
   }
   ```

## Criação de uma função para a função do IAM de nó do Amazon EKS
<a name="create-worker-node-role"></a>

Você pode criar o perfil IAM do nó com o Console de gerenciamento da AWS ou com a CLI AWS.

 Console de gerenciamento da AWS   

1. Abra o console do IAM em https://console.aws.amazon.com/iam/.

1. No painel de navegação à esquerda, escolha **Funções**.

1. Na página **Perfis**, selecione **Criar perfil**.

1. Na página **Selecionar entidade confiável**, faça o seguinte:

   1. Na seção **Tipo de entidade confiável**), escolha **Service da AWS**.

   1. Em **Use case** (Caso de uso), selecione **EC2**.

   1. Escolha **Próximo**.

1. Na página **Add permissions (Adicionar permissões)**, faça o seguinte:

   1. Na caixa **Filtrar políticas** insira `AmazonEKSWorkerNodePolicy`.

   1. Marque a caixa de seleção à esquerda de **AmazonEKSWorkerNodePolicy** nos resultados da pesquisa.

   1. Escolha **Clear filters** (Limpar filtros).

   1. Na caixa **Filtrar políticas** insira `AmazonEC2ContainerRegistryPullOnly`.

   1. Marque a caixa de seleção à esquerda de **AmazonEC2ContainerRegistryPullOnly** nos resultados da pesquisa.

      A política gerenciada **AmazonEKS\$1CNI\$1Policy** ou uma [política de IPv6](cni-iam-role.md#cni-iam-role-create-ipv6-policy) que você criar também deverá ser anexada a esse perfil ou a um perfil diferente que seja mapeado para a conta de serviço `aws-node` do Kubernetes. Recomendamos atribuir a política à função associada à conta de serviço do Kubernetes em vez de atribuí-la a essa função. Para obter mais informações, consulte [Configurar o plug-in CNI da Amazon VPC para usar IRSA](cni-iam-role.md).

   1. Escolha **Próximo**.

1. Na página **Name, review, and create** (Nomear, revisar e criar), faça o seguinte:

   1. Em **Nome do perfil**, insira um nome exclusivo para o perfil, como `AmazonEKSNodeRole`.

   1. Em **Description** (Descrição), substitua o texto atual por um texto descritivo como `Amazon EKS - Node role`.

   1. Em **Adicionar tags (Opcional)**, adicione metadados ao perfil anexando tags como pares chave-valor. Para obter mais informações sobre o uso de tags no IAM, consulte [Marcar recursos do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) no *Guia do usuário do IAM*.

   1. Selecione **Criar perfil**.

 AWS CLI  

1. Execute o seguinte comando para criar o arquivo `node-role-trust-relationship.json`.

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "sts:AssumeRole"
               ],
               "Principal": {
                   "Service": [
                       "ec2.amazonaws.com"
                   ]
               }
           }
       ]
   }
   ```

1. Crie o perfil do IAM.

   ```
   aws iam create-role \
     --role-name AmazonEKSNodeRole \
     --assume-role-policy-document file://"node-role-trust-relationship.json"
   ```

1. Anexe duas políticas do IAM gerenciadas necessárias à função do IAM.

   ```
   aws iam attach-role-policy \
     --policy-arn arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy \
     --role-name AmazonEKSNodeRole
   aws iam attach-role-policy \
     --policy-arn arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryPullOnly \
     --role-name AmazonEKSNodeRole
   ```

1. Anexe uma das seguintes políticas do IAM à função do IAM, dependendo de com qual família de IP você criou o seu cluster. A política deve ser anexada a esse perfil ou a um perfil associado à conta de serviço `aws-node` do Kubernetes, que é usada para o plug-in CNI da Amazon VPC para Kubernetes. Recomendamos atribuir a política à função associada à conta de serviço do Kubernetes. Para atribuir a política à função associada à conta de serviço do Kubernetes, consulte [Configurar o plug-in CNI da Amazon VPC para usar IRSA](cni-iam-role.md).
   + IPv4

     ```
     aws iam attach-role-policy \
       --policy-arn arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy \
       --role-name AmazonEKSNodeRole
     ```
   + IPv6

     1. Copie o texto a seguir e salve-o em um arquivo chamado `vpc-cni-ipv6-policy.json`.

        ```
        {
            "Version":"2012-10-17",		 	 	 
            "Statement": [
                {
                    "Effect": "Allow",
                    "Action": [
                        "ec2:AssignIpv6Addresses",
                        "ec2:DescribeInstances",
                        "ec2:DescribeTags",
                        "ec2:DescribeNetworkInterfaces",
                        "ec2:DescribeInstanceTypes"
                    ],
                    "Resource": "*"
                },
                {
                    "Effect": "Allow",
                    "Action": [
                        "ec2:CreateTags"
                    ],
                    "Resource": [
                        "arn:aws:ec2:*:*:network-interface/*"
                    ]
                }
            ]
        }
        ```

     1. Crie a política do IAM.

        ```
        aws iam create-policy --policy-name AmazonEKS_CNI_IPv6_Policy --policy-document file://vpc-cni-ipv6-policy.json
        ```

     1. Anexe a política do IAM à função do IAM. Substitua *111122223333* pelo ID da sua conta.

        ```
        aws iam attach-role-policy \
          --policy-arn arn:aws:iam::111122223333:policy/AmazonEKS_CNI_IPv6_Policy \
          --role-name AmazonEKSNodeRole
        ```