Обновление или смена учетных данных для кластера Служба Azure Kubernetes (AKS)

Кластеры AKS, создаваемые со служебным принципалом, имеют срок действия один год. По мере приближения даты истечения срока действия вы можете сбросить учетные данные, чтобы продлить срок действия учетной записи службы на дополнительный период времени. Кроме того, может потребоваться обновить или повернуть учетные данные в рамках определенной политики безопасности. Кластеры AKS, интегрированные с Microsoft Entra ID в качестве поставщика проверки подлинности, имеют два дополнительных удостоверения: приложение Microsoft Entra Server App и приложение Microsoft Entra Client App. В этой статье описано, как обновить учетную запись службы и учетные данные Microsoft Entra для кластера AKS.

Примечание.

В качестве альтернативы для разрешений можно использовать управляемое удостоверение вместо служебного принципала. Управляемые удостоверения не требуют обновлений или ротаций. Дополнительные сведения см. в разделе Использование управляемых удостоверений.

Прежде чем начать

Необходимо установить и настроить Azure CLI версии 2.0.65 или более поздней. Чтобы узнать версию, выполните команду az --version. Если вам необходимо выполнить установку или обновление, см. статью Установка Azure CLI 2.0.

Обновите существующий или создайте новый сервисный принципал для вашего кластера AKS

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

  • обновить учетные данные для существующего субъекта-службы;
  • Создайте новый служебный принципал и обновите кластер, чтобы использовать эти новые учетные данные.

Предупреждение

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

Проверьте дату истечения срока действия сервисного принципала

Чтобы проверить срок действия служебной учетной записи, используйте команду az ad app credential list. В следующем примере с помощью команды az aks show получается идентификатор служебного принципала для кластера $CLUSTER_NAME в группе ресурсов $RESOURCE_GROUP_NAME. ID основного элемента службы задается как переменная с именем SP_ID.

SP_ID=$(az aks show --resource-group $RESOURCE_GROUP_NAME --name $CLUSTER_NAME \
    --query servicePrincipalProfile.clientId -o tsv)
az ad app credential list --id "$SP_ID" --query "[].endDateTime" -o tsv

Сброс существующих учетных данных служебного принципала

Чтобы обновить учетные данные для существующего субъекта-службы, получите идентификатор субъекта-службы кластера с помощью az aks show команды. В следующем примере возвращается идентификатор кластера $CLUSTER_NAME в группе ресурсов $RESOURCE_GROUP_NAME. Переменная с именем SP_ID сохраняет идентификатор субъекта-службы, используемый на следующем шаге. Эти команды используют язык команд Bash.

Предупреждение

При сбросе учетных данных кластера в кластере AKS, использующем Масштабируемые наборы виртуальных машин Microsoft Azure, выполняется обновление образа узла, чтобы обновить учетные данные для узлов.

SP_ID=$(az aks show --resource-group $RESOURCE_GROUP_NAME --name $CLUSTER_NAME \
    --query servicePrincipalProfile.clientId -o tsv)

Используйте переменную SP_ID, содержащую идентификатор служебного принципала, для сброса учетных данных с помощью команды az ad app credential reset. В следующем примере платформа Azure позволяет создать новый безопасный секрет для субъекта-службы и сохранить его в виде переменной с именем SP_SECRET.

SP_SECRET=$(az ad app credential reset --id "$SP_ID" --query password -o tsv)

Затем вы обновите кластер AKS, используя учетные данные главного идентификатора службы. Этот шаг необходим для обновления сервисного принципала в вашем кластере AKS.

Создание субъекта-службы

Примечание.

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

Чтобы создать основной объект службы и обновить кластер AKS для использования новых учетных данных, используйте команду az ad sp create-for-rbac.

az ad sp create-for-rbac --role Contributor --scopes /subscriptions/$SUBSCRIPTION_ID

Выходные данные аналогичны следующему примеру выходных данных. Запишите свои appId и password, чтобы использовать их на следующем шаге.

{
  "appId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "name": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "password": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "tenant": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}

Определите переменные для идентификатора principal службы и секрета клиента, используя выходные данные выполнения команды az ad sp create-for-rbac. SP_ID это идентификатор приложения, а SP_SECRET — ваш пароль.

SP_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
SP_SECRET=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Затем вы обновите кластер AKS новыми учетными данными служебного принципала. Этот шаг необходим для обновления кластера AKS новыми данными учетной записи принципала службы.

Обновление кластера AKS с учетными данными субъекта-службы

Внимание

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

Обновите кластер AKS новыми или существующими учетными данными, выполнив az aks update-credentials команду.

az aks update-credentials \
    --resource-group $RESOURCE_GROUP_NAME \
    --name $CLUSTER_NAME \
    --reset-service-principal \
    --service-principal "$SP_ID" \
    --client-secret "${SP_SECRET}"

Обновление кластера AKS с помощью новых учетных данных приложения Microsoft Entra

Вы можете создать новый сервер Microsoft Entra и клиентские приложения, выполнив этапы интеграции Microsoft Entra или сбросив существующие приложения Microsoft Entra, используя тот же метод, что и для сброса служебного объекта. После этого необходимо обновить учетные данные приложения кластера Microsoft Entra с помощью команды az aks update-credentials с параметром --reset-aad.

az aks update-credentials \
    --resource-group $RESOURCE_GROUP_NAME \
    --name $CLUSTER_NAME \
    --reset-aad \
    --aad-server-app-id $SERVER_APPLICATION_ID \
    --aad-server-app-secret $SERVER_APPLICATION_SECRET \
    --aad-client-app-id $CLIENT_APPLICATION_ID

Следующие шаги

В этой статье вы узнали, как обновить или сменить учетную запись службы и учетные данные приложения Microsoft Entra. Дополнительные сведения об использовании управляющей идентичности для рабочих нагрузок в кластере AKS см. в рекомендациях по аутентификации и авторизации в AKS.