Activer l’authentification d’identité managée Azure pour des clusters Kubernetes avec kubelogin
L’intégration Microsoft Entra gérée par AKS simplifie le processus d’intégration de Microsoft Entra. Auparavant, vous deviez créer une application cliente et une application serveur, et le tenant Microsoft Entra devait attribuer des autorisations de rôle Lecteur de répertoire. À présent, le fournisseur de ressources AKS gère les applications cliente et serveur pour vous.
Les administrateurs de cluster peuvent configurer le contrôle d’accès en fonction du rôle Kubernetes (RBAC Kubernetes) en se basant sur l’identité ou l’appartenance à un groupe d’annuaires de l’utilisateur. L’authentification Microsoft Entra est fournie aux clusters AKS à l’aide d’OpenID Connect. OpenID Connect est une couche d’identité basée sur le protocole OAuth 2.0. Pour plus d’informations sur OpenID Connect, consultez la Documentation sur OpenID Connect.
En savoir plus sur le flux d’intégration de Microsoft Entra dans la DocumentationMicrosoft Entra.
Cet article explique comment activer et utiliser des identités managées pour les ressources Azure avec votre cluster AKS.
Limites
Les contraintes suivantes intègrent l’authentification d’identité managée Azure sur AKS.
- L’intégration ne peut pas être désactivée une fois ajoutée.
- Les rétrogradations d’un cluster intégré vers les clusters Microsoft Entra ID hérités ne sont pas prises en charge.
- Les clusters sans prise en charge RBAC Kubernetes ne peuvent pas ajouter l’intégration.
Avant de commencer
Vous devez répondre aux exigences suivantes pour installer correctement le module complémentaire AKS pour une identité managée.
- Azure CLI version 2.29.0 ou ultérieure est installé et configuré. Exécutez
az --version
pour trouver la version. Si vous devez installer ou mettre à niveau, voir Installer Azure CLI. - Vous avez besoin de
kubectl
avec une version minimale de 1.18.1 oukubelogin
. Avec Azure CLI et le module Azure PowerShell, ces deux commandes sont incluses et gérées automatiquement. Cela signifie qu’elles sont mises à niveau par défaut et que l’exécution deaz aks install-cli
n’est pas obligatoire ni recommandée. Si vous utilisez un pipeline automatisé, vous devez gérer les mises à niveau vers la version correcte ou la plus récente. La différence entre les versions mineures de Kubernetes etkubectl
ne doit pas être supérieure à une version. Sinon, des problèmes d’authentification se produisent sur la version incorrecte. - Si vous utilisez helm, la version minimale dont vous avez besoin est 3.3.
- Cette configuration nécessite que vous disposiez d’un groupe Microsoft Entra pour votre cluster. Ce groupe est inscrit en tant que groupe des administrateurs sur le cluster pour accorder des autorisations d’administrateur. Si vous n’avez pas de groupe Microsoft Entra existant, vous pouvez en créer un à l’aide de la commande
az ad group create
.
Remarque
Les clusters intégrés Microsoft Entra utilisant une version Kubernetes plus récente que la version 1.24 utilisent automatiquement le format kubelogin
. À compter de Kubernetes version 1.24, le format par défaut des informations d’identification clusterUser pour les clusters Microsoft Entra ID est exec
, ce qui nécessite un binaire kubelogin kubelogin
dans l’exécution PATH. Il n’existe aucune modification de comportement pour les clusters non Microsoft Entra ou les clusters Microsoft Entra ID exécutant une version antérieure à la version 1.24.
Le téléchargement kubeconfig
existant continue de fonctionner. Un format de paramètre de requête facultatif est inclus lors de l'obtention de l'accréditation clusterUser pour remplacer le changement de comportement par défaut. Vous pouvez spécifier explicitement le format azure si vous devez conserver l’ancien format kubeconfig
.
Activer l’intégration sur votre cluster AKS
Créer un cluster
Créez un groupe de ressources Azure à l’aide de la commande
az group create
.az group create --name myResourceGroup --location centralus
Créer un cluster AKS et activer l’accès administrateur pour votre groupe Microsoft Entra à l’aide de la commande
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
Lorsqu’un cluster Microsoft Entra managé par AKS a bien été créé, vous voyez la section suivante dans le corps de la réponse :
"AADProfile": { "adminGroupObjectIds": [ "5d24****-****-****-****-****afa27aed" ], "clientAppId": null, "managed": true, "serverAppId": null, "serverAppSecret": null, "tenantId": "72f9****-****-****-****-****d011db47" }
Utiliser un cluster existant
Activer l’intégration Microsoft Entra managée par AKS sur votre cluster avec RBAC Kubernetes existant à l’aide de la commande az aks update
. Veillez à définir votre groupe d’administration pour conserver l’accès à votre cluster.
az aks update --resource-group MyResourceGroup --name myManagedCluster --enable-aad --aad-admin-group-object-ids <id-1>,<id-2> [--aad-tenant-id <id>]
Lorsqu’un cluster Microsoft Entra managé par AKS a bien été activé, vous voyez la section suivante dans le corps de la réponse :
"AADProfile": {
"adminGroupObjectIds": [
"5d24****-****-****-****-****afa27aed"
],
"clientAppId": null,
"managed": true,
"serverAppId": null,
"serverAppSecret": null,
"tenantId": "72f9****-****-****-****-****d011db47"
}
Migrer un cluster hérité vers l’intégration
Si votre cluster utilise l’intégration Microsoft Entra héritée, vous pouvez effectuer une mise à niveau vers l’intégration Microsoft Entra managée par AKS au moyen de la commande az aks update
.
Avertissement
Les clusters de niveau Gratuit peuvent subir un temps d’arrêt du serveur d’API pendant la mise à niveau. Nous vous recommandons de procéder à la mise à niveau en dehors des heures de bureau.
Le contenu kubeconfig change après la migration. Vous devez exécuter az aks get-credentials --resource-group <AKS resource group name> --name <AKS cluster name>
pour fusionner les nouvelles informations d’identification dans le fichier kubeconfig.
az aks update --resource-group myResourceGroup --name myManagedCluster --enable-aad --aad-admin-group-object-ids <id> [--aad-tenant-id <id>]
Lorsqu’un cluster Microsoft Entra managé par AKS a bien été migré, vous voyez la section suivante dans le corps de la réponse :
"AADProfile": {
"adminGroupObjectIds": [
"5d24****-****-****-****-****afa27aed"
],
"clientAppId": null,
"managed": true,
"serverAppId": null,
"serverAppSecret": null,
"tenantId": "72f9****-****-****-****-****d011db47"
}
Accéder à votre cluster activé
Récupérez les informations d’identification d’utilisateur pour accéder à votre cluster à l’aide de la commande
az aks get-credentials
.az aks get-credentials --resource-group myResourceGroup --name myManagedCluster
Suivez les instructions pour vous connecter.
Définissez
kubelogin
pour utiliser Azure CLI.kubelogin convert-kubeconfig -l azurecli
Exécutez la commande
kubectl get nodes
pour voir les nœuds figurant dans le cluster.kubectl get nodes
Connexion non interactive avec kubelogin
Il existe certains scénarios non interactifs qui ne prennent pas en charge kubectl
. Dans ce cas, utilisez kubelogin
pour vous connecter au cluster avec des informations d’identification de principal de service non interactives pour effectuer des pipelines d’intégration continue.
Remarque
Les clusters intégrés Microsoft Entra utilisant une version Kubernetes plus récente que la version 1.24 utilisent automatiquement le format kubelogin
. À compter de Kubernetes version 1.24, le format par défaut des informations d’identification clusterUser pour les clusters Microsoft Entra ID est exec
, ce qui nécessite un binaire kubelogin kubelogin
dans l’exécution PATH. Il n’existe aucune modification de comportement pour les clusters non Microsoft Entra ou les clusters Microsoft Entra ID exécutant une version antérieure à la version 1.24.
Le téléchargement kubeconfig
existant continue de fonctionner. Un format de paramètre de requête facultatif est inclus lors de l'obtention de l'accréditation clusterUser pour remplacer le changement de comportement par défaut. Vous pouvez spécifier explicitement le format azure si vous devez conserver l’ancien format kubeconfig
.
Lorsque vous obtenez les informations d’identification clusterUser, vous pouvez utiliser le paramètre de requête
format
pour remplacer le comportement par défaut. Vous pouvez définir la valeur surazure
pour utiliser le format kubeconfig d’origine :az aks get-credentials --format azure
Si votre cluster intégré Microsoft Entra utilise Kubernetes version 1.24 ou antérieure, vous devez convertir manuellement le format kubeconfig.
export KUBECONFIG=/path/to/kubeconfig kubelogin convert-kubeconfig
Remarque
Si vous recevez le message Erreur : Le plug-in d’authentification Azure a été supprimé., vous devez exécuter la commande kubelogin convert-kubeconfig
pour convertir manuellement le format kubeconfig.
Pour plus d’informations, consultez Problèmes connus d’Azure Kubelogin.
Résoudre les problèmes d’accès
Important
L’étape décrite dans cette section suggère une autre méthode d’authentification par rapport à l’authentification de groupe Microsoft Entra normale. Utilisez cette option uniquement en cas d’urgence.
Si vous ne disposez pas d’un accès administratif à un groupe Microsoft Entra valide, vous pouvez suivre cette solution de contournement. Connectez-vous avec un compte membre du rôle Administrateur de cluster Azure Kubernetes Service et octroyez à votre administrateur de groupe ou de tenant les informations d’identification permettant d’accéder à votre cluster.
Étapes suivantes
- Découvrir l’intégration Microsoft Entra à Kubernetes RBAC.
- Apprenez-en davantage sur les concepts d’identité AKS et Kubernetes.
- Découvrez comment utiliser kubelogin pour toutes les méthodes d’authentification Microsoft Entra prises en charge dans AKS.
- Utilisez les modèles ARM (Azure Resource Manager) pour créer des clusters avec Microsoft Entra ID managés par AKS.
Azure Kubernetes Service