Habilitación de la autenticación de Microsoft Entra ID para el plano de control de AKS

La integración de Microsoft Entra simplifica el proceso de integración de Microsoft Entra. Anteriormente, era necesario crear una aplicación cliente y servidor, y el inquilino de Microsoft Entra tenía que asignar permisos de rol de Lector de directorio. Ahora, el proveedor de recursos de Azure Kubernetes Service (AKS) administra las aplicaciones cliente y servidor.

Los administradores de clústeres pueden configurar el control de acceso basado en rol de Kubernetes (RBAC de Kubernetes) en función de la identidad de un usuario o la pertenencia a grupos de directorios.

Obtenga más información sobre el flujo de integración de Microsoft Entra en la documentación de Microsoft Entra.

Limitations

La integración de Microsoft Entra no se puede deshabilitar después de habilitarla en un clúster.

Antes de empezar

Para instalar el complemento de AKS, compruebe que tiene los siguientes elementos:

  • Tiene la CLI de Azure versión 2.29.0 o posterior instalada y configurada. Para encontrar la versión, ejecute el comando az --version. Si necesita instalar o actualizar, consulte Install Azure CLI.
  • Necesita kubectl con la versión 1.18.1 o kubelogin como mínimo. Con la CLI de Azure y el módulo Azure PowerShell, estos dos comandos se incluyen y administran automáticamente. Es decir, se actualizan de forma predeterminada y la ejecución az aks install-cli no es necesaria ni recomendada. Si usa una canalización automatizada, debe administrar la actualización a la versión correcta o más reciente. La diferencia entre las versiones secundarias de Kubernetes y kubectl no debe ser superior a una versión. De lo contrario, los problemas de autenticación se producen en la versión incorrecta.
  • Esta configuración requiere que tenga un grupo de Microsoft Entra para el clúster. Este grupo se registrará como grupo de administración en el clúster para conceder permisos de administrador. Si no tiene un grupo de Microsoft Entra existente, puede crear uno mediante el comando az ad group create.

Habilitación de la integración en el clúster de AKS

En primer lugar, establezca variables de entorno para el grupo de recursos, el nombre del clúster, los identificadores de objeto del grupo de administración de Microsoft Entra y el identificador de inquilino. Vuelva a usar estas variables en los comandos siguientes.

export RESOURCE_GROUP="myResourceGroup"
export CLUSTER_NAME="myManagedCluster"
export AAD_ADMIN_GROUP_OBJECT_IDS="<group-object-id>"  # comma-separated for multiple groups
export AAD_TENANT_ID="<tenant-id>"
export LOCATION="centralus"

Creación de un clúster

  1. Cree un grupo de recursos de Azure con el comando az group create.

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  2. Cree un clúster de AKS y habilite el acceso de administración para el grupo de Microsoft Entra mediante el comando az aks create.

    az aks create \
      --resource-group $RESOURCE_GROUP \
      --name $CLUSTER_NAME \
      --enable-aad \
      --aad-admin-group-object-ids $AAD_ADMIN_GROUP_OBJECT_IDS \
      --aad-tenant-id $AAD_TENANT_ID \
      --generate-ssh-keys
    

    Una creación exitosa de un clúster de Microsoft Entra ID tiene la siguiente sección en el cuerpo de la respuesta.

    "AADProfile": {
      "adminGroupObjectIds": [
      "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"
      ],
      "clientAppId": null,
      "managed": true,
      "serverAppId": null,
      "serverAppSecret": null,
      "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
    }
    

Uso de un clúster existente

Habilite la integración de Microsoft Entra en el clúster habilitado para RBAC de Kubernetes existente mediante el az aks update comando . Asegúrese de establecer el grupo de administradores para mantener el acceso al clúster.

az aks update \
  --resource-group $RESOURCE_GROUP \
  --name $CLUSTER_NAME \
  --enable-aad \
  --aad-admin-group-object-ids $AAD_ADMIN_GROUP_OBJECT_IDS \
  --aad-tenant-id $AAD_TENANT_ID

Una activación exitosa de un clúster de Microsoft Entra ID tiene la siguiente sección en el cuerpo de la respuesta:

"AADProfile": {
  "adminGroupObjectIds": [
      "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"
  ],
  "clientAppId": null,
  "managed": true,
  "serverAppId": null,
  "serverAppSecret": null,
  "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
}

Migración del clúster heredado a la integración

Si el clúster usa la integración heredada de Microsoft Entra, puede actualizar a la integración de Microsoft Entra mediante el az aks update comando .

Warning

Los clústeres de nivel gratis pueden experimentar tiempo de inactividad del servidor de API durante la actualización. Se recomienda actualizar durante las horas que no son de negocio. Después de la actualización, el kubeconfig contenido cambia. Debe ejecutar az aks get-credentials --resource-group <AKS resource group name> --name <AKS cluster name> para combinar las nuevas credenciales en el kubeconfig archivo.

az aks update \
  --resource-group $RESOURCE_GROUP \
  --name $CLUSTER_NAME \
  --enable-aad \
  --aad-admin-group-object-ids $AAD_ADMIN_GROUP_OBJECT_IDS \
  --aad-tenant-id $AAD_TENANT_ID

Una migración correcta de un clúster de Id. de Microsoft Entra tiene la siguiente sección en el cuerpo de la respuesta:

"AADProfile": {
  "adminGroupObjectIds": [
      "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"
  ],
  "clientAppId": null,
  "managed": true,
  "serverAppId": null,
  "serverAppSecret": null,
  "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
}

Acceso al clúster habilitado

  1. Obtenga las credenciales de usuario para acceder al clúster usando el comando az aks get-credentials.

    az aks get-credentials --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME
    
  2. Siga las instrucciones de inicio de sesión.

  3. Use el comando kubectl get nodes para visualizar los nodos del clúster.

    kubectl get nodes
    

Los clústeres que ejecutan Kubernetes 1.24 o posterior usan automáticamente el formato exec-plugin, por lo que no se necesita ninguna conversión manual kubelogin para el inicio de sesión interactivo de la kubeconfig CLI de Azure. Para escenarios no interactivos, como canalizaciones de integración continua (CI), o para utilizar un método de autenticación diferente (entidad de servicio, identidad administrada, identidad de carga de trabajo o código de dispositivo), consulte Utilizar kubelogin para autenticar usuarios en AKS.

Acceso de emergencia

En el caso excepcional de que el inicio de sesión de Id. de Microsoft Entra en el servidor de API de Kubernetes del clúster no funcione (por ejemplo, durante un incidente de servicio de Microsoft Entra más amplio), puede revertir a la cuenta de administrador local del clúster para mantener el funcionamiento del clúster hasta que se restaure el inicio de sesión basado en Entra.

Note

Esta alternativa solo es necesaria en caso de que el inicio de sesión basado en Entra no esté disponible. Si su problema es un grupo de administración mal configurado (por ejemplo, el grupo fue eliminado o se estableció el ID de objeto incorrecto), no se necesita: actualice el grupo de administración directamente con az aks update --aad-admin-group-object-ids usando una cuenta que tenga el permiso Microsoft.ContainerService/managedClusters/write.

Importante

Este flujo de trabajo omite la autenticación de Microsoft Entra. Úselo solo como reserva temporal y deshabilite de nuevo las cuentas locales una vez que se restaure el inicio de sesión de Microsoft Entra.

Para usar la ruta de acceso de emergencia, necesita el rol Colaborador de Azure Kubernetes Service en el recurso de clúster. Este rol concede el Microsoft.ContainerService/managedClusters/write permiso necesario para volver a habilitar las cuentas locales, además de tener acceso a la credencial de administrador del clúster local. Se evalúa mediante Azure Resource Manager, por lo que funciona de manera independiente al proceso de inicio de sesión de Microsoft Entra hacia el servidor API de Kubernetes.

  1. Si las cuentas locales están deshabilitadas en el clúster, vuelva a habilitarlas temporalmente.

    az aks update --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --enable-local-accounts
    
  2. Recupere la credencial de administrador de clúster local mediante el comando az aks get-credentials con la bandera --admin. Esta credencial es una kubeconfig basada en certificados que omite Microsoft Entra.

    az aks get-credentials --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --admin
    
  3. Use kubectl para operar el clúster mientras Microsoft Entra no está disponible. Una vez que el inicio de sesión de Microsoft Entra vuelva a funcionar, deshabilite las cuentas locales para devolver el clúster a su línea base segura.

    az aks update --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --disable-local-accounts
    

Pasos siguientes