Включение проверки подлинности управляемого удостоверения Azure для кластеров Kubernetes с помощью kubelogin
Интеграция Microsoft Entra с управляемым AKS упрощает процесс интеграции Microsoft Entra. Ранее необходимо было создать клиентское и серверное приложение, а клиент Microsoft Entra должен был назначить разрешения роли читателей каталогов. Теперь поставщик ресурсов AKS управляет клиентскими и серверными приложениями.
Администраторы кластера могут настроить управление доступом на основе ролей (RBAC) для Kubernetes в зависимости от членства в группе каталогов или удостоверения пользователей. Проверка подлинности Microsoft Entra предоставляется кластерам AKS с помощью OpenID Connect. OpenID Connect представляет собой уровень идентификации на основе протокола OAuth 2.0. Дополнительные сведения о OpenID Connect см. в документации по OpenID Connect.
Дополнительные сведения о потоке интеграции Microsoft Entra см. в документации по Microsoft Entra.
В этой статье содержатся сведения о включении и использовании управляемых удостоверений для ресурсов Azure с кластером AKS.
Ограничения
Ниже приведены ограничения, которые интегрируют проверку подлинности управляемого удостоверения Azure в AKS.
- Интеграция не может быть отключена после добавления.
- Переход с интегрированного кластера на устаревшие кластеры идентификаторов Microsoft Entra ID не поддерживаются.
- Кластеры без поддержки RBAC Kubernetes не могут добавить интеграцию.
Подготовка к работе
Для правильной установки надстройки AKS для управляемого удостоверения необходимо выполнить следующие требования.
- Вы установили и настроили Azure CLI версии 2.29.0 или более поздней. Чтобы узнать версию, выполните команду
az --version
. Если вам необходимо выполнить установку или обновление, см. статью Установка Azure CLI 2.0. - Требуется
kubectl
минимальная версия 1.18.1 илиkubelogin
. С помощью Azure CLI и модуля Azure PowerShell эти две команды включаются и автоматически управляются. Это означает, что они обновляются по умолчанию и выполняютсяaz aks install-cli
не обязательно или рекомендуется. Если вы используете автоматизированный конвейер, необходимо управлять обновлениями для правильной или последней версии. Разница между дополнительными версиями Kubernetes иkubectl
не должна быть более одной версии. В противном случае проблемы проверки подлинности возникают в неправильной версии. - Если вы используете helm, вам нужна минимальная версия helm 3.3.
- Для этой конфигурации требуется группа Microsoft Entra для кластера. Эта группа зарегистрирована в качестве группы администрирования в кластере для предоставления разрешений администратора. Если у вас нет существующей группы Microsoft Entra, ее можно создать с помощью
az ad group create
команды.
Примечание.
Интегрированные кластеры Microsoft Entra с использованием версии Kubernetes, более новой, чем версия 1.24, автоматически используют kubelogin
формат. Начиная с Kubernetes версии 1.24, формат учетных данных clusterUser для кластеров идентификаторов Microsoft Entra ID имеет значение exec
, которое требует kubelogin
двоичного файла в path выполнения. Изменение поведения для кластеров, отличных от Microsoft Entra, или кластеров идентификаторов Microsoft Entra, работающих старше версии 1.24.
Существующие скачанные kubeconfig
продолжают работать. Необязательный формат параметра запроса включается при получении учетных данных clusterUser для перезаписи изменения поведения по умолчанию. Вы можете явно указать формат в Azure , если необходимо сохранить старый kubeconfig
формат.
Включение интеграции в кластере AKS
Создание нового кластера
Создайте группу ресурсов Azure с помощью
az group create
команды.az group create --name myResourceGroup --location centralus
Создайте кластер AKS и включите доступ администрирования для группы Microsoft Entra с помощью
az aks create
команды.az aks create \ --resource-group myResourceGroup \ --name myManagedCluster \ --enable-aad \ --aad-admin-group-object-ids <id> [--aad-tenant-id <id>] \ --generate-ssh-keys
Успешное создание управляемого кластером Идентификатора Microsoft Entra AKS содержит следующий раздел в тексте ответа:
"AADProfile": { "adminGroupObjectIds": [ "5d24****-****-****-****-****afa27aed" ], "clientAppId": null, "managed": true, "serverAppId": null, "serverAppSecret": null, "tenantId": "72f9****-****-****-****-****d011db47" }
Использование имеющегося кластера
Включите интеграцию Microsoft Entra с управляемыми AKS в существующем кластере az aks update
с поддержкой Kubernetes RBAC с помощью команды. Не забудьте задать группу администраторов, чтобы сохранить доступ к кластеру.
az aks update --resource-group MyResourceGroup --name myManagedCluster --enable-aad --aad-admin-group-object-ids <id-1>,<id-2> [--aad-tenant-id <id>]
Успешная активация управляемого кластером Идентификатора Microsoft Entra AKS содержит следующий раздел в тексте ответа:
"AADProfile": {
"adminGroupObjectIds": [
"5d24****-****-****-****-****afa27aed"
],
"clientAppId": null,
"managed": true,
"serverAppId": null,
"serverAppSecret": null,
"tenantId": "72f9****-****-****-****-****d011db47"
}
Перенос устаревшего кластера на интеграцию
Если в кластере используется устаревшая интеграция Microsoft Entra, вы можете выполнить обновление до интеграции Microsoft Entra, управляемой az aks update
AKS, с помощью команды.
Предупреждение
Кластеры уровня "Бесплатный" могут столкнуться со временем простоя сервера API во время обновления. Мы рекомендуем выполнить обновление в нерабочие часы.
После обновления содержимое kubeconfig изменяется. Необходимо выполнить az aks get-credentials --resource-group <AKS resource group name> --name <AKS cluster name>
слияние новых учетных данных в файл kubeconfig.
az aks update --resource-group myResourceGroup --name myManagedCluster --enable-aad --aad-admin-group-object-ids <id> [--aad-tenant-id <id>]
Успешная миграция управляемого кластером Идентификатора Microsoft Entra AKS содержит следующий раздел в тексте ответа:
"AADProfile": {
"adminGroupObjectIds": [
"5d24****-****-****-****-****afa27aed"
],
"clientAppId": null,
"managed": true,
"serverAppId": null,
"serverAppSecret": null,
"tenantId": "72f9****-****-****-****-****d011db47"
}
Доступ к кластеру с поддержкой
Получите учетные данные пользователя для доступа к кластеру
az aks get-credentials
с помощью команды.az aks get-credentials --resource-group myResourceGroup --name myManagedCluster
Следуйте инструкциям для входа.
Установите для
kubelogin
использования Azure CLI.kubelogin convert-kubeconfig -l azurecli
Просмотрите узлы в кластере
kubectl get nodes
с помощью команды.kubectl get nodes
Неинтерактивный вход с помощью kubelogin
Существуют некоторые неинтерактивные сценарии, которые не поддерживаются kubectl
. В этих случаях используйте kubelogin
для подключения к кластеру с учетными данными субъекта-службы, неинтерактивными, для выполнения конвейеров непрерывной интеграции.
Примечание.
Интегрированные кластеры Microsoft Entra с использованием версии Kubernetes, более новой, чем версия 1.24, автоматически используют kubelogin
формат. Начиная с Kubernetes версии 1.24, формат учетных данных clusterUser для кластеров идентификаторов Microsoft Entra ID имеет значение exec
, которое требует kubelogin
двоичного файла в path выполнения. Изменение поведения для кластеров, отличных от Microsoft Entra, или кластеров идентификаторов Microsoft Entra, работающих старше версии 1.24.
Существующие скачанные kubeconfig
продолжают работать. Необязательный формат параметра запроса включается при получении учетных данных clusterUser для перезаписи изменения поведения по умолчанию. Вы можете явно указать формат в Azure , если необходимо сохранить старый kubeconfig
формат.
При получении учетных данных clusterUser можно использовать
format
параметр запроса для перезаписи поведения по умолчанию. Можно задать значениеazure
для использования исходного формата kubeconfig:az aks get-credentials --format azure
Если интегрированный кластер Microsoft Entra использует Kubernetes версии 1.24 или более поздней, необходимо вручную преобразовать формат kubeconfig.
export KUBECONFIG=/path/to/kubeconfig kubelogin convert-kubeconfig
Примечание.
Если появится сообщение об ошибке: подключаемый модуль проверки подлинности Azure удален.Необходимо выполнить команду kubelogin convert-kubeconfig
, чтобы преобразовать формат kubeconfig вручную.
Дополнительные сведения см. в статье об известных проблемах Azure Kubelogin.
Устранение неполадок с доступом
Внимание
Шаг, описанный в этом разделе, предлагает альтернативный метод проверки подлинности по сравнению с обычной проверкой подлинности группы Microsoft Entra. Используйте этот параметр только в чрезвычайных ситуациях.
Если у вас нет административного доступа к допустимой группе Microsoft Entra, можно выполнить это обходное решение. Войдите с помощью учетной записи, являющейся членом роли администратора кластера Служба Azure Kubernetes, и предоставьте учетные данные администратора группы или клиента для доступа к кластеру.
Следующие шаги
- Узнайте об интеграции Microsoft Entra с Kubernetes RBAC.
- Дополнительные сведения об основных принципах идентификации AKS и Kubernetes.
- Узнайте, как использовать kubelogin для всех поддерживаемых методов проверки подлинности Microsoft Entra в AKS.
- Используйте шаблоны Azure Resource Manager (ARM) для создания кластеров с поддержкой идентификатора Microsoft Entra, управляемых AKS.
Azure Kubernetes Service