Partager via


Activer l’intégration microsoft Entra managée par AKS pour les 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 Azure Kubernetes Service (AKS) gère les applications client 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.

Limites

Voici des contraintes pour intégrer l’authentification sur AKS :

  • L’intégration ne peut pas être désactivée après avoir été 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

Pour installer le module complémentaire AKS, vérifiez que vous disposez des éléments suivants :

  • Azure CLI version 2.29.0 ou ultérieure est installé et configuré. Pour connaître la version de l’interface, exécutez la commande az --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 ou kubelogin. 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 de az 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 et kubectl 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 pour les clusters d’ID Microsoft Entra clusterUser est exec, ce qui nécessite le binaire kubelogin dans l’exécution PATH. Il n’existe aucune modification de comportement pour les clusters non-Microsoft Entra ou les clusters d’ID Microsoft Entra 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 format 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 de azure si vous avez besoin de conserver l’ancien format de kubeconfig.

Activer l’intégration sur votre cluster AKS

Créer un cluster

  1. Créez un groupe de ressources Azure à l’aide de la commande az group create.

    az group create --name myResourceGroup --location centralus
    
  2. 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
    

    Une création réussie d’un cluster Microsoft Entra ID géré par AKS comporte la section suivante dans le corps de la réponse.

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

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": [
      "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"
  ],
  "clientAppId": null,
  "managed": true,
  "serverAppId": null,
  "serverAppSecret": null,
  "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
}

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 rencontrer 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. Après la mise à niveau, le kubeconfig contenu change. 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 kubeconfig fichier.

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": [
      "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"
  ],
  "clientAppId": null,
  "managed": true,
  "serverAppId": null,
  "serverAppSecret": null,
  "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
}

Accéder à votre cluster activé

  1. 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
    
  2. Suivez vos instructions de connexion.

  3. Définissez kubelogin pour utiliser Azure CLI.

    kubelogin convert-kubeconfig -l azurecli
    
  4. 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 la version 1.24 de Kubernetes, le format par défaut des identifiants pour les clusters Microsoft Entra ID est clusterUser, ce qui nécessite le binaire exec dans le chemin d'exécution. Il n’existe aucune modification de comportement pour les clusters non-Microsoft Entra ou les clusters d’ID Microsoft Entra 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 format 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 de azure si vous avez besoin de conserver l’ancien format de kubeconfig.

Lorsque vous obtenez les clusterUser informations d’identification, vous pouvez utiliser le format paramètre de requête pour remplacer le comportement par défaut. Vous pouvez définir la valeur à azure pour utiliser le format d'origine kubeconfig.

az aks get-credentials --format azure

Si votre cluster intégré Microsoft Entra utilise Kubernetes version 1.24 ou inférieure, vous devez convertir manuellement le kubeconfig format.

export KUBECONFIG=/path/to/kubeconfig
kubelogin convert-kubeconfig

Si vous recevez l’erreur de message : le plug-in d’authentification Azure a été supprimé., vous devez exécuter la commande kubelogin convert-kubeconfig pour convertir le kubeconfig format manuellement. 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