Rotieren der Anmeldeinformationen eines Dienstprinzipals für Ihren ARO-Cluster (Azure Red Hat OpenShift)
Der Artikel enthält die erforderlichen Informationen zum Rotieren der Anmeldeinformationen eines Dienstprinzipals in Azure Red Hat OpenShift-Clustern (ARO).
Voraussetzungen
In diesem Artikel wird davon ausgegangen, dass ein ARO-Cluster mit den neuesten Updates vorhanden ist.
Zum Rotieren der Anmeldeinformationen eines Dienstprinzipals in einem ARO-Cluster ist mindestens Azure CLI 2.24.0 erforderlich.
Führen Sie zum Überprüfen der Azure CLI-Version Folgendes aus:
# Azure CLI version
az --version
Befolgen Sie zum Installieren oder Aktualisieren der Azure CLI die Anweisungen unter Installieren der Azure-Befehlszeilenschnittstelle.
In den folgenden Anweisungen wird die Bash-Syntax verwendet.
Rotation der Anmeldeinformationen eines Dienstprinzipals
Wichtig
Die Rotation der Anmeldeinformationen eines Dienstprinzipals kann je nach Clusterzustand mehr als zwei Stunden dauern.
Für die Rotation der Anmeldeinformationen eines Dienstprinzipals gibt es zwei Methoden:
- Automatisierte Rotation der Anmeldeinformationen eines Dienstprinzipals
- Rotation der Anmeldeinformationen eines Dienstprinzipals mit den vom Benutzer bereitgestellten Elementen „client-id“ und „client-secret“
Automatisierte Rotation der Anmeldeinformationen eines Dienstprinzipals
Wichtig
Bei der automatisierten Rotation der Anmeldeinformationen eines Dienstprinzipals muss der ARO-Cluster mit der Azure CLI-Version 2.24.0 oder einer höheren Version erstellt werden.
Bei der automatisierten Rotation der Anmeldeinformationen eines Dienstprinzipals wird überprüft, ob der Dienstprinzipal vorhanden ist, und der Dienstprinzipal wird rotiert bzw. ein neuer Dienstprinzipal erstellt.
Rotieren Sie automatisch die Anmeldeinformationen eines Dienstprinzipals mit dem folgenden Befehl:
# Automatically rotate service principal credentials
az aro update --refresh-credentials --name MyManagedCluster --resource-group MyResourceGroup
Rotation der Anmeldeinformationen eines Dienstprinzipals mit den vom Benutzer bereitgestellten Elementen „client-id“ und „client-secret“
Rotieren Sie die Anmeldeinformationen eines Dienstprinzipals manuell mit der vom Benutzer bereitgestellten Client-ID (client-id) und dem vom Benutzer bereitgestellten Clientgeheimnis (client-secret), indem Sie die folgenden Anweisungen befolgen:
Rufen Sie die Client-ID des Dienstprinzipals (--client-id
) ab, und legen Sie sie als Umgebungsvariable SP_ID
fest.
# Retrieve the service principal clientId
SP_ID=$(az aro show --name MyManagedCluster --resource-group MyResourceGroup \
--query servicePrincipalProfile.clientId -o tsv)
Generieren Sie mithilfe der obigen Variablen --client-secret
ein neues sicheres Geheimnis (SP_ID
) für den Dienstprinzipal. Speichern Sie das neue sichere Geheimnis als Umgebungsvariable SP_SECRET
.
# Generate a new secure secret for the service principal
SP_SECRET=$(az ad sp credential reset --id $SP_ID --query password -o tsv)
Rotieren Sie die Anmeldeinformationen eines Dienstprinzipals mithilfe der oben genannten Umgebungsvariablen.
# Rotate service principal credentials
az aro update --client-id $SP_ID --client-secret $SP_SECRET \
--name MyManagedCluster --resource-group MyResourceGroup
Problembehandlung
Ablaufdatum des Dienstprinzipals
Anmeldeinformationen eines Dienstprinzipals haben ein festgelegtes Ablaufdatum von einem Jahr und sollten innerhalb des angegebenen Zeitraums rotiert werden.
Wenn das Ablaufdatum verstrichen ist, sind die folgenden Fehler möglich:
Failed to refresh the Token for request to MyResourceGroup StatusCode=401
Original Error: Request failed. Status Code = '401'.
[with]
Response body: {"error":"invalid_client","error_description": The provided client secret keys are expired.
[or]
Response body: {"error":"invalid_client","error_description": Invalid client secret is provided.
Führen Sie Folgendes aus, um das Ablaufdatum der Anmeldeinformationen eines Dienstprinzipals zu überprüfen:
# Service principal expiry in ISO 8601 UTC format
SP_ID=$(az aro show --name MyManagedCluster --resource-group MyResourceGroup \
--query servicePrincipalProfile.clientId -o tsv)
az ad app credential list --id $SP_ID --query "[].endDateTime" -o tsv
Wenn die Anmeldeinformationen des Dienstprinzipals abgelaufen sind, aktualisieren Sie sie mithilfe einer der beiden Methoden für die Rotation von Anmeldeinformationen.
Die Cluster-AAD-Anwendung enthält einen geheimen Clientschlüssel mit einer leeren Beschreibung.
Bei der Verwendung der automatisierten Rotation der Anmeldeinformationen eines Dienstprinzipals tritt der folgende Fehler auf:
$ az aro update --refresh-credentials --name MyManagedCluster --resource-group MyResourceGroup
Cluster AAD application contains a client secret with an empty description.
Please either manually remove the existing client secret and run `az aro update --refresh-credentials`,
or manually create a new client secret and run `az aro update --client-secret <ClientSecret>`.
Der Cluster wurde nicht mithilfe von Azure CLI 2.24.0 oder höher erstellt. Verwenden Sie stattdessen die Methode für die Rotation der Anmeldeinformationen eines Dienstprinzipals mit den vom Benutzer bereitgestellten Elementen „client-id“ und „client-secret“.
Azure CLI ARO update help
Ausführlichere Informationen erhalten Sie mit dem Befehl „Azure CLI ARO update help“:
# Azure CLI ARO update help
az aro update -h