

 **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 de execução de pods do Amazon EKS
<a name="pod-execution-role"></a>

O perfil de execução de pods do Amazon EKS é necessário para executar pods na infraestrutura do AWS Fargate.

Quando o cluster cria pods na infraestrutura do AWS Fargate, os componentes que estão em execução nessa infraestrutura do Fargate devem fazer as chamadas para as APIs da AWS em seu nome. Isso é para que eles possam realizar ações como extrair imagens de contêiner do Amazon ECR ou encaminhar logs para outros serviços da AWS. O perfil de execução de pods do Amazon EKS fornece as permissões do IAM para fazer isso.

Ao criar um perfil do Fargate, é necessário especificar um perfil de execução de pods para os componentes do Amazon EKS que são executados na infraestrutura do Fargate usando o perfil. Esse perfil é adicionado ao [Controle de acesso baseado em perfil](https://kubernetes.io/docs/reference/access-authn-authz/rbac/) (RBAC) do Kubernetes do cluster para autorização. Isso permite que o `kubelet` que está sendo executado na infraestrutura do Fargate seja registrado no cluster do Amazon EKS para aparecer no cluster como um nó.

**nota**  
O perfil do Fargate deve ter uma função do IAM diferente dos grupos de nós do Amazon EC2.

**Importante**  
Os contêineres em execução no pod do Fargate não podem assumir as permissões do IAM associadas a um perfil de execução do pods. Para conceder aos contêineres no pod do Fargate permissões de acesso a outros serviços da AWS, é necessário usar os [perfis do IAM das contas de serviço](iam-roles-for-service-accounts.md).

Antes de criar um perfil do Fargate, é necessário criar um perfil do IAM com [AmazonEKSFargatePodExecutionRolePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKSFargatePodExecutionRolePolicy.html).

## Verifique se existe um perfil de execução de pods existente e configurado corretamente
<a name="check-pod-execution-role"></a>

É possível usar o procedimento a seguir para verificar se a conta já tem um perfil de execução de pods do Amazon EKS corretamente configurado. Para evitar um problema de segurança de representante confuso, é importante que a função restrinja o acesso com base no `SourceArn`. É possível modificar a função de execução conforme necessário de forma a incluir suporte para perfis do Fargate em outros clusters.

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 **Roles** (Funções), procure **AmazonEKSFargatePodExecutionRole** na lista de funções. Se a função não existir, consulte [Criar o perfil de execução de pods do Amazon EKS](#create-pod-execution-role) para criá-la. Se a função existir, escolha-a.

1. Na página **AmazonEKSFargatePodExecutionRole**, faça o seguinte:

   1. Escolha **Permissões**.

   1. Certifique-se de que a política gerenciada pela Amazon **AmazonEKSFargatePodExecutionRolePolicy** esteja associada ao perfil.

   1. Escolha **Relações de Confiança**.

   1. Escolha **Edit trust policy** (Editar política de confiança).

1. Na página **Edit trust policy** (Editar política de confiança), verifique se a relação de confiança contém a política a seguir e tem uma linha para perfis do Fargate no cluster. Em caso afirmativo, escolha **Cancel** (Cancelar).

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Condition": {
            "ArnLike": {
               "aws:SourceArn": "arn:aws:eks:us-east-1:111122223333:fargateprofile/my-cluster/*"
            }
         },
         "Principal": {
           "Service": "eks-fargate-pods.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

   Se a política corresponder, mas não tiver uma linha especificando os perfis do Fargate no seu cluster, será possível adicionar a seguinte linha sobre o objeto `ArnLike`. Substitua *region-code* pela região da AWS em que seu cluster está localizado, *111122223333* pelo ID da sua conta e *my-cluster* pelo nome do seu cluster.

   ```
   "aws:SourceArn": "arn:aws:eks:region-code:111122223333:fargateprofile/my-cluster/*",
   ```

   Se a política não corresponder, copie a política anterior completa para o formulário e escolha **Atualizar política**. Substitua *region-code* pela região da AWS em que seu cluster se encontra. Se você quiser usar o mesmo perfil em todas as regiões da AWS da sua conta, substitua *region-code* por `*`. Substitua *111122223333* pelo ID da sua conta e *my-cluster* pelo nome do seu cluster. Se quiser usar o mesmo perfil para todos os clusters da sua conta, substitua *my-cluster* por `*`.

## Criar o perfil de execução de pods do Amazon EKS
<a name="create-pod-execution-role"></a>

Se ainda não tiver o perfil de execução de pods do Amazon EKS para o cluster, será possível usar o Console de gerenciamento da AWS ou a AWS CLI para criá-lo.

 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. Na lista suspensa **Casos de uso para outros serviços AWS**, escolha **EKS**.

   1. Escolha **EKS - Pod do Fargate**.

   1. Escolha **Próximo**.

1. Na página **Add permissions** (Adicionar permissões), escolha **Next** (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 `AmazonEKSFargatePodExecutionRole`.

   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**.

1. Na página **Roles** (Funções), procure **AmazonEKSFargatePodExecutionRole** na lista de funções. Escolha a função.

1. Na página **AmazonEKSFargatePodExecutionRole**, faça o seguinte:

   1. Escolha **Relações de Confiança**.

   1. Escolha **Edit trust policy** (Editar política de confiança).

1. Na página **Edit trust policy** (Editar política de confiança), faça o seguinte:

   1. Copie e cole o conteúdo a seguir no formulário **Edit trust policy** (Editar política de confiança). Substitua *region-code* pela região da AWS em que seu cluster se encontra. Se você quiser usar o mesmo perfil em todas as regiões da AWS da sua conta, substitua *region-code* por `*`. Substitua *111122223333* pelo ID da sua conta e *my-cluster* pelo nome do seu cluster. Se quiser usar o mesmo perfil para todos os clusters da sua conta, substitua *my-cluster* por `*`.

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Condition": {
               "ArnLike": {
                  "aws:SourceArn": "arn:aws:eks:us-east-1:111122223333:fargateprofile/my-cluster/*"
               }
            },
            "Principal": {
              "Service": "eks-fargate-pods.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
          }
        ]
      }
      ```

   1. Escolha **Atualizar política**.

 AWS CLI  

1. Copie e cole o conteúdo a seguir em um arquivo denominado `pod-execution-role-trust-policy.json`. Substitua *region-code* pela região da AWS em que seu cluster se encontra. Se você quiser usar o mesmo perfil em todas as regiões da AWS da sua conta, substitua *region-code* por `*`. Substitua *111122223333* pelo ID da sua conta e *my-cluster* pelo nome do seu cluster. Se quiser usar o mesmo perfil para todos os clusters da sua conta, substitua *my-cluster* por `*`.

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Condition": {
            "ArnLike": {
               "aws:SourceArn": "arn:aws:eks:us-east-1:111122223333:fargateprofile/my-cluster/*"
            }
         },
         "Principal": {
           "Service": "eks-fargate-pods.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

1. Crie um perfil do IAM de execução de pods.

   ```
   aws iam create-role \
     --role-name AmazonEKSFargatePodExecutionRole \
     --assume-role-policy-document file://"pod-execution-role-trust-policy.json"
   ```

1. Anexe a política do IAM gerenciada pelo Amazon EKS ao perfil.

   ```
   aws iam attach-role-policy \
     --policy-arn arn:aws:iam::aws:policy/AmazonEKSFargatePodExecutionRolePolicy \
     --role-name AmazonEKSFargatePodExecutionRole
   ```