

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

# Função do IAM do cluster do Amazon EKS
<a name="cluster-iam-role"></a>

É necessário um perfil do IAM de cluster do Amazon EKS para cada cluster. Os clusters do Kubernetes gerenciados pelo Amazon EKS usam esse perfil para gerenciar nós, e o [provedor de nuvem legado](https://kubernetes-sigs.github.io/aws-load-balancer-controller/latest/guide/service/annotations/#legacy-cloud-provider) usa esse perfil para criar balanceadores de carga com o Elastic Load Balancing para serviços.

Antes de criar clusters do Amazon EKS, você deve criar uma função do IAM com uma das seguintes políticas do IAM:
+  [AmazonEKSClusterPolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKSClusterPolicy.html) 
+ Uma política do IAM personalizada. As permissões mínimas a seguir permitem que o cluster do Kubernetes gerencie nós, mas não permitem que o [provedor de nuvem legado](https://kubernetes-sigs.github.io/aws-load-balancer-controller/latest/guide/service/annotations/#legacy-cloud-provider) crie balanceadores de carga com o Elastic Load Balancing. Sua política do IAM personalizada deve ter pelo menos as seguintes permissões:

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Effect": "Allow",
        "Action": [
          "ec2:CreateTags"
        ],
        "Resource": "arn:aws:ec2:*:*:instance/*",
        "Condition": {
          "ForAnyValue:StringLike": {
            "aws:TagKeys": "kubernetes.io/cluster/*"
          }
        }
      },
      {
        "Effect": "Allow",
        "Action": [
          "ec2:DescribeInstances",
          "ec2:DescribeNetworkInterfaces",
          "ec2:DescribeVpcs",
          "ec2:DescribeDhcpOptions",
          "ec2:DescribeAvailabilityZones",
          "ec2:DescribeInstanceTopology",
          "kms:DescribeKey"
        ],
        "Resource": "*"
      }
    ]
  }
  ```

**nota**  
Antes de 3 de outubro de 2023, [AmazoneksClusterPolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKSClusterPolicy.html) era exigido no perfil do IAM para cada cluster.  
Antes de 16 de abril de 2020, [AmazonEKSServicePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKSServicePolicy.html) e [AmazonEKSClusterPolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKSClusterPolicy.html) eram obrigatórios, e o nome sugerido para o perfil era `eksServiceRole`. Com o perfil vinculado ao serviço `AWSServiceRoleForAmazonEKS`, a política [AmazonEKSServicePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKSServicePolicy.html) não será mais necessária para clusters criados em ou após 16 de abril de 2020.

## Verificar se há uma função de cluster existente
<a name="check-service-role"></a>

É possível usar o procedimento a seguir para verificar se a conta já tem a função do cluster 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. Pesquise na lista de perfis `eksClusterRole`. Se não houver uma função que inclua `eksClusterRole`, consulte [Criar uma função para o cluster do Amazon EKS](#create-service-role) para criar a função. Se houver uma função que inclua `eksClusterRole`, selecione-a para visualizar as políticas anexadas.

1. Escolha **Permissões**.

1. Verifique se a política gerenciada **AmazonEKSClusterPolicy** está anexada à função. Se a política estiver anexada, a função do cluster do Amazon EKS estará configurada corretamente.

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",
         "Principal": {
           "Service": "eks.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

## Criar uma função para o cluster do Amazon EKS
<a name="create-service-role"></a>

Você pode usar o Console de gerenciamento da AWS ou a CLI AWS para criar o perfil de cluster.

 Console de gerenciamento da AWS   

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

1. Escolha **Roles (Funções)** e, em seguida, **Create Role (Criar função)**.

1. Em **Tipo de entidade confiável**, selecione **Serviço da AWS**.

1. Na lista suspensa **Casos de uso para outros serviços AWS**, escolha **EKS**.

1. Escolha **EKS - Cluster** para o caso de uso e escolha **Next** (Próximo).

1. Na guia **Add permissions** (Adicionar permissões), escolha **Next** (Próximo).

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

1. Em **Description** (Descrição), insira um texto descritivo, como `Amazon EKS - Cluster role`.

1. Selecione **Criar perfil**.

 AWS CLI  

1. Copie o conteúdo a seguir em um arquivo chamado {{cluster-trust-policy.json}}.

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

1. Crie a função. Você pode substituir {{eksClusterRole}} por qualquer nome que desejar.

   ```
   aws iam create-role \
     --role-name eksClusterRole \
     --assume-role-policy-document file://"cluster-trust-policy.json"
   ```

1. Anexe a política do IAM necessária à função.

   ```
   aws iam attach-role-policy \
     --policy-arn arn:aws:iam::aws:policy/AmazonEKSClusterPolicy \
     --role-name eksClusterRole
   ```