Get Hands-on with Amazon EKS - Workshop Event Series
Whether you're taking your first steps with Kubernetes or you're an experienced practitioner looking to sharpen your skills, our Amazon EKS workshop series delivers practical, real-world experience that moves you forward. Learn directly from AWS solutions architects and EKS specialists through hands-on sessions designed to build your confidence with Kubernetes. Register now and start building with Amazon EKS!
Como resolvo o erro "Your current user or role does not have access to Kubernetes objects on this EKS cluster" no Amazon EKS?
Eu tentei acessar meu cluster do Amazon Elastic Kubernetes Service (Amazon EKS). No entanto, recebi a mensagem de erro "Your current user or role does not have access to Kubernetes objects on this EKS cluster".
Breve descrição
Você recebe um erro de acesso quando uma identidade do AWS Identity and Access Management (AWS IAM) não tem permissões de controle de acesso baseado em perfil (RBAC) para o Kubernetes. Para acessar a API Kubernetes, você precisa ter permissões de RBAC. Para mais informações sobre RBAC, consulte Uso da autorização do RBAC, no site do Kubernetes. Para visualizar os recursos do Kubernetes no Console de Gerenciamento da AWS, sua identidade do IAM deverá ser mapeada para o aws-auth ConfigMap no seu cluster do Amazon EKS.
Importante: a resolução a seguir usa aws-auth ConfigMap para se alinhar à abordagem do Kubernetes para acessar as permissões de RBAC. É uma prática recomendada migrar as entradas atuais do aws-auth ConfigMap para acessar as entradas.
Resolução
Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de problemas da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.
Se você for o usuário criador ou administrador do cluster, poderá usar kubectl ou eksctl para atualizar o aws-auth ConfigMap. Prossiga para Adicionar o usuário ou o perfil do IAM à configuração de RBAC. Caso contrário, você deve obter o nome do recurso da Amazon (ARN) da identidade do IAM que exige acesso ao cluster.
Obter o ARN da identidade do IAM que exige acesso ao cluster
Identifique o usuário ou o perfil do IAM que exige acesso ao cluster.
Observação: a identidade do IAM pode ser diferente da identidade do IAM usada ao executar a AWS CLI. O AWS IAM Authenticator para Kubernetes não permite um caminho no ARN de perfil que você usa no aws-auth ConfigMap. Para mais informações, consulte aws-iam-authenticator no site do GitHub.
Se você tiver acesso à AWS CLI para o usuário ou perfil do IAM, execute o seguinte comando get-caller-identity da AWS CLI:
aws sts get-caller-identity --query "Arn"
Observação: se você não tiver acesso à AWS CLI, remova as aspas do Arn e execute o comando anterior no AWS CloudShell.
Exemplo de saída:
"arn:aws:iam::111122223333:role/testrole"
Se a saída do comando mostrar um ARN de perfil do IAM, confirme se ele está no formato de ARN correto: arn:aws:iam::111122223333:role/example.
Se o ARN incluir o perfil assumido, você deverá obter o ARN do perfil do IAM ao qual você está concedendo permissões de RBAC. Por exemplo, o ARN do perfil assumido de arn:aws:sts::123456:assumed-role/MyRole/your_username está associado ao ARN do perfil de arn:aws:sts::123456:role/MyRole.
Informe o ARN ao administrador do cluster e, em seguida, solicite que o administrador adicione o ARN do perfil a aws-auth ConfigMap. Para ver as etapas de adição do ARN ao aws-auth ConfigMap, prossiga para Adicionar o usuário ou o perfil do IAM à configuração de RBAC.
Confirme se o usuário ou perfil do IAM tem permissões para visualizar nós e workloads de todos os clusters no Console de Gerenciamento da AWS.
Identifique o criador do cluster
Importante: somente a entidade do IAM associada à criação do cluster tem acesso aos recursos do cluster. Somente o criador do cluster pode editar o aws-auth ConfigMap e fornecer acesso a outras entidades do IAM.
Identifique o perfil de criador ou administrador do cluster que tem permissões primárias para configurar seu cluster. Primeiro, verifique seu histórico de eventos do AWS CloudTrail para ver a chamada da API CreateCluster. Em seguida, verifique o campo userIdentity.
Se o nome do criador do cluster aparecer como Excluído no CloudTrail, crie um novo usuário ou perfil do IAM com o mesmo nome. A nova identidade do IAM tem o mesmo ARN do criador original do cluster, portanto, a nova identidade herda o mesmo acesso de administrador ao cluster.
Observação: o CloudTrail não fornece o nome do criador do cluster para clusters com mais de 90 dias.
Para usar a AWS CLI para obter a identidade do IAM do criador do cluster, execute o seguinte comando get-caller-identity:
aws sts get-caller-identity
Exemplo de saída:
{ "UserId": "AIDACKCEVSQ6C2EXAMPLE", "Account": "111122223333", "Arn": "arn:aws:iam:: 111122223333:user/testuser" }
Adicionar o usuário ou o perfil do IAM à configuração de RBAC
Se você instalou o eksctl, execute o seguinte comando eksctl create iamidentitymapping para atualizar o aws-auth ConfigMap:
eksctl create iamidentitymapping --cluster your_cluster_name --region=your_region --arn your_IAM_ARN --group system:masters --username admin
Observação: substitua your_cluster_name pelo nome do seu cluster, your_region pela sua região da AWS e your_IAM_ARN pelo ARN do perfil ou usuário do IAM.
Para usar o kubectl para atualizar o aws-auth ConfigMap, conclua as seguintes etapas:
-
Execute o comando a seguir para abrir o aws-auth ConfigMap em seu editor de texto padrão:
kubectl edit configmap aws-auth -n kube-systemObservação: o console mostra o ConfigMap atual. Se não for possível se conectar ao cluster, atualize seu arquivo kubeconfig. A identidade do IAM que cria o cluster sempre tem acesso ao cluster.
-
Execute o seguinte comando update-kubeconfig para configurar o kubectl para que você possa se conectar ao seu cluster:
aws eks update-kubeconfig --region region_code --name your_cluster_nameObservação: substitua region_code pela sua região e your_cluster_name pelo nome do cluster. Os comandos kubectl devem se conectar ao endpoint do servidor Amazon EKS. Se o endpoint do servidor de API for público, você deverá ter acesso à Internet para se conectar ao endpoint. Se o endpoint for privado, conecte-se ao endpoint do servidor a partir da nuvem privada virtual (VPC) em que seu cluster está sendo executado.
-
No editor de texto que se abre, insira o código a seguir para adicionar um usuário do IAM:
mapUsers: | - userarn: arn:aws:iam::111122223333:user/testuser username: testuser groups: - system:bootstrappers - system:nodesObservação: substitua 111122223333 pelo ID da sua conta da AWS e testuser pelo seu usuário do IAM.
Ou insira o código a seguir para adicionar um perfil do IAM:
mapRoles: | - rolearn: arn:aws:iam::111122223333:role/testrole username: testrole groups: - system:bootstrappers - system:nodesObservação: substitua 111122223333 pelo ID da sua conta e testrole pelo seu perfil do IAM.
Se você criar um cluster, sua identidade do IAM receberá automaticamente as permissões system:masters na configuração de RBAC do cluster. Por padrão, o grupo system:masters está vinculado ao perfil de cluster cluster-admin.
Não é uma prática recomendada usar as permissões system:masters em um ambiente de produção. As permissões system:masters dão aos usuários acesso total a todos os recursos do Kubernetes no cluster. Em vez disso, é uma prática recomendada criar um perfil que tenha acesso somente a um namespace específico com apenas as permissões necessárias.
Verificar o acesso ao cluster
Conclua as etapas a seguir:
- Abra o console do Amazon EKS.
- No painel de navegação, selecione Clusters.
- Selecione o cluster.
- Verifique se há erros nas guias Visão geral e Workloads.
Se você encontrar erros, consulte Solucionar problemas do IAM. Por exemplo, se você configurou o acesso RBAC para um namespace específico, poderá receber a seguinte mensagem de erro:
"Error loading Deployments : deployments.apps is forbidden: User "AIDACKCEVSQ6C2EXAMPLE" cannot list resource "deployments" in API group "apps" at the cluster scope or in the namespace "EXAMPLENAMESPACE"
Para resolver o erro de namespace, você deve criar ou atualizar o perfil de RBAC ou de cluster com as associações apropriadas de perfil ou perfil de cluster. Para mais informações, consulte RoleBinding e ClusterRoleBinding no site do Kubernetes.
- Tópicos
- Containers
- Idioma
- Português

Conteúdo relevante
- feita há 5 meses
- Resposta aceitafeita há 4 meses
AWS OFICIALAtualizada há 3 anos
AWS OFICIALAtualizada há 7 meses
AWS OFICIALAtualizada há 8 meses
AWS OFICIALAtualizada há 3 anos