

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

# Criar um provedor de identidade OIDC do IAM para o cluster
<a name="enable-iam-roles-for-service-accounts"></a>

O cluster tem um URL do emissor do [OpenID Connect](https://openid.net/connect/) (OIDC) associado a ele. Para usar os perfis do AWS Identity and Access Management (IAM) para contas de serviço, deve haver um provedor OIDC do IAM para o URL do emissor do OIDC do cluster.

## Pré-requisitos
<a name="_prerequisites"></a>
+ Um cluster existente do Amazon EKS. Para implantar, consulte [Começar a usar o Amazon EKS](getting-started.md).
+ Versão `2.12.3` ou posterior ou versão `1.27.160` ou posterior da AWS Command Line Interface (AWS CLI) instalada e configurada no seu dispositivo ou no AWS CloudShell. Para verificar sua versão atual, use `aws --version | cut -d / -f2 | cut -d ' ' -f1`. Os gerenciadores de pacotes, como `yum`, `apt-get` ou Homebrew para macOS, geralmente estão várias versões atrás da versão mais recente da AWS CLI. Para instalar a versão mais recente, consulte [Installing](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) e [Quick configuration with aws configure](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-config), no *Guia do usuário da AWS Command Line Interface*. A versão da AWS CLI instalada no AWS CloudShell também pode estar várias versões atrás da versão mais recente. Para atualizá-lo, consulte [Instalar a AWS CLI no seu diretório pessoal](https://docs.aws.amazon.com/cloudshell/latest/userguide/vm-specs.html#install-cli-software), no * Guia do usuário do AWS CloudShell*.
+ A ferramenta da linha de comando `kubectl` está instalada no seu dispositivo ou no AWS CloudShell. A versão pode ser a mesma ou até uma versão secundária anterior ou posterior à versão do Kubernetes do seu cluster. Por exemplo, se a versão do cluster for a `1.29`, será possível usar o `kubectl` versão `1.28`, `1.29` ou `1.30` com ele. Para instalar ou atualizar o `kubectl`, consulte [Configurar o `kubectl` e o `eksctl`](install-kubectl.md).
+ Um arquivo `kubectl` `config` existente que contém a configuração do seu cluster. Para criar um arquivo `kubectl` `config`, consulte [Conecte o kubectl a um cluster de EKS criando um arquivo kubeconfig](create-kubeconfig.md).

Você pode criar um provedor OIDC do IAM para o cluster usando o `eksctl` ou o Console de gerenciamento da AWS.

## Criar provedor OIDC (eksctl)
<a name="_create_oidc_provider_eksctl"></a>

1. Versão `0.215.0` ou posterior da ferramenta de linha de comando da `eksctl` instalada no seu dispositivo ou AWS CloudShell. Para instalar ou atualizar o `eksctl`, consulte [Instalação](https://eksctl.io/installation) na documentação do `eksctl`.

1. Determine o ID do emissor do OIDC para o cluster.

   Recupere o ID do emissor do OIDC do cluster e armazene-o em uma variável. Substitua `<my-cluster>` pelos seus próprios valores.

   ```
   cluster_name=<my-cluster>
   oidc_id=$(aws eks describe-cluster --name $cluster_name --query "cluster.identity.oidc.issuer" --output text | cut -d '/' -f 5)
   echo $oidc_id
   ```

1. Determine se um provedor OIDC do IAM com o ID do emissor do cluster já está em sua conta.

   ```
   aws iam list-open-id-connect-providers | grep $oidc_id | cut -d "/" -f4
   ```

   Caso retorne um resultado, significa que você já tem um provedor OIDC do IAM para o cluster e pode pular a próxima etapa. Se nenhum resultado for retornado, você deverá criar um provedor OIDC do IAM do seu cluster.

1. Crie o provedor de identidade OIDC do IAM para o cluster com o comando a seguir.

   ```
   eksctl utils associate-iam-oidc-provider --cluster $cluster_name --approve
   ```
**nota**  
Se você habilitou o endpoint da VPC do EKS, o endpoint de serviço de OIDC do EKS não poderá ser acessado de dentro dessa VPC. Consequentemente, suas operações, como a criação de um provedor de OIDC com o `eksctl` na VPC, não funcionarão e resultarão em um tempo limite. Segue um exemplo de mensagem de erro:  

   ```
   ** server cant find oidc.eks.<region-code>.amazonaws.com: NXDOMAIN
   ```

   Para concluir essa etapa, você pode executar o comando fora da VPC, por exemplo, no AWS CloudShell ou em um computador conectado à Internet. Como alternativa, você pode criar um resolvedor condicional de horizonte segmentado na VPC, como o Route 53 Resolver, para usar um resolvedor diferente para o URL do emissor do OIDC e não usar o DNS da VPC para ela. Para ver um exemplo de encaminhamento condicional em CoreDNS, consulte [Amazon EKS feature request](https://github.com/aws/containers-roadmap/issues/2038) no GitHub.

## Criar provedor OIDC (console do AWS)
<a name="create_oidc_provider_shared_aws_console"></a>

1. Abra o [console do Amazon EKS](https://console.aws.amazon.com/eks/home#/clusters).

1. No painel esquerdo, selecione **Clusters** e, em seguida, selecione o nome do cluster na página **Clusters**.

1. Na seção **Details** (Detalhes) da guia **Overview** (Visão geral), observe o valor de **OpenID Connect provider URL** (URL do provedor OpenID Connect).

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

1. No painel de navegação à esquerda, escolha **Identity Providers** (Provedores de identidade) em **Access management** (Gerenciamento de acesso). Se um **fornecedor** listado corresponder à URL do cluster, então você já tem um provedor para o cluster. Se um provedor não estiver listado que corresponda à URL do seu cluster, você deverá criar um.

1. Para criar um provedor, selecione **Add provider** (Adicionar provedor).

1. Em **Tipo de provedor**, selecione **OpenID Connect**.

1. Em **URL do provedor**, insira o URL do provedor OIDC do cluster.

1. Em **Público**, insira `sts.amazonaws.com`.

1. (Opcional) Adicione qualquer tag, por exemplo, uma tag para identificar qual cluster destina-se a esse provedor.

1. Escolha **Add provider** (Adicionar provedor).

Próxima etapa: [Atribuir perfis do IAM às contas de serviço do Kubernetes](associate-service-account-role.md) 