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

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