Compartir a través de


Uso de Azure RBAC para clústeres de AKS (versión preliminar, retirada)

Se aplica a: AKS en Azure Local 22H2, AKS en Windows Server

Advertencia

Esta característica en versión preliminar se ha retirado y no es compatible a partir del 15/7/2024. Microsoft no recomienda usar esta característica de versión preliminar de RBAC de Azure en un entorno de producción.

En este artículo se describe cómo configurar RBAC de Azure en un clúster de AKS para usar microsoft Entra ID y asignaciones de roles de Azure para la autorización. Los pasos para crear el clúster se tratan en Requisitos previos.

Para obtener información general conceptual sobre el uso de RBAC de Azure con clústeres de Kubernetes habilitados para Azure Arc, consulte Azure RBAC en Kubernetes habilitado para Azure Arc.

Requisitos previos

Antes de implementar un clúster de Kubernetes con Azure Arc habilitado, debe completar los siguientes requisitos previos.

Instalación de la extensión de la CLI de Azure

La versión preliminar de la extensión de la CLI de Azure habilitada para Azure Arc es la única versión compatible para esta configuración preliminar de AKS en Azure Local 22H2. El uso de una versión superior puede provocar problemas de incompatibilidad con Azure RBAC y AKS Arc. Para instalar la extensión, ejecute el siguiente comando:

az extension add -n connectedk8s --version 1.5.4

Preparación de la red

Configure las siguientes opciones de red, proxy y firewall:

  • Configure los puntos de conexión a los que se debe tener acceso para conectar un clúster a Azure Arc. Para obtener una lista, consulte Cumplir los requisitos de red.

  • Permita el punto de conexión de Graph en el proxy o firewall.

    Para obtener información sobre cómo configurar un servidor proxy, consulte Configuración del servidor proxy.

Aplicaciones cliente y servidor

Azure RBAC usa aplicaciones cliente y servidor de Microsoft Entra para diferentes propósitos. La aplicación cliente se usa para recuperar el token de usuario una vez que el usuario se autentica con el identificador de Microsoft Entra mediante el inicio de sesión interactivo; por ejemplo, a través del flujo de código del dispositivo. La aplicación cliente es un cliente público y también admite un flujo no interactivo para recuperar el token de las entidades de servicio.

La aplicación de servidor es un cliente confidencial y se usa para recuperar los detalles del grupo de seguridad del usuario que ha iniciado sesión para los usuarios de notificación por encima del límite y para comprobar las solicitudes de acceso que devuelven el resultado de autorización que tiene la entidad de seguridad (usuario o SPN) en el clúster de AKS.

Al registrar la aplicación Microsoft Entra, almacena información de configuración en microsoft Entra ID. Esta configuración permite que la aplicación representada por la aplicación Microsoft Entra se autentique en nombre del usuario (o SPN). Una vez autenticada, la aplicación puede usar el identificador de aplicación de Microsoft Entra para acceder a las API en nombre del usuario.

Creación de la aplicación de servidor y la aplicación cliente

Registre la aplicación de servidor y el secreto, y la aplicación cliente y el secreto mediante los pasos siguientes:

Nota:

Estos pasos le dirigen a las tareas clave en Uso de RBAC de Azure para clústeres de Kubernetes habilitados para Azure Arc necesarios para prepararse para la configuración de RBAC de Azure en AKS Arc.

Para realizar estos pasos, debe tener el rol de administrador de aplicaciones integrado en el identificador de Microsoft Entra. Para obtener instrucciones, consulte Asignación de roles de Microsoft Entra a los usuarios.

  1. Cree una aplicación de servidor y un secreto compartido.
  2. Cree una asignación de roles para la aplicación de servidor.
  3. Cree una aplicación cliente. Cuando use kubectl para conectarse dentro de la red, consulte la aplicación cliente.

Concesión de permisos para usuarios en el clúster

Asigne roles para conceder permisos a los usuarios de nombres de entidad de seguridad de servicio (SPN) en el clúster. Use el comando az role assignment.

Para asignar roles en un clúster de Kubernetes, debe tener permiso de propietario en la suscripción, el grupo de recursos o el clúster.

En el ejemplo siguiente se usa az role assignment para asignar el rol Administrador de clústeres de Kubernetes de Azure Arc al grupo de recursos que contiene el clúster. Puede establecer el ámbito del grupo de recursos antes de crear el clúster:

az role assignment create --role "Azure Arc Kubernetes Cluster Admin" --assignee xyz@contoso.com --scope /subscriptions/<subscription id>/resourceGroups/<resource group name>/providers/Microsoft.Kubernetes/connectedClusters/<resource name, aka name of AKS cluster>

Para acceder al clúster a través del método proxy connectedk8s (una de las opciones para comunicarse con el servidor de API), debe tener el ámbito "Rol de usuario de clúster de Kubernetes habilitado para Azure Arc" en la suscripción, el grupo de recursos o el clúster.

El siguiente comando asigna un rol a un grupo en lugar de a un usuario específico (consulte el ejemplo anterior):

az role assignment create --assignee 00000000-0000-0000-0000-000000000000 --role "Azure Arc Kubernetes Cluster Admin" --scope $id

El asignado es el identificador de objeto del grupo Microsoft Entra.

Para obtener más información sobre el rol, consulte esta sección.

Para obtener el identificador de ámbito del clúster o el grupo de recursos, ejecute los siguientes comandos y use :"id":property

az connectedk8s show -g <name of resource group>  
az connectedk8s show -n <name of cluster> -g <name of resource group>

Para ver otros ejemplos, consulte az role assignment.

Para obtener información sobre los roles RBAC de Azure pregenerados para clústeres de Kubernetes habilitados para Arc, consulte Creación de asignaciones de roles para que los usuarios accedan a un clúster. Para obtener una lista de todos los roles integrados disponibles, consulte Roles integrados de Azure.

Paso 1: Crear un SPN y asignar permisos

Use una entidad de servicio de Azure para configurar una cuenta de Automation con los permisos necesarios para crear un clúster de destino con Azure RBAC habilitado.

La creación de un clúster de destino solo requiere privilegios limitados en la suscripción. Se recomienda usar el rol Clúster de Kubernetes: incorporación de Azure Arc. También puede usar el rol Propietario o Colaborador . Para más información, consulte Roles integrados en Azure.

Use el comando de la az ad sp create-for-rbac CLI de Azure para crear el SPN y configurarlo con los permisos necesarios.

En el ejemplo siguiente se asigna el rol Clúster de Kubernetes: incorporación de Azure Arc a la suscripción. Para obtener más información, consulte la referencia de az ad sp comandos:

az ad sp create-for-rbac --role "Kubernetes Cluster - Azure Arc Onboarding" --scopes /subscriptions/<OID of the subscription ID> 

Importante

La salida del comando para az ad sp incluye las credenciales que debe proteger. No incluya estas credenciales en el código ni compruebe las credenciales en el control de código fuente. Para más información, consulte Creación de una entidad de servicio de Azure.

Para más información sobre cómo crear un SPN y asignarle un rol, consulte Creación de una entidad de servicio de Azure.

Paso 2: Crear el objeto de credencial

Para crear un objeto de credencial que se va a usar con el SPN, abra una ventana de PowerShell y ejecute el siguiente comando:

$Credential = Get-Credential

Este comando solicita una contraseña.

Para automatizar la creación del objeto de credencial sin necesidad de entrada manual de contraseña, vea Get-Credential, ejemplo 4. El script incluye una credencial de texto no cifrado, que podría infringir los estándares de seguridad en algunas empresas.

Paso 3: Creación de un clúster de AKS habilitado para RBAC de Azure

Puede crear un clúster habilitado para RBAC de Azure mediante un SPN (opción A) o crear el clúster de forma interactiva (opción B).

Opción A: Creación de un clúster de destino de AKS habilitado para RBAC de Azure mediante un SPN

Para crear un clúster de destino de AKS con Azure RBAC habilitado mediante un SPN:

  1. Si aún no tiene un SPN para usarlo con el clúster de destino, cree el SPN ahora.

  2. Tenga en cuenta que el nuevo SPN se usa una vez al crear el clúster y no requiere la administración de contraseñas.

  3. Abra una ventana de PowerShell en el nodo Local de Azure o en el servidor de Windows donde implemente el clúster y ejecute el siguiente comando:

    New-AksHciCluster -name "<cluster name>"  -enableAzureRBAC -resourceGroup "<resource group name>" -subscriptionID "<subscription ID>" -tenantId "<tenant ID>" -credential $Credential -location "eastus" -appId $SERVER_APP_ID -appSecret $SERVER_APP_SECRET -aadClientId $CLIENT_APP_ID -nodePoolName <name of node pool> 
    

Opción B: Creación de un clúster de destino de AKS habilitado para RBAC de Azure de forma interactiva

Si prefiere crear el clúster de destino habilitado para RBAC de Azure de forma interactiva, siga estos pasos:

  1. Abra una ventana de PowerShell en el nodo Local de Azure o en el servidor de Windows donde implemente el clúster.

  2. Inicie sesión en Azure mediante la ejecución del comando siguiente connect-azaccount -deviceauth :

    connect-azaccount -deviceauth
    

    El sistema solicita la autenticación a través del flujo de código del dispositivo.

  3. Establezca el contexto de suscripción en la suscripción donde se va a crear el clúster de destino:

    Set-AzContext -Subscription "subscriptionName"
    
  4. Cree el clúster de destino de AKS, con RBAC de Azure habilitado:

    New-AksHciCluster -name "<cluster name>"  -enableAzureRBAC -resourceGroup "<name of resource group>"  -location "eastus" -appId $SERVER_APP_ID -appSecret $SERVER_APP_SECRET -aadClientId $CLIENT_APP_ID -nodePoolName <name of node pool> 
    

Paso 4: Conexión al clúster de AKS mediante RBAC de Azure

La configuración de RBAC de Azure en el clúster de AKS ya está completa. Para probar la configuración de Azure RBAC, conéctese al clúster de AKS. RBAC de Azure autentica las conexiones.

Los procedimientos de esta sección usan el connectedk8s método proxy para conectarse a un clúster de AKS y conectarse a un clúster de AKS a través de una red privada.

Conexión al clúster de AKS a través de Internet mediante el connectedk8s método proxy

Use el connectedk8s método proxy para enviar una solicitud de autenticación o autorización desde cualquier lugar de Internet. Al usar este método, se limita a 200 grupos.

Para conectarse a un clúster de AKS mediante el connectedk8s método proxy, realice los pasos siguientes:

  1. Abra una ventana de la CLI de Azure y use az login para conectarse a Azure. Para obtener más información, consulte Inicio de sesión con la CLI de Azure.

  2. Establezca la suscripción de la cuenta de Azure en la suscripción que usó para crear el clúster de AKS si es necesario:

    az account set -subscription "<mySubscription>" 
    
  3. Confirme que está conectado a Azure:

    az account show
    
  4. Inicie el proceso de proxy:

    az connectedk8s proxy -n <cluster name> -g <resource group name>
    
  5. Asegúrese de que la autenticación funciona correctamente mediante el envío de solicitudes al clúster. Deje el terminal que ha conectado desde abierto, abra otra pestaña y envíe las solicitudes al clúster. Debe obtener respuestas basadas en la configuración de RBAC de Azure.

  6. Presione Ctrl+C para cerrar la connectedk8s conexión de proxy.

Conexión al clúster de AKS a través de una red privada

Al conectarse a un clúster de AKS a través de una red privada, no hay ningún límite en el número de grupos que puede usar.

Para recuperar el inicio de sesión kubeconfig de Microsoft Entra en el equipo local y local (por ejemplo, un clúster local de Azure), genere el kubeconfig de Microsoft Entra mediante el siguiente comando. Puede distribuir Microsoft Entra kubeconfig a los usuarios que se conectan desde su equipo cliente. Microsoft Entra kubeconfig no contiene ningún secreto.

Para conectarse a un clúster de AKS a través de una red privada, siga estos pasos:

  1. Descargue el archivo kubeconfig :

    Get-AksHciCredential -Name <cluster name> -aadauth
    
  2. Para iniciar el envío de solicitudes al servidor de API de AKS, ejecute el kubectl comando api-server. Se le pedirán sus credenciales de Microsoft Entra. Es posible que reciba un mensaje de advertencia, pero puede omitirlo.

Actualización al complemento de autenticación kubelogin

Nota:

La información de esta sección se aplica a la versión 1.0.17.10310 y posteriores de AKS. Consulte las notas de la versión para obtener información sobre la versión.

Para proporcionar tokens de autenticación para comunicarse con clústeres de AKS, los clientes kubectl requieren un complemento de autenticación.

Para generar un archivo kubeconfig que requiera el complemento de autenticación binaria de Azure kubelogin.exe, ejecute el siguiente comando de PowerShell:

Get-AksHciCredential -Name <cluster name> -aadauth

Este comando también descarga el archivo binario kubelogin.exe . Para buscar la ubicación del archivo kubelogin.exe , ejecute el siguiente comando:

$workingdir = (Get-AksHciConfig).Akshci.installationPackageDir

Este comando devuelve la ruta de acceso a la que se descarga kubelogin.exe . Copie el archivo kubelogin.exe en el nodo local de Azure o en la máquina cliente. Para Azure Local, copie el archivo en la ruta de acceso tal como se describe en el ejemplo siguiente. Para un equipo cliente, copie el archivo ejecutable en el equipo cliente y agréguelo a la ruta de acceso. Por ejemplo:

cp $workingdir\kubelogin.exe "c:\program files\akshci"

Como alternativa, para descargar kubelogin.exe en el equipo cliente, puede ejecutar el siguiente comando:

wget https://github.com/Azure/kubelogin/releases/download/v0.0.26/kubelogin-win-amd64.zip -OutFile kubelogin-win-amd64.zip

Para más información sobre cómo realizar la conversión al complemento de autenticación kubelogin , consulte la página kubelogin de Azure en GitHub.

Pasos siguientes