Compartir a través de


Control de acceso basado en roles en clústeres de Kubernetes de Azure Operator Nexus

En este artículo se proporciona una guía completa sobre cómo administrar el acceso a los clústeres de Nexus Kubernetes mediante Microsoft Entra ID. En concreto, nos centramos en el control de acceso basado en roles, lo que le permite conceder permisos a los usuarios en función de sus roles o responsabilidades dentro de su organización.

Antes de empezar

  1. Para empezar, cree un grupo de Microsoft Entra para los administradores del clúster y asígnele miembros. Microsoft Entra ID permite conceder acceso al grupo en su conjunto, en lugar de administrar permisos para cada usuario individualmente.
  2. Use el identificador de grupo que creó como el valor de "adminGroupObjectIds" al crear el clúster de Nexus Kubernetes para asegurarse de que los miembros del grupo obtienen permisos para administrar el clúster. Consulte la guía de inicio rápido para obtener instrucciones sobre cómo crear y acceder al clúster de Nexus Kubernetes.

Acceso de administrador al clúster

Nexus crea un enlace de rol de clúster de Kubernetes con el rol predeterminado de Kubernetes cluster-admin y los grupos de Microsoft Entra que especificó como adminGroupObjectIds. Los administradores del clúster tienen acceso completo al clúster y pueden realizar todas las operaciones del clúster. Los administradores del clúster también pueden conceder acceso a otros usuarios asignándolos al grupo adecuado de Microsoft Entra.

Nota:

Al crear un clúster de Kubernetes de Nexus, Nexus crea automáticamente un grupo de recursos administrado dedicado a almacenar los recursos del clúster. Dentro de este grupo, se establece el recurso de clúster conectado a Arc.

Para acceder al clúster, es necesario configurar la conexión del clúster kubeconfig. Después de iniciar sesión en la CLI de Azure con la entidad Microsoft Entra pertinente, puede obtener el kubeconfig necesario para comunicarse con el clúster desde cualquier lugar, incluso fuera del firewall que lo rodea.

  1. Configure las variables CLUSTER_NAME, RESOURCE_GROUP y SUBSCRIPTION_ID.

    CLUSTER_NAME="myNexusK8sCluster"
    RESOURCE_GROUP="myResourceGroup"
    SUBSCRIPTION_ID=<set the correct subscription_id>
    
  2. Consulte el grupo de recursos administrados con az y almacénelo en MANAGED_RESOURCE_GROUP.

     az account set -s $SUBSCRIPTION_ID
     MANAGED_RESOURCE_GROUP=$(az networkcloud kubernetescluster show -n $CLUSTER_NAME -g $RESOURCE_GROUP --output tsv --query managedResourceGroupConfiguration.name)
    
  3. El siguiente comando inicia un proxy connectedk8s que le permite conectarse al servidor de la API de Kubernetes para el clúster Nexus Kubernetes especificado.

    az connectedk8s proxy -n $CLUSTER_NAME  -g $MANAGED_RESOURCE_GROUP &
    
  4. Use kubectl para enviar solicitudes al clúster:

    kubectl get pods -A
    

    Ahora debería ver una respuesta del clúster con la lista de todos los nodos.

Nota

Si aparece el mensaje de error " o se pudo enviar el token de acceso al proxy cliente. No se pudo conectar a MSI", es posible que tenga que realizar un az login para volver a autenticarse con Azure.

Control de acceso basado en rol

Como administrador, puede proporcionar control de acceso basado en rol al clúster mediante la creación de un enlace de roles con el identificador de objeto de grupo de Microsoft Entra. Para los usuarios que solo necesitan permisos de "vista", puede realizar la tarea agregándolos a un grupo de Microsoft Entra que esté vinculado al rol "ver".

  1. Cree un grupo de Microsoft Entra para los usuarios que necesitan acceso "ver", haciendo referencia al rol predeterminado de Kubernetes denominado view. Este rol es solo un ejemplo y, si es necesario, puede crear roles personalizados y usarlos en su lugar. Para más información sobre los roles orientados al usuario en Kubernetes, puede consultar la documentación oficial en Roles de acceso basados en roles de Kubernetes.

  2. Tome nota del identificador de objeto del grupo Entra de Microsoft generado al crearse.

  3. Use el comando kubectl para crear un clusterrolebinding con el rol "view" y asociarlo al grupo Microsoft Entra. Reemplace AZURE_AD_GROUP_OBJECT_ID por el identificador de objeto del grupo de Microsoft Entra.

    kubectl create clusterrolebinding nexus-read-only-users --clusterrole view --group=AZURE_AD_GROUP_OBJECT_ID
    

    Este comando crea un enlace de roles de clúster denominado nexus-read-only-users que asigna el rol de view a los miembros del grupo de Microsoft Entra especificado.

  4. Compruebe que el enlace de roles se creó correctamente.

    kubectl get clusterrolebinding nexus-read-only-users
    
  5. Ahora los usuarios del grupo Microsoft Entra tienen acceso "ver" al clúster. Pueden acceder al clúster mediante az connectedk8s proxy para ver los recursos, pero no pueden realizar ningún cambio

Pasos siguientes

Puede ajustar aún más el control de acceso mediante la creación de roles personalizados con permisos específicos. La creación de estos roles implica recursos de RoleBinding o ClusterRoleBinding nativos de Kubernetes. Puede consultar la documentación oficial de Kubernetes para obtener instrucciones detalladas sobre cómo crear más roles personalizados y enlaces de roles según sus requisitos.