Смена учетных данных субъекта-службы для кластера 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