Aktualisieren oder Rotieren der Anmeldeinformationen für einen Azure Kubernetes Service-Cluster (AKS)

AKS-Cluster, die mit einem Dienstprinzipal erstellt wurden, haben eine Ablaufzeit von einem Jahr. Wenn Sie sich dem Ablaufdatum nähern, können Sie die Anmeldeinformationen zurücksetzen, um den Dienstprinzipal um einen zusätzlichen Zeitraum zu verlängern. Sie können die Anmeldeinformationen auch im Rahmen einer definierten Sicherheitsrichtlinie aktualisieren oder rotieren. AKS-Cluster, die als Authentifizierungsanbieter in Microsoft Entra ID integriert sind, verfügen über zwei weitere Identitäten: die Microsoft Entra-Server-App und die Microsoft Entra-Client-App. In diesem Artikel erfahren Sie, wie Sie den Dienstprinzipal und die Microsoft Entra-Anmeldeinformationen für einen AKS-Cluster aktualisieren.

Hinweis

Sie können anstelle eines Dienstprinzipals auch eine verwaltete Identität für Berechtigungen verwenden. Verwaltete Identitäten erfordern keine Updates oder Rotationen. Weitere Informationen finden Sie unter Verwenden verwalteter Identitäten.

Voraussetzungen

Azure CLI-Version 2.0.65 oder höher muss installiert und konfiguriert sein. Führen Sie az --version aus, um die Version zu ermitteln. Informationen zum Durchführen einer Installation oder eines Upgrades finden Sie bei Bedarf unter Installieren der Azure CLI.

Aktualisieren oder Erstellen eines neuen Dienstprinzipals für Ihren AKS-Cluster

Wenn Sie die Anmeldeinformationen für einen AKS-Cluster aktualisieren möchten, haben Sie folgende Möglichkeiten:

  • Aktualisieren der Anmeldeinformationen für den vorhandenen Dienstprinzipal.
  • Erstellen eines neuen Dienstprinzipals und Aktualisieren des Clusters zur Verwendung der neuen Anmeldeinformationen.

Warnung

Wenn Sie einen neuen Dienstprinzipal erstellen möchten, warten Sie etwa 30 Minuten, bis die Dienstprinzipalberechtigung in alle Regionen weitergegeben wurde. Die Aktualisierung eines großen AKS-Clusters für die Verwendung dieser Anmeldeinformationen kann sehr viel Zeit in Anspruch nehmen.

Überprüfen des Ablaufdatums Ihres Dienstprinzipals

Um das Ablaufdatum Ihres Dienstprinzipals zu überprüfen, verwenden Sie den Befehl az ad app credential list. Das folgende Beispiel ruft die Dienstprinzipal-ID für den $CLUSTER_NAME Cluster in der $RESOURCE_GROUP_NAME Ressourcengruppe mithilfe des az aks show Befehls ab. Die Dienstprinzipal-ID wird als Variable mit dem Namen SP_ID festgelegt.

SP_ID=$(az aks show --resource-group $RESOURCE_GROUP_NAME --name $CLUSTER_NAME \
    --query servicePrincipalProfile.clientId -o tsv)
az ad app credential list --id "$SP_ID" --query "[].endDateTime" -o tsv

Zurücksetzen der vorhandenen Dienstprinzipal-Anmeldeinformationen

Um die Anmeldeinformationen für einen vorhandenen Dienstprinzipal zu aktualisieren, rufen Sie über den Befehl az aks show die Dienstprinzipal-ID für Ihren Cluster ab. Das folgende Beispiel ruft die ID für den $CLUSTER_NAME Cluster in der $RESOURCE_GROUP_NAME Ressourcengruppe ab. In der Variablen SP_ID ist die Dienstprinzipal-ID gespeichert, die im nächsten Schritt verwendet wird. Diese Befehle verwenden die Bash-Befehlssprache.

Warnung

Wenn Sie Ihre Clusteranmeldeinformationen auf einem AKS-Cluster zurücksetzen, der Azure Virtual Machine Scale Sets verwendet, wird ein Knotenimageupgrade durchgeführt, um Ihre Knoten mit den neuen Anmeldeinformationen zu aktualisieren.

SP_ID=$(az aks show --resource-group $RESOURCE_GROUP_NAME --name $CLUSTER_NAME \
    --query servicePrincipalProfile.clientId -o tsv)

Verwenden Sie die Variable SP_ID, die die Dienstprinzipal-ID enthält, um die Anmeldeinformationen mithilfe des Befehls az ad app credential reset zurückzusetzen. Im folgenden Beispiel kann die Azure-Plattform ein neues sicheres Geheimnis für den Dienstprinzipal generieren und als Variable namens SP_SECRET speichern.

SP_SECRET=$(az ad app credential reset --id "$SP_ID" --query password -o tsv)

Als Nächstes aktualisieren Sie den AKS-Cluster mit Dienstprinzipal-Anmeldeinformationen. Dieser Schritt ist erforderlich, um den Dienstprinzipal in Ihrem AKS-Cluster zu aktualisieren.

Erstellen eines neuen Dienstprinzipals

Hinweis

Wenn Sie die vorhandenen Anmeldeinformationen für den Dienstprinzipal im vorherigen Abschnitt aktualisiert haben, überspringen Sie diesen Abschnitt, und aktualisieren Sie stattdessen den AKS-Cluster mit Dienstprinzipal-Anmeldeinformationen.

Verwenden Sie den Befehl az ad sp create-for-rbac, um einen Dienstprinzipal zu erstellen und den AKS-Cluster für die Verwendung der neuen Anmeldeinformationen zu aktualisieren.

az ad sp create-for-rbac --role Contributor --scopes /subscriptions/$SUBSCRIPTION_ID

Die Ausgabe sieht in etwa wie das folgende Beispiel aus. Notieren Sie sich die eigene appId und das password, die im nächsten Schritt verwendet werden.

{
  "appId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "name": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "password": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "tenant": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}

Definieren Sie Variablen für die Dienstprinzipal-ID und den geheimen Clientschlüssel, indem Sie die Ausgabe der Ausführung des Befehls az ad sp create-for-rbac verwenden. Der Wert SP_ID steht für die App-ID, der Wert SP_SECRET gibt Ihr Kennwort an.

SP_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
SP_SECRET=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Als Nächstes aktualisieren Sie den AKS-Cluster mit den neuen Dienstprinzipal-Anmeldeinformationen. Dieser Schritt ist erforderlich, um den AKS-Cluster mit den neuen Dienstprinzipal-Anmeldeinformationen zu aktualisieren.

Aktualisieren des AKS-Clusters mit Dienstprinzipal-Anmeldeinformationen

Wichtig

Bei großen Clustern kann die Aktualisierung Ihres AKS-Clusters mit einem neuen Dienstprinzipal viel Zeit in Anspruch nehmen. Erwägen Sie die Überprüfung und Anpassung der Upgradeeinstellungen für Knotenspitzen, um Unterbrechungen während des Updates zu minimieren. Bei kleinen und mittelgroßen Clustern dauert es einige Minuten, bis die neuen Anmeldeinformationen im Cluster aktualisiert sind.

Aktualisieren Sie den AKS-Cluster mit Ihren neuen oder vorhandenen Anmeldeinformationen, indem Sie den Befehl az aks update-credentials ausführen.

az aks update-credentials \
    --resource-group $RESOURCE_GROUP_NAME \
    --name $CLUSTER_NAME \
    --reset-service-principal \
    --service-principal "$SP_ID" \
    --client-secret "${SP_SECRET}"

Aktualisieren eines AKS-Clusters mit neuen Microsoft Entra-Anwendungsanmeldeinformationen

Sie können neue Microsoft Entra-Serveranwendungen und -Clientanwendungen erstellen, indem Sie die Schritte zur Microsoft Entra-Integration ausführen oder Ihre vorhandenen Microsoft Entra-Anwendungen mit der gleichen Methode wie beim Zurücksetzen des Dienstprinzipals zurücksetzen. Danach müssen Sie die Microsoft Entra-Anwendungsanmeldeinformationen für Ihren Cluster mit dem Befehl az aks update-credentials und den –reset-aad-Variablen aktualisieren.

az aks update-credentials \
    --resource-group $RESOURCE_GROUP_NAME \
    --name $CLUSTER_NAME \
    --reset-aad \
    --aad-server-app-id $SERVER_APPLICATION_ID \
    --aad-server-app-secret $SERVER_APPLICATION_SECRET \
    --aad-client-app-id $CLIENT_APPLICATION_ID

Nächste Schritte

In diesem Artikel haben Sie erfahren, wie Sie Anmeldeinformationen für Dienstprinzipale und Microsoft Entra-Anwendungen aktualisieren oder rotieren. Weitere Informationen zum Verwenden einer verwalteten Identität für Workloads in einem AKS-Cluster finden Sie unter Bewährte Methode für die Authentifizierung und Autorisierung in Azure Kubernetes Service (AKS).