Aktivieren der Microsoft Entra ID-Authentifizierung für die AKS-Steuerungsebene

Die Microsoft Entra-Integration vereinfacht den Microsoft Entra-Integrationsprozess. Zuvor mussten Sie eine Client- und Server-App erstellen, und der Microsoft Entra-Mandant musste die Berechtigungen Verzeichnisleseberechtigte zuweisen. Jetzt verwaltet der Azure Kubernetes Service (AKS)-Ressourcenanbieter die Client- und Server-Apps für Sie.

Clusteradministratoren können die rollenbasierte Zugriffssteuerung von Kubernetes (Kubernetes RBAC) auf Grundlage einer Benutzeridentität oder Verzeichnisgruppenmitgliedschaft konfigurieren.

Erfahren Sie mehr über den Microsoft Entra-Integrationsfluss in der Microsoft Entra-Dokumentation.

Einschränkungen

Die Microsoft Entra-Integration kann nicht deaktiviert werden, nachdem sie auf einem Cluster aktiviert wurde.

Bevor Sie anfangen

Um das AKS-Add-On zu installieren, stellen Sie sicher, dass Sie über die folgenden Elemente verfügen:

  • Sie haben Azure CLI-Version 2.29.0 oder höher installiert und konfiguriert. Führen Sie den Befehl az --version aus, um die Version zu ermitteln. Wenn Sie eine Installation oder ein Upgrade durchführen müssen, finden Sie weitere Informationen unter Azure CLI installieren.
  • Sie benötigen kubectl mit einer Mindestversion von 1.18.1 oder mit kubelogin. Bei der Azure CLI und dem Azure PowerShell-Modul werden diese beiden Befehle eingebunden und automatisch verwaltet. Das bedeutet, dass sie standardmäßig aktualisiert werden und die Ausführung von az aks install-cli weder erforderlich ist noch empfohlen wird. Wenn Sie eine automatisierte Pipeline verwenden, müssen Sie sich um Upgrades auf die richtige oder neueste Version kümmern. Der Unterschied zwischen den Nebenversionen von Kubernetes und kubectl sollte höchstens eine Version betragen. Andernfalls treten Authentifizierungsprobleme mit der falschen Version auf.
  • Diese Konfiguration erfordert, dass Sie über eine Microsoft Entra-Gruppe für Ihr Cluster verfügen. Diese Gruppe wird als Administratorgruppe für den Cluster registriert, um Administratorberechtigungen zu erteilen. Wenn Sie nicht über eine Microsoft Entra-Gruppe verfügen, können Sie eine mit dem Befehl az ad group create erstellen.

Aktivieren der Integration in Ihrem AKS-Cluster

Legen Sie zunächst Umgebungsvariablen für die Ressourcengruppe, den Clusternamen, die Gruppen-IDs der Microsoft Entra-Administratorgruppe und die Mandanten-ID fest. Verwenden Sie diese Variablen in den folgenden Befehlen wieder.

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"

Neuen Cluster erstellen

  1. Erstellen Sie eine Azure Ressourcengruppe mithilfe des Befehls az group create.

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  2. Erstellen Sie mit dem Befehl az aks create ein AKS-Cluster und aktivieren Sie den Verwaltungszugriff für Ihre Microsoft Entra-Gruppe.

    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
    

    Eine erfolgreiche Erstellung eines Microsoft Entra ID-Clusters weist den folgenden Abschnitt im Antworttext auf.

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

Verwenden eines vorhandenen Clusters

Aktivieren Sie die Microsoft Entra-Integration in Ihren vorhandenen Kubernetes RBAC-aktivierten Cluster mithilfe des az aks update Befehls. Stellen Sie sicher, dass Ihre Administratorengruppe Zugriff auf Ihren Cluster behält.

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

Eine erfolgreiche Aktivierung eines Microsoft Entra ID-Clusters weist den folgenden Abschnitt im Antworttext auf:

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

Migrieren eines Legacy-Clusters in die Integration

Wenn Ihr Cluster ältere Microsoft Entra-Integration verwendet, können Sie über den Befehl ein Upgrade auf die az aks update Microsoft Entra-Integration durchführen.

Warning

Kostenlose Tiercluster können während des Upgrades API-Serverausfallzeiten erleben. Es wird empfohlen, Upgrades außerhalb der Geschäftszeiten durchzuführen. Nach dem Upgrade ändert sich der kubeconfig Inhalt. Sie müssen az aks get-credentials --resource-group <AKS resource group name> --name <AKS cluster name> ausführen, um dabei die neuen Anmeldeinformationen in die kubeconfig Datei zu integrieren.

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

Eine erfolgreiche Migration eines Microsoft Entra ID-Clusters weist den folgenden Abschnitt im Antworttext auf:

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

Zugreifen auf Ihren aktivierten Cluster

  1. Rufen Sie die Benutzeranmeldeinformationen für den Zugriff auf den Cluster mit dem Befehl az aks get-credentials ab.

    az aks get-credentials --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME
    
  2. Folgen Sie Ihren Anmeldeanweisungen.

  3. Zeigen Sie die Knoten im Cluster mit dem kubectl get nodes-Befehl an.

    kubectl get nodes
    

Cluster, die Kubernetes 1.24 oder höher ausführen, verwenden automatisch das kubelogin exec-Plugin-Format, sodass für die interaktive Azure CLI-Anmeldung keine manuelle kubeconfig Konvertierung erforderlich ist. Informationen zu nicht interaktiven Szenarien wie CI-Pipelines oder zur Verwendung einer anderen Authentifizierungsmethode (Dienstprinzipal, verwaltete Identität, Workloadidentität oder Gerätecode) finden Sie unter Verwenden von Kubelogin zum Authentifizieren von Benutzern in AKS.

Bruchglaszugang

In dem seltenen Fall, dass die Anmeldung der Microsoft Entra-ID beim Kubernetes-API-Server Ihres Clusters nicht funktioniert , z. B. während eines breiteren Microsoft Entra-Dienstvorfalls, können Sie auf das lokale Administratorkonto des Clusters zurückgreifen, um den Cluster weiterhin zu betreiben, bis die entra-basierte Anmeldung wiederhergestellt wird.

Note

Dieser Fallback ist nur erforderlich, wenn die entra-basierte Anmeldung selbst nicht verfügbar ist. Wenn Es sich bei Ihrem Problem um eine falsch konfigurierte Administratorgruppe handelt (z. B. wurde die Gruppe gelöscht oder die falsche Objekt-ID festgelegt), benötigen Sie sie nicht – aktualisieren Sie die Administratorgruppe direkt mit az aks update --aad-admin-group-object-ids einem Konto, das über die Microsoft.ContainerService/managedClusters/write Berechtigung verfügt.

Important

Dieser Workflow umgeht die Microsoft Entra-Authentifizierung. Verwenden Sie es nur als temporäres Fallback, und deaktivieren Sie lokale Konten erneut, sobald die Microsoft Entra-Anmeldung wiederhergestellt wurde.

Um den Unterbrechungsglaspfad zu verwenden, benötigen Sie die Rolle des Azure Kubernetes-Dienstmitwirkenden in der Clusterressource. Diese Rolle gewährt die Microsoft.ContainerService/managedClusters/write Berechtigung, die zum erneuten Aktivieren lokaler Konten erforderlich ist, sowie den Zugriff auf die lokalen Clusteradministratoranmeldeinformationen. Es wird vom Azure Resource Manager ausgewertet, sodass er unabhängig vom Microsoft Entra-Anmeldepfad zum Kubernetes-API-Server funktioniert.

  1. Wenn lokale Konten im Cluster deaktiviert sind, aktivieren Sie sie vorübergehend erneut.

    az aks update --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --enable-local-accounts
    
  2. Rufen Sie die anmeldeinformationen des lokalen Clusteradministrators mithilfe des az aks get-credentials Befehls mit der --admin Kennzeichnung ab. Diese Anmeldeinformationen sind eine zertifikatbasierte Kubeconfig, die Microsoft Entra umgeht.

    az aks get-credentials --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --admin
    
  3. Wird kubectl verwendet, um den Cluster zu betreiben, während Microsoft Entra nicht verfügbar ist. Sobald die Microsoft Entra-Anmeldung erneut funktioniert, deaktivieren Sie lokale Konten , um den Cluster an seine sichere Basislinie zurückzugeben.

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

Nächste Schritte