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

Criar um provedor OIDC do IAM para o cluster

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

  • Um cluster existente do Amazon EKS. Para implantar, consulte Começar a usar o Amazon EKS.

  • 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 Instalar e Configuração rápida com 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á-lo, consulte Instalar a AWS CLI no seu diretório pessoal, 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 Configuração do kubectl e eksctl.

  • 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 EKS criando um arquivo kubeconfig.

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

Criar provedor OIDC (eksctl)

  1. Versão 0.194.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 na documentação do eksctl.

  2. 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 pelo seu próprio valor.

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

  2. 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ê 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 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 cant find oidc.eks.region.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 a Solicitação de recurso do Amazon EKS no GitHub.

Criar provedor OIDC (console do AWS)

  1. Abra o console do Amazon EKS.

  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 do 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. Para o tipo de provedor, selecione OpenID Connect .

  8. Em URL do provedor, insira o URL do provedor OIDC do cluster.

  9. Em Público, insira sts.amazonaws.com.

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

  11. Escolha Add provider (Adicionar provedor).

Próxima etapa: Atribuir perfis do IAM às contas de serviço do Kubernetes