Solucionar problemas de erro "Proibido" ao tentar acessar recursos de cluster do AKS
Este artigo explica como solucionar problemas e resolver erros de "Erro do servidor (Proibido)" relacionados ao RBAC (Controle de Acesso Baseado em Função) ao tentar exibir recursos do Kubernetes em um cluster do AKS (Serviço de Kubernetes do Azure).
Pré-requisitos
A ferramenta de linha de comando do cluster do Kubernetes (kubectl)
Observação
Se você usar o Azure Cloud Shell para executar comandos do shell, o kubectl já estará instalado. Se você usar um shell local e já tiver a CLI do Azure instalada, poderá instalar o kubectl executando o comando az aks install-cli .
Sintomas
Ao executar kubectl
comandos para exibir detalhes de um tipo de recurso do Kubernetes, como uma implantação, um pod ou um nó de trabalho, você recebe a seguinte mensagem de erro:
$ kubectl get nodes
Error from server (Forbidden): nodes is forbidden: User "aaaa11111-11aa-aa11-a1a1-111111aaaaa" cannot list resource "nodes" in API group "" at the cluster scope
Motivo
Esse erro indica que você está tentando acessar recursos do Kubernetes usando uma conta de ID do Microsoft Entra que não tem as permissões RBAC (controle de acesso baseado em função) necessárias.
Solução
Dependendo do tipo de RBAC configurado para o cluster (RBAC do Kubernetes ou RBAC do Azure), soluções diferentes podem ser aplicadas. Execute o seguinte comando para determinar qual tipo de RBAC o cluster está usando:
az aks show -g <CLUSTER_RESOURCE_GROUP> -n <CLUSTER_NAME> --query aadProfile.enableAzureRbac
- Se o resultado for falso, o cluster usará o RBAC do Kubernetes. Consulte Resolvendo problemas de permissão em clusters do AKS baseados em RBAC do Kubernetes.
- Se o resultado for verdadeiro, o cluster usará o RBAC do Azure. Consulte Resolvendo problemas de permissão em clusters do AKS baseados em RBAC do Azure.
Resolvendo problemas de permissões em clusters do AKS baseados em RBAC do Kubernetes
Se o cluster usar o RBAC do Kubernetes, as permissões para a conta de usuário serão configuradas por meio da criação de recursos do Kubernetes RoleBinding ou ClusterRoleBinding. Para obter mais informações, consulte a documentação do RBAC do Kubernetes.
Além disso, em clusters integrados de ID do Microsoft Entra, um recurso ClusterRoleBinding é criado automaticamente para conceder ao administrador acesso ao cluster a membros de um grupo de ID do Microsoft Entra pré-designado.
Para resolver o erro "Erro do servidor (Proibido)" para um usuário específico, use um dos seguintes métodos.
Método 1: Criar um recurso RoleBinding ou ClusterRoleBinding personalizado
Você pode criar um recurso RoleBinding ou ClusterRoleBinding personalizado para conceder as permissões necessárias ao usuário (ou a um grupo do qual o usuário é membro). Para obter etapas detalhadas, consulte Usar o controle de acesso baseado em função do Kubernetes com a ID do Microsoft Entra no Serviço de Kubernetes do Azure.
Método 2: Adicionar o usuário ao grupo de administradores de ID do Microsoft Entra pré-designado
Recupere a ID do grupo de administradores de ID do Microsoft Entra pré-designado. Para fazer isso, execute o seguinte comando:
az aks show -g <CLUSTER_RESOURCE_GROUP> -n <CLUSTER_NAME> --query aadProfile.adminGroupObjectIDs
Adicione o usuário ao grupo de administradores de ID do Microsoft Entra pré-designado usando a ID de grupo que você recuperou na etapa anterior. Para obter etapas mais detalhadas, consulte Adicionar membros ou proprietários de um grupo.
Resolvendo problemas de permissões em clusters do AKS baseados em RBAC do Azure
Se o cluster usar o RBAC do Azure, as permissões para usuários serão configuradas por meio da criação de atribuições de função do Azure.
O AKS fornece um conjunto de funções internas que podem ser usadas para criar atribuições de função para os usuários ou grupos da ID do Microsoft Entra para dar a eles acesso a objetos do Kubernetes em um namespace específico ou no escopo do cluster. Para obter etapas detalhadas para atribuir funções internas a usuários ou grupos em clusters baseados em RBAC do Azure, consulte Funções internas do AKS.
Como alternativa, você pode criar suas próprias definições de função personalizadas do Azure para fornecer um gerenciamento mais granular de permissões em tipos específicos de objetos e operações do Kubernetes. Para obter diretrizes detalhadas sobre como criar e atribuir funções personalizadas a usuários e grupos em clusters baseados em RBAC do Azure, consulte Criar definições de funções personalizadas.
Entre em contato conosco para obter ajuda
Se você tiver dúvidas ou precisar de ajuda, crie uma solicitação de suporte ou peça ajuda à comunidade de suporte do Azure. Você também pode enviar comentários sobre o produto para a comunidade de comentários do Azure.