Knowledge Center Monthly Newsletter - March 2025
Stay up to date with the latest from the Knowledge Center. See all new and updated Knowledge Center articles published in the last month and re:Post’s top contributors.
Como resolvo o erro “Seu usuário ou função atual não tem acesso aos objetos do Kubernetes neste cluster EKS” no Amazon EKS?
Eu recebo o seguinte erro no Amazon Elastic Kubernetes Service (Amazon EKS): “Seu usuário ou função atual não tem acesso aos objetos Kubernetes neste cluster EKS.”
Breve descrição
Você pode receber esse erro ao usar o Console de Gerenciamento da AWS com uma identidade (usuário ou função) do AWS Identity and Access Management (IAM). O erro indica que o usuário ou perfil do IAM não tem as permissões do RBAC necessárias para acessar a API do Kubernetes. Para visualizar os recursos do Kubernetes no Console de Gerenciamento da AWS, sua identidade do AWS IAM deverá ser mapeada para o aws-auth ConfigMap no seu cluster do Amazon EKS. Para obter mais informações, consulte Using RBAC authorization, no site do Kubernetes.
Quando você cria um cluster do Amazon EKS, sua identidade do IAM recebe automaticamente as permissões system:masters na configuração RBAC do cluster. Isso permite que visualizar os recursos do Kubernetes por meio do console do Amazon EKS. Ele também permite que você edite o ConfigMap aws-auth no Kubernetes e conceda a usuários ou funções adicionais da AWS a capacidade de interagir com o cluster. O console de gerenciamento do AWS usa o IAM para autorizar, e o cluster EKS usa o sistema RBAC do Kubernetes. Como o ConfigMap aws-auth do cluster associa as identidades do IAM às identidades RBAC do cluster, o ConfigMap aws-auth associa as identidades do IAM às identidades do Kubernetes.
Resolução
Pré-requisitos
Com base na sua situação, colete as seguintes informações.
Usuário ou função não administrativa
Se você não for um usuário ou função do IAM de administrador de cluster e precisar de visibilidade no console do Amazon EKS, conclua as seguintes etapas:
- Obtenha o ARN da identidade do IAM do usuário do Console de Gerenciamento da AWS. O Autenticador do AWS IAM não permite um caminho no ARN da função que é usado no ConfigMap. Se for um perfil do IAM, use o seguinte formato do ARN:
arn:aws:iam::111122223333:role/example
Observação: não use o formato a seguir, pois ele contém informações desnecessárias:
arn:aws:iam::111122223333:role/my-team/developers/example - Forneça o ARN ao administrador do cluster e solicite que ele o adicione ao ConfigMap aws-auth.
Observação: consulte a seção Identificar o ARN de identidade do IAM do usuário do AWS Management Console para ver as etapas sobre como acessar seu ARN.
Criador do cluster ou usuário ou função de administrador do cluster
Se você for o criador ou administrador do cluster, use a ferramenta kubectl ou a ferramenta eksctl para gerenciar o aws-auth ConfigMap.
Observação: por padrão, o grupo system:masters está vinculado ao clusterrole chamado cluster-admin. Esse clusterrole usa o curinga (“*”) para recursos e verbos em sua PolicyRule. Isso significa que qualquer usuário atribuído ao grupo system:masters tem acesso total a todos os recursos do Kubernetes dentro do cluster.
Consulte a seção Identifique o criador do cluster para conhecer as etapas sobre como os criadores e administradores de cluster podem identificar seu status de administrador.
Identifique o ARN de identidade do IAM do usuário do AWS Management Console
Identifique o usuário ou perfil do IAM que você usa para acessar o console. Essa identidade do IAM pode ser diferente da identidade que você usa com a AWS Command Line Interface (AWS CLI). 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. Em seguida, use uma das seguintes opções para acessar o ARN.
Observação: se você receber erros ao executar comandos da AWS CLI, consulte Solucionar erros da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.
AWS CLI
Se você tiver acesso à AWS CLI ao usuário ou à função do IAM, execute o seguinte comando:
aws sts get-caller-identity --query Arn
CloudShell
Se você não tiver acesso à AWS CLI, execute o seguinte comando no AWS CloudShell:
aws sts get-caller-identity --query Arn
A saída é semelhante à seguinte:
"arn:aws:iam::111122223333:role/testrole"
-ou-
"arn:aws:iam::111122223333:user/testuser"
Observação:
- Se for um ARN de perfil do IAM, certifique-se de que o formato seja semelhante ao formato do ARN da seção Pré-requisitos.
- Se o ARN incluir a função assumida, você deverá obter o ARN da função. Por exemplo, a função ARN de arn:aws:sts::123456:assumed-role/MyRole/aadams está associada à função ARN arn:aws:sts::123456:role/MyRole. Verifique esse valor no console do IAM.
Identifique o criador do cluster
Para encontrar o criador do cluster ou o perfil de administrador com permissões primárias para configurar seu cluster, pesquise a chamada da API CreateCluster no AWS CloudTrail. Em seguida, verifique a seção userIdentity da chamada de API. Se você encontrar o nome do criador do cluster no CloudTrail, mas ele estiver excluído, recrie um novo usuário ou função do IAM com o mesmo nome. Como essa nova identidade do IAM tem o mesmo ARN que o criador original do cluster, ela herda o mesmo acesso de administrador ao cluster.
Observação: o CloudTrail fornece apenas 90 dias de histórico.
Adicione o novo usuário ou perfil do IAM ao RBAC do Kubernetes
Para adicionar o novo usuário ou perfil do IAM ao RBAC do Kubernetes, primeiro configure a AWS CLI para usar o IAM do criador do cluster. Para verificar se a AWS CLI está configurada corretamente com a identidade do IAM, execute o seguinte comando:
$ aws sts get-caller-identity
A saída retorna o ARN do usuário ou da função do IAM. Por exemplo:
{ "UserId": "XXXXXXXXXXXXXXXXXXXXX", "Account": "XXXXXXXXXXXX", "Arn": "arn:aws:iam::XXXXXXXXXXXX:user/testuser" }
Em seguida, use o kubectl ou o eksctl para modificar o ConfigMap aws-auth.
kubectl
-
Para usar o kubectl para modificar o ConfigMap aws-auth, execute o seguinte comando kubectl para ter acesso ao cluster:
$ kubectl edit configmap aws-auth -n kube-system
O console mostra o ConfigMap atual. Se não conseguir se conectar ao cluster, atualize seu arquivo kubeconfig. Como a identidade que cria o cluster sempre tem acesso ao cluster, execute o comando com uma identidade do IAM que tenha acesso ao cluster:
aws eks update-kubeconfig --region region_code --name my_cluster
Observação: substitua region\ _code pelo código de região da AWS do cluster EKS e my\ _cluster pelo nome do cluster EKS.
Os comandos kubectl devem se conectar ao endpoint do servidor EKS. Se o endpoint do servidor de API for público, você deverá ter acesso à Internet para se conectar ao endpoint. Se o endpoint do servidor de APIs for privado, conecte-se ao endpoint do servidor do EKS de dentro da nuvem privada virtual (VPC) em que o cluster EKS está sendo executado. -
Para editar o ConfigMap aws-auth no editor de texto como criador ou administrador do cluster, execute o seguinte comando:
$ kubectl edit configmap aws-auth -n kube-system
-
Adicione um usuário ou perfil do IAM:
mapUsers: | - userarn: arn:aws:iam::XXXXXXXXXXXX:user/testuser username: testuser groups: - system:bootstrappers - system:nodes
Ou adicione o perfil do IAM a mapRoles. Por exemplo:
mapRoles: | - rolearn: arn:aws:iam::XXXXXXXXXXXX:role/testrole username: testrole groups: - system:bootstrappers - system:nodes
É uma prática recomendada não usar system:masters para ambientes de produção porque system:masters permite o acesso de um superusuário para executar qualquer ação em qualquer recurso. Além disso, é uma prática recomendada minimizar permissões concedidas. Crie um perfil com acesso apenas a um namespace específico. Revise a seção Visualizar recursos do Kubernetes em um namespace específico de Permissões obrigatórias.
eksctl
Para usar a ferramenta eksctl para atualizar o ConfigMap aws-auth, execute o seguinte comando:
eksctl create iamidentitymapping --cluster your_cluster_Name --region=your_region --arn YOUR_IAM_ARN <arn:aws:iam::123456:role testing=""> --group system:masters --username admin</arn:aws:iam::123456:role>
Observação: substitua your_cluster_Name pelo seu nome do cluster EKS, your_region pela sua Região do cluster EKS e YOUR_IAM_ARN pelo seu perfil do IAM ou ARN de usuário.
Verifique o acesso ao seu cluster Amazon EKS
Conclua as seguintes etapas:
- Abra o console do Amazon EKS.
- No painel de navegação, escolha Clusters.
- Escolha seu cluster.
- Verifique se há erros nas guias Visão geral e Workloads.
Se você configurou um namespace específico, verá a seguinte mensagem de erro no console do Amazon EKS:
"Error loading Deploymentsdeployments.apps is forbidden: User "xxxxxx" cannot list resource "deployments" in API group "apps" at the cluster scope or in the namespace "xxxxxxx"
O erro não aparece para o namespace específico. Para solucionar mensagens de erro, consulte Não consigo ver os nós na guia Computação ou qualquer coisa na guia Recursos e você receberá um erro no AWS Management Console.

Conteúdo relevante
- feita há um mêslg...
- feita há 4 diaslg...
- Resposta aceitafeita há 20 diaslg...
- feita há 2 meseslg...
- AWS OFICIALAtualizada há um ano
- AWS OFICIALAtualizada há 8 meses
- AWS OFICIALAtualizada há 5 meses