Solución de problemas de error "Prohibido" al intentar acceder a los recursos del clúster de AKS
En este artículo se explica cómo solucionar los errores de "Error del servidor (prohibido)" relacionados con el control de acceso basado en rol (RBAC) al intentar ver los recursos de Kubernetes en un clúster de Azure Kubernetes Service (AKS).
Requisitos previos
La herramienta de línea de comandos del clúster de Kubernetes (kubectl)
Nota:
Si usa Azure Cloud Shell para ejecutar comandos de shell, kubectl ya está instalado. Si usa un shell local y ya tiene instalada la CLI de Azure, también puede instalar kubectl mediante la ejecución del comando az aks install-cli .
Síntomas
Al ejecutar kubectl
comandos para ver los detalles de un tipo de recurso de Kubernetes, como una implementación, un pod o un nodo de trabajo, recibirá el siguiente mensaje de error:
$ 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
Causa
Este error indica que está intentando acceder a los recursos de Kubernetes mediante una cuenta de Id. de Microsoft Entra que no tiene los permisos de control de acceso basado en rol (RBAC) necesarios.
Solución
Según el tipo de RBAC configurado para el clúster (RBAC de Kubernetes o RBAC de Azure), se pueden aplicar diferentes soluciones. Ejecute el siguiente comando para determinar qué tipo de RBAC usa el clúster:
az aks show -g <CLUSTER_RESOURCE_GROUP> -n <CLUSTER_NAME> --query aadProfile.enableAzureRbac
- Si el resultado es false, el clúster usa RBAC de Kubernetes. Consulte Solución de problemas de permisos en clústeres de AKS basados en RBAC de Kubernetes.
- Si el resultado es true, el clúster usa RBAC de Azure. Consulte Solución de problemas de permisos en clústeres de AKS basados en RBAC de Azure.
Solución de problemas de permisos en clústeres de AKS basados en RBAC de Kubernetes
Si el clúster usa RBAC de Kubernetes, los permisos de la cuenta de usuario se configuran mediante la creación de recursos de Kubernetes RoleBinding o ClusterRoleBinding. Para más información, consulte la documentación de RBAC de Kubernetes.
Además, en los clústeres integrados de Id. de Microsoft Entra, se crea automáticamente un recurso ClusterRoleBinding para conceder al administrador acceso al clúster a los miembros de un grupo de identificadores de Microsoft Entra designado previamente.
Para resolver el error "Error del servidor (Prohibido)" para un usuario específico, use uno de los métodos siguientes.
Método 1: Crear un recurso RoleBinding o ClusterRoleBinding personalizado
Puede crear un recurso RoleBinding o ClusterRoleBinding personalizado para conceder los permisos necesarios al usuario (o un grupo del que es miembro el usuario). Para obtener pasos detallados, consulte Uso del control de acceso basado en rol de Kubernetes con el identificador entra de Microsoft en Azure Kubernetes Service.
Método 2: Agregar el usuario al grupo de administración designado previamente de Microsoft Entra ID
Recupere el identificador del grupo de administración de Id. de Microsoft Entra designado previamente. Para ello, ejecute el siguiente comando:
az aks show -g <CLUSTER_RESOURCE_GROUP> -n <CLUSTER_NAME> --query aadProfile.adminGroupObjectIDs
Agregue el usuario al grupo de administración designado previamente de Microsoft Entra ID mediante el identificador de grupo que recuperó en el paso anterior. Para obtener pasos más detallados, consulte Agregar miembros o propietarios de un grupo.
Solución de problemas de permisos en clústeres de AKS basados en RBAC de Azure
Si el clúster usa RBAC de Azure, los permisos para los usuarios se configuran mediante la creación de asignaciones de roles de Azure.
AKS proporciona un conjunto de roles integrados que se pueden usar para crear asignaciones de roles para los usuarios o grupos de Id. de Microsoft Entra para concederles acceso a objetos de Kubernetes en un espacio de nombres específico o en el ámbito del clúster. Para obtener pasos detallados para asignar roles integrados a usuarios o grupos en clústeres basados en RBAC de Azure, consulte Roles integrados de AKS.
Como alternativa, puede crear sus propias definiciones de roles de Azure personalizadas para proporcionar una administración más detallada de los permisos sobre tipos específicos de objetos y operaciones de Kubernetes. Para obtener instrucciones detalladas para crear y asignar roles personalizados a usuarios y grupos en clústeres basados en RBAC de Azure, consulte Creación de definiciones de roles personalizados.
Ponte en contacto con nosotros para obtener ayuda
Si tiene preguntas o necesita ayuda, cree una solicitud de soporte o busque consejo en la comunidad de Azure. También puede enviar comentarios sobre el producto con los comentarios de la comunidad de Azure.