Criar um provedor OIDC do IAM para o cluster
Seu cluster tem um URL do emissor do OpenID Connect
-
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ão1.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, useaws --version | cut -d / -f2 | cut -d ' ' -f1
. Os gerenciadores de pacotes, comoyum
,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 a1.29
, você poderá usar okubectl
versão1.28
,1.29
ou1.30
com ele. Para instalar ou atualizar okubectl
, consulte Configuração do kubectl e eksctl. -
Um arquivo
kubectl
config
existente que contém a configuração do seu cluster. Para criar um arquivokubectl
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)
-
Versão
0.194.0
ou posterior da ferramenta de linha de comando daeksctl
instalada no seu dispositivo ou AWS CloudShell. Para instalar ou atualizar oeksctl
, consulte Instalaçãona documentação do eksctl
. -
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
-
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.
-
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 solicitarhttps://oidc.eks
. Segue um exemplo de mensagem de erro:. region
.amazonaws.com
** 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
Criar provedor OIDC (console do AWS)
-
Abra o console do Amazon EKS
. -
No painel esquerdo, selecione Clusters e, em seguida, selecione o nome do cluster na página Clusters.
-
Na seção Details (Detalhes) da guia Overview (Visão geral), observe o valor de OpenID Connect provider URL (URL do provedor OpenID Connect).
-
Abra o console do IAM, em https://console.aws.amazon.com/iam/
. -
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.
-
Para criar um provedor, selecione Add provider (Adicionar provedor).
-
Para o tipo de provedor, selecione OpenID Connect .
-
Em URL do provedor, insira o URL do provedor OIDC do cluster.
-
Em Público, insira
sts.amazonaws.com
. -
(Opcional) Adicione qualquer tag, por exemplo, uma tag para identificar qual cluster destina-se a esse provedor.
-
Escolha Add provider (Adicionar provedor).
Próxima etapa: Atribuir perfis do IAM às contas de serviço do Kubernetes