Criar um provedor OIDC do IAM para o cluster - Amazon EKS

Ajudar a melhorar esta página

Quer contribuir para este guia do usuário? Role até o final desta página e selecione Editar esta página no GitHub. Suas contribuições ajudarão a tornar nosso guia do usuário melhor para todos.

Criar um provedor OIDC do IAM para o cluster

Seu cluster tem um URL emissor do do OpenID Connect (OIDC) associada a ele. Para usar perfis do AWS Identity and Access Management (IAM) para contas de serviço, um provedor OIDC do IAM deve existir para a URL do emissor de OIDC do cluster.

Pré-requisitos
  • Um cluster existente do Amazon EKS. Para implantar, consulte Conceitos básicos do Amazon EKS.

  • A versão 2.12.3 ou superior ou a versão 1.27.160 ou superior da AWS Command Line Interface (AWS CLI) instalada e configurada em seu dispositivo ou no AWS CloudShell. Para verificar sua versão atual, use aws --version | cut -d / -f2 | cut -d ' ' -f1. 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 Instalar, atualizar e desinstalar a AWS CLI e Configuração rápida com o aws configure 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á-la, consulte Instalar a AWS CLI no diretório inicial 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 idêntica ou até uma versão secundária anterior ou posterior à versão Kubernetes do seu cluster. Por exemplo, se a versão do cluster for a 1.29, você poderá usar o kubectl versão 1.28, 1.29 ou 1.30 com ele. Para instalar ou atualizar o kubectl, consulte Instalar ou atualizar o kubectl.

  • Um arquivo kubectl config existente que contém a configuração do seu cluster. Para criar um arquivo kubectl config, consulte Criar ou atualizar um arquivo kubeconfig para um cluster do Amazon EKS.

É possível criar um provedor OIDC do IAM para o cluster usando o eksctl ou o AWS Management Console.

eksctl
Pré-requisito

Versão 0.183.0 ou posterior da ferramenta da linha de comando do eksctl instalada no dispositivo ou no AWS CloudShell. Para instalar ou atualizar o eksctl, consulte Instalação na documentação do eksctl.

Para criar um provedor de identidade OIDC do IAM para o cluster com o eksctl
  1. Determine o ID do emissor OIDC do seu cluster.

    Recupere o ID do emissor do OIDC do cluster e armazene-a 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
  2. Determine se um provedor do OIDC do IAM com seu ID do emissor do cluster já está em sua conta.

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

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

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

    eksctl utils associate-iam-oidc-provider --cluster $cluster_name --approve
    nota

    Se você habilitar o endpoint da VPC EKS, o endpoint de serviço EKS OIDC não poderá ser acessado de dentro dessa VPC. Consequentemente, suas operações, como a criação de um provedor de OIDC eksctl dentro da VPC, não funcionarão e resultarão em um tempo limite ao tentar solicitar https://oidc.eks.region.amazonaws.com. Segue um exemplo de mensagem de erro:

    ** server can't find oidc.eks.region.amazonaws.com: NXDOMAIN

    Para concluir essa etapa, você pode executar o comando fora da VPC, por exemplo, em AWS CloudShell ou em um computador conectado à Internet.

AWS Management Console
Para criar um provedor de identidade OIDC do IAM para o cluster com o AWS Management Console
  1. Abra o console do Amazon EKS em https://console.aws.amazon.com/eks/home#/clusters.

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

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

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

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

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

  7. Em Provider type (Tipo de provedor), selecione OpenID Connect.

  8. Em Provider URL (URL do provedor), insira o URL do provedor OIDC do cluster e escolha Get thumbprint (Obter impressão digital).

  9. Para Audience (Público), insira sts.amazonaws.com e escolha Add provider (Adicionar provedor).

Próxima etapa

Configurar uma conta de serviço do Kubernetes para assumir um perfil do IAM