Поделиться через


Смена учетных данных субъекта-службы для кластера Azure Red Hat OpenShift (ARO)

В этой статье содержатся сведения, необходимые для смены учетных данных субъекта-службы в кластерах Azure Red Hat OpenShift (ARO).

Подготовка к работе

В этой статье предполагается наличие имеющегося кластера ARO с последними примененными обновлениями.

Минимальные требования Azure CLI для смены учетных данных субъекта-службы в кластере ARO — 2.24.0.

Чтобы проверить версию Azure CLI, выполните следующую команду:

# Azure CLI version
az --version

Чтобы установить или обновить Azure CLI, следуйте инструкциям из этой статьи.

В приведенных ниже инструкциях используется синтаксис bash.

Смена учетных данных субъекта-службы

Важно!

В зависимости от состояния кластера для смены учетных данных субъекта-службы может потребоваться до 2 часов.

Существует два метода смены учетных данных субъекта-службы:

Автоматизированная смена учетных данных субъекта-службы

Важно!

Для автоматизации смены учетных данных субъекта-службы требуется создание кластера ARO с помощью Azure CLI версии 2.24.0 или более поздней.

При автоматизированной смене учетных данных субъекта-службы будет проверяться, существует ли субъект-служба и происходит ли смена или создание субъекта.

Автоматически сменить учетные данные субъекта-службы можно с помощью следующей команды:

# Automatically rotate service principal credentials
az aro update --refresh-credentials --name MyManagedCluster --resource-group MyResourceGroup

Смена учетных данных субъекта-службы с помощью предоставленных пользователем идентификатора и секрета клиента

Чтобы вручную сменить учетные данные субъекта-службы с предоставленными пользователем идентификатором и секретом клиента, выполните приведенные ниже инструкции.

Извлеките идентификатор clientId субъекта-службы (--client-id) и задайте его как переменную среды SP_ID.

# Retrieve the service principal clientId
SP_ID=$(az aro show --name MyManagedCluster --resource-group MyResourceGroup \
    --query servicePrincipalProfile.clientId -o tsv)

Создайте защищенный секрет (--client-secret) для субъекта-службы, используя переменную SP_ID, приведенную выше. Сохраните новый безопасный секрет как переменную среды 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)

Меняйте учетные данные субъекта-службы, используя указанные выше переменные среды.

# Rotate service principal credentials
az aro update --client-id $SP_ID --client-secret $SP_SECRET \
    --name MyManagedCluster --resource-group MyResourceGroup

Устранить неполадки

Дата окончания срока действия субъекта-службы

Учетные данные субъекта-службы имеют заданную дату окончания срока действия конкретного года и должны сменяться в течение заданного периода.

Если дата окончания срока действия прошла, возможно возникновение следующих ошибок:

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.

Чтобы проверить дату окончания срока действия учетных данных субъекта-службы, выполните следующую команду:

# 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

Если срок действия учетных данных субъекта-службы истек, обновите их с помощью одного из двух методов смены учетных данных.

Приложение AAD кластера содержит секрет клиента с пустым описанием

При использовании метода автоматизированной смены учетных данных субъекта-службы возникает следующая ошибка:

$ 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>`.

Кластер не был создан с помощью Azure CLI 2.24.0 или более поздней версии. Вместо этого воспользуйтесь методом смены учетных данных субъекта-службы с помощью предоставленных пользователем идентификатора и секрета клиента.

Справка для обновления кластера ARO Azure CLI

Дополнительные сведения см. в описании команды справки для обновления ARO Azure CLI:

# Azure CLI ARO update help
az aro update -h