Por que não consigo gerar um arquivo kubeconfig para meu cluster do Amazon EKS?
Recebo um erro AccessDeniedException quando tento gerar um arquivo kubeconfig para um cluster do Amazon Elastic Kubernetes Service (Amazon EKS).
Breve descrição
Você deve ter permissão para usar a ação da API eks:DescribeCluster com o cluster para gerar um arquivo kubeconfig para um cluster do Amazon EKS. Para obter permissão, anexe uma política do AWS Identity and Access Management (IAM) a um usuário do IAM.
Resolução
Para anexar uma política do IAM a um usuário do IAM, conclua as seguintes etapas:
1. Abra o console do IAM.
2. No painel de navegação, escolha Users or Roles (Usuários ou funções).
3. Selecione o nome do usuário ou função em que uma política será incorporada.
4. Na guia Permissions (Permissões), escolha a opção Add inline policy (Adicionar política em linha).
5. Clique na guia JSON.
6. Use um editor de texto para substituir o código pela seguinte política do IAM:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "eks:DescribeCluster" ], "Resource": "*" } ] }
7. Escolha Review Policy (Revisar política).
8. Para Name (Nome), insira um nome para a sua política. Por exemplo: eks_update-kubeconfig.
Observação: você pode escolher qualquer nome para a política.
9. Escolha Create policy (Criar política).
Uma mensagem de negação explícita indica que, se a autenticação multifator (MFA) for falsa, haverá uma política do IAM que está negando a maioria das ações:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "BlockMostAccessUnlessSignedInWithMFA", "Effect": "Deny", "NotAction": [ "iam:CreateVirtualMFADevice", "iam:EnableMFADevice", "iam:ListMFADevices", "iam:ListUsers", "iam:ListVirtualMFADevices", "iam:ResyncMFADevice", "sts:GetSessionToken" ], "Resource": "*", "Condition": { "BoolIfExists": { "aws:MultiFactorAuthPresent": "false" } } } ] }
Observação: como você usa um dispositivo com MFA, você deve usar um token de MFA para autenticar o acesso aos recursos da AWS com a AWS Command Line Interface (AWS CLI). Siga as etapas descritas no artigo Como utilizar um token de MFA para autenticar o acesso aos meus recursos da AWS por meio da AWS CLI? Em seguida, execute o comando sts get-session-token da AWS CLI.
Por exemplo:
$ aws sts get-session-token --serial-number arn-of-the-mfa-device --token-code code-from-token
Observação: substitua arn-of-the-mfa-device pelo ARN do seu dispositivo com MFA e code-from-token pelo código do seu token.
Você pode usar credenciais temporárias exportando seus valores para variáveis de ambiente.
Por exemplo:
$ export AWS_ACCESS_KEY_ID=example-access-key-as-in-previous-output $ export AWS_SECRET_ACCESS_KEY=example-secret-access-key-as-in-previous-output $ export AWS_SESSION_TOKEN=example-session-token-as-in-previous-output
Execute o comando update-kubeconfig e confirme se ele atualiza o arquivo de configuração em ~/.kube/config:
aws eks --region region-code update-kubeconfig --name cluster_name
Observação: substitua region-code pelo código da região da AWS e cluster name pelo nome do cluster.

Conteúdo relevante
- AWS OFICIALAtualizada há um ano
- AWS OFICIALAtualizada há 5 meses
- AWS OFICIALAtualizada há 8 meses