Rotacja poświadczeń jednostki usługi dla klastra usługi Azure Red Hat OpenShift (ARO)
Artykuł zawiera szczegółowe informacje dotyczące rotacji poświadczeń jednostki usługi w klastrach Usługi Azure Red Hat OpenShift (ARO).
Zanim rozpoczniesz
W tym artykule przyjęto założenie, że istnieje istniejący klaster ARO z zastosowanymi najnowszymi aktualizacjami.
Minimalne wymagania interfejsu wiersza polecenia platformy Azure dotyczące rotacji poświadczeń jednostki usługi w klastrze ARO to 2.24.0.
Aby sprawdzić wersję interfejsu wiersza polecenia platformy Azure, uruchom następujące polecenie:
# Azure CLI version
az --version
Aby zainstalować lub uaktualnić interfejs wiersza polecenia platformy Azure, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.
Poniższe instrukcje używają składni powłoki bash.
Rotacja poświadczeń jednostki usługi
Ważne
Rotacja poświadczeń jednostki usługi może potrwać do 2 godzin w zależności od stanu klastra.
Rotacja poświadczeń jednostki usługi ma dwie metody:
- Automatyczna rotacja poświadczeń jednostki usługi
- Identyfikator klienta i rotacja poświadczeń jednostki usługi wpisów tajnych klienta
Automatyczna rotacja poświadczeń jednostki usługi
Ważne
Automatyczna rotacja poświadczeń jednostki usługi wymaga utworzenia klastra ARO przy użyciu interfejsu wiersza polecenia platformy Azure w wersji 2.24.0 lub nowszej.
Automatyczna rotacja poświadczeń jednostki usługi sprawdzi, czy jednostka usługi istnieje i obróci lub utworzy nową jednostkę usługi.
Automatyczne obracanie poświadczeń jednostki usługi za pomocą następującego polecenia:
# Automatically rotate service principal credentials
az aro update --refresh-credentials --name MyManagedCluster --resource-group MyResourceGroup
Identyfikator klienta i rotacja poświadczeń jednostki usługi wpisów tajnych klienta
Ręczne obracanie poświadczeń jednostki usługi przy użyciu podanego przez użytkownika identyfikatora klienta i klucza tajnego klienta przy użyciu następujących instrukcji:
Pobierz identyfikator clientId jednostki usługi (--client-id
) i ustaw go jako SP_ID
zmienną środowiskową.
# Retrieve the service principal clientId
SP_ID=$(az aro show --name MyManagedCluster --resource-group MyResourceGroup \
--query servicePrincipalProfile.clientId -o tsv)
Wygeneruj nowy bezpieczny wpis tajny (--client-secret
) dla jednostki usługi przy użyciu powyższej zmiennej SP_ID
. Zapisz nowy bezpieczny wpis tajny jako SP_SECRET
zmienną środowiskową.
# Generate a new secure secret for the service principal
SP_SECRET=$(az ad sp credential reset --id $SP_ID --query password -o tsv)
Obracanie poświadczeń jednostki usługi przy użyciu powyższych zmiennych środowiskowych.
# Rotate service principal credentials
az aro update --client-id $SP_ID --client-secret $SP_SECRET \
--name MyManagedCluster --resource-group MyResourceGroup
Rozwiązywanie problemów
Data wygaśnięcia jednostki usługi
Poświadczenia jednostki usługi mają ustawioną datę wygaśnięcia roku i powinny być obracane w tym przedziale czasu.
Jeśli data wygaśnięcia minęła, możliwe są następujące błędy:
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.
Aby sprawdzić datę wygaśnięcia poświadczeń jednostki usługi, uruchom następujące polecenie:
# 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
Jeśli poświadczenia jednostki usługi wygasły, zaktualizuj przy użyciu jednej z dwóch metod rotacji poświadczeń.
Aplikacja usługi AAD klastra zawiera wpis tajny klienta z pustym opisem
W przypadku korzystania z automatycznej rotacji poświadczeń jednostki usługi wystąpi następujący błąd:
$ 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>`.
Klaster nie został utworzony przy użyciu interfejsu wiersza polecenia platformy Azure w wersji 2.24.0 lub nowszej. Zamiast tego użyj metody rotacji poświadczeń podanych przez użytkownika client-id i client-secret service principal.
Pomoc dotycząca aktualizacji usługi ARO interfejsu wiersza polecenia platformy Azure
Aby uzyskać więcej informacji, zobacz polecenie pomocy dotyczącej aktualizacji interfejsu wiersza polecenia platformy Azure:
# Azure CLI ARO update help
az aro update -h