Habilitación de la autenticación de Azure Managed Identity para clústeres de Kubernetes con kubelogin
La integración de Microsoft Entra administrada por AKS 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 AKS es quien administra las aplicaciones de servidor y cliente.
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. La autenticación de Microsoft Entra se proporciona a los clústeres de AKS con OpenID Connect. OpenID Connect es una capa de identidad creada basándose en el protocolo OAuth 2.0. Para obtener más información sobre OpenID Connect, vea la documentación de OpenID Connect.
Obtenga más información sobre el flujo de integración de Microsoft Entra en la documentación de Microsoft Entra.
En este artículo se proporcionan detalles sobre cómo habilitar y usar identidades administradas para recursos de Azure con el clúster de AKS.
Limitaciones
A continuación se muestran restricciones que integran la autenticación de Azure Managed Identity en AKS.
- La integración no se puede deshabilitar una vez agregada.
- No se admiten las degradaciones de un clúster integrado a los clústeres heredados de Microsoft Entra ID.
- Los clústeres sin compatibilidad con RBAC de Kubernetes no pueden agregar la integración.
Antes de empezar
Es necesario cumplir los siguientes requisitos para instalar correctamente el complemento de AKS para la identidad administrada.
- Tiene la CLI de Azure versión 2.29.0 o posterior instalada y configurada. Ejecute
az --version
para encontrar la versión. Si necesita instalarla o actualizarla, vea Instalación de la CLI de Azure. - Necesita
kubectl
con la versión 1.18.1 okubelogin
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ónaz 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 ykubectl
no debe ser superior a una versión. De lo contrario, los problemas de autenticación se producen en la versión incorrecta. - Si usa Helm, necesita una versión mínima de Helm 3.3.
- 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
.
Nota:
Los clústeres integrados de Microsoft Entra con una versión de Kubernetes más reciente que la versión 1.24 usan automáticamente el formato kubelogin
. A partir de la versión 1.24 de Kubernetes, el formato predeterminado de la credencial clusterUser para los clústeres de Microsoft Entra ID es exec
, que requiere kubelogin
binario en la ruta de acceso de ejecución. No hay ningún cambio de comportamiento para clústeres que no son de Microsoft Entra o clústeres de Microsoft Entra ID que ejecutan una versión anterior a la 1.24.
La descarga existente kubeconfig
sigue funcionando. Se incluye un formato de parámetro de consulta opcional al obtener la credencial clusterUser para sobrescribir el cambio de comportamiento predeterminado. Puede especificar explícitamente el formato en Azure si necesita mantener el formato anterior kubeconfig
.
Habilitación de la integración en el clúster de AKS
Creación de un clúster
Cree un grupo de recursos de Azure con el comando
az group create
.az group create --name myResourceGroup --location centralus
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 myResourceGroup \ --name myManagedCluster \ --enable-aad \ --aad-admin-group-object-ids <id> [--aad-tenant-id <id>] \ --generate-ssh-keys
Una creación correcta de un clúster de Microsoft Entra ID administrado por AKS tiene la siguiente sección en el cuerpo de la respuesta:
"AADProfile": { "adminGroupObjectIds": [ "5d24****-****-****-****-****afa27aed" ], "clientAppId": null, "managed": true, "serverAppId": null, "serverAppSecret": null, "tenantId": "72f9****-****-****-****-****d011db47" }
Uso de un clúster existente
Habilite la integración de Microsoft Entra administrada por AKS en el clúster habilitado para RBAC de Kubernetes existente mediante el comando az aks update
. Asegúrese de establecer el grupo de administradores para mantener el acceso al clúster.
az aks update --resource-group MyResourceGroup --name myManagedCluster --enable-aad --aad-admin-group-object-ids <id-1>,<id-2> [--aad-tenant-id <id>]
Una activación correcta de un clúster de Microsoft Entra ID administrado por AKS tiene la siguiente sección en el cuerpo de la respuesta:
"AADProfile": {
"adminGroupObjectIds": [
"5d24****-****-****-****-****afa27aed"
],
"clientAppId": null,
"managed": true,
"serverAppId": null,
"serverAppSecret": null,
"tenantId": "72f9****-****-****-****-****d011db47"
}
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 administrada por AKS mediante el comando az aks update
.
Advertencia
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 contenido de kubeconfig cambia. Debe ejecutar az aks get-credentials --resource-group <AKS resource group name> --name <AKS cluster name>
para combinar las nuevas credenciales en el archivo kubeconfig.
az aks update --resource-group myResourceGroup --name myManagedCluster --enable-aad --aad-admin-group-object-ids <id> [--aad-tenant-id <id>]
Una migración correcta de un clúster de Microsoft Entra ID administrado por AKS tiene la siguiente sección en el cuerpo de la respuesta:
"AADProfile": {
"adminGroupObjectIds": [
"5d24****-****-****-****-****afa27aed"
],
"clientAppId": null,
"managed": true,
"serverAppId": null,
"serverAppSecret": null,
"tenantId": "72f9****-****-****-****-****d011db47"
}
Acceso al clúster habilitado
Obtenga las credenciales de usuario para acceder al clúster usando el comando
az aks get-credentials
.az aks get-credentials --resource-group myResourceGroup --name myManagedCluster
Siga las instrucciones para iniciar sesión.
Establezca
kubelogin
para usar la CLI de Azure.kubelogin convert-kubeconfig -l azurecli
Use el comando
kubectl get nodes
para visualizar los nodos del clúster.kubectl get nodes
Inicio de sesión no interactivo con kubelogin
Hay algunos escenarios no interactivos que no admiten kubectl
. En estos casos, use kubelogin
para conectarse al clúster con una credencial de entidad de servicio no interactiva para realizar canalizaciones de integración continua.
Nota:
Los clústeres integrados de Microsoft Entra con una versión de Kubernetes más reciente que la versión 1.24 usan automáticamente el formato kubelogin
. A partir de la versión 1.24 de Kubernetes, el formato predeterminado de la credencial clusterUser para los clústeres de Microsoft Entra ID es exec
, que requiere kubelogin
binario en la ruta de acceso de ejecución. No hay ningún cambio de comportamiento para clústeres que no son de Microsoft Entra o clústeres de Microsoft Entra ID que ejecutan una versión anterior a la 1.24.
La descarga existente kubeconfig
sigue funcionando. Se incluye un formato de parámetro de consulta opcional al obtener la credencial clusterUser para sobrescribir el cambio de comportamiento predeterminado. Puede especificar explícitamente el formato en Azure si necesita mantener el formato anterior kubeconfig
.
Al obtener la credencial clusterUser, puede usar el parámetro de consulta
format
para sobrescribir el cambio de comportamiento predeterminado. Puede establecer el valor enazure
para usar el formato kubeconfig original:az aks get-credentials --format azure
Si el clúster integrado de Microsoft Entra usa la versión 1.24 o inferior de Kubernetes, debe convertir manualmente el formato kubeconfig.
export KUBECONFIG=/path/to/kubeconfig kubelogin convert-kubeconfig
Nota:
Si recibe el mensaje de error: Se ha quitado el complemento de autenticación de Azure. Debe ejecutar el comando kubelogin convert-kubeconfig
para convertir el formato kubeconfig manualmente.
Para más información, puede consultar Problemas conocidos de Azure Kubelogin.
Solución de problemas de acceso
Importante
El paso descrito en esta sección sugiere un método de autenticación alternativo en comparación con la autenticación normal del grupo de Microsoft Entra. Use esta opción solo en caso de emergencia.
Si no tiene acceso de administrador a un grupo de Microsoft Entra válido, puede usar esta solución alternativa. Inicie sesión con una cuenta que sea miembro del rol Administrador de clústeres de Azure Kubernetes Service y conceda al grupo o inquilino credenciales de administrador para acceder al clúster.
Pasos siguientes
- Obtenga información sobre integración de Microsoft Entra con RBAC de Kubernetes.
- Obtenga más información sobre los conceptos de identidad de Kubernetes y AKS.
- Obtenga información sobre cómo usar kubelogin para todos los métodos de autenticación admitidos de Microsoft Entra en AKS.
- Use plantillas de Azure Resource Manager (ARM) para crear clústeres habilitados para Microsoft Entra ID administrados por AKS.
Azure Kubernetes Service