Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Подключаемый модуль kubelogin в Azure — это плагин учетных данных, который реализует аутентификацию Microsoft Entra. Подключаемый модуль kubelogin предлагает функции, недоступные в средстве командной строки kubectl. Дополнительные сведения см. в кубелогин введение и кубектл введение.
В этой статье приведены общие сведения и примеры использования kubelogin для всех поддерживаемых методов проверки подлинности Microsoft Entra в AKS.
Ограничения проверки подлинности Kubelogin в AKS
- Группы, созданные в Microsoft Entra, включаются только по значению ObjectID , а не по отображаемого имени. Эта
sAMAccountNameкоманда доступна только для групп, синхронизированных из локальной среды Windows Server Active Directory.
- Метод проверки подлинности кода устройства не работает, если политика условного доступа Microsoft Entra устанавливается в клиенте Microsoft Entra. В этом сценарии используйте интерактивную проверку подлинности в веб-браузере.
- Метод проверки подлинности Azure CLI работает только с Microsoft Entra.
Принцип действия проверки подлинности
Примечание.
Имейте в виду следующие сведения о проверке подлинности kubelogin для кластеров AKS, интегрированных с Microsoft Entra:
- Кластеры под управлением Kubernetes версии 1.24 или более поздней версии автоматически используют формат kubelogin.
- Для кластеров под управлением Kubernetes 1.24 или более ранних версий требуется преобразование вручную. Для преобразования файла kubeconfig в использование формата exec-плагина можно использовать метод аутентификации с кодом устройства.
Для большинства взаимодействий с kubelogin используется convert-kubeconfig подкоманда. В подкомандах используется файл kubeconfig, указанный в --kubeconfig переменной среды или в KUBECONFIG переменной среды, для преобразования окончательного файла kubeconfig в формат exec на основе указанного метода проверки подлинности.
Методы аутентификации, которые реализует kubelogin, используют потоки токенов Microsoft Entra OAuth 2.0. В каждом методе проверки подлинности маркер не кэширован в файловой системе.
Проверка подлинности кода устройства
Код устройства — это метод проверки подлинности по умолчанию для подкоманды convert-kubeconfig. Этот метод проверки подлинности запрашивает код устройства, чтобы пользователь мог войти через браузер.
Примечание.
До появления плагинов kubelogin и exec метод аутентификации Azure в kubectl поддерживал только поток кода устройства. Он использовал более раннюю версию библиотеки, которая создает токен с утверждением audience, имеющим префикс spn:. Он не совместим с Microsoft Entra, который использует поток от имени (OBO). При выполнении подкоманды convert-kubeconfig, kubelogin удаляет префикс spn: из поля аудитории.
Параметры проверки подлинности кода устройства
В следующей таблице приведены параметры, которые можно использовать при проверке подлинности кода устройства:
| Параметр | Description |
|---|---|
-l devicecode (необязательно) |
Указывает метод проверки подлинности kubelogin. Этот параметр является необязательным, так как код устройства является методом по умолчанию. |
--legacy |
Использует устаревшее поведение для более ранних версий кластеров Azure Active Directory. Если вы используете файл kubeconfig в более ранней версии кластера Azure Active Directory, kubelogin автоматически добавляет --legacy флаг. |
--token-cache-dir |
Переопределяет путь по умолчанию к каталогу кэша токенов, который равен ${HOME}/.kube/cache/kubelogin. |
Проверка подлинности Azure CLI
Метод проверки подлинности Azure CLI (команда -l azurecli) использует контекст, созданный Azure CLI при входе в систему, для получения токена доступа. Маркер выдается в том же клиенте Microsoft Entra, что и az login. kubelogin не записывает маркеры в файл кэша маркеров, так как Azure CLI уже управляет ими.
Параметры проверки подлинности Azure CLI
В следующей таблице приведены параметры, которые можно использовать с проверкой подлинности Azure CLI:
| Параметр | Description |
|---|---|
-l azurecli |
Указывает метод проверки подлинности kubelogin. |
--azure-config-dir |
Указывает каталог конфигурации Azure CLI. Каталог по умолчанию — ${HOME}/.azure. |
Вход в Azure
Войдите в Azure с помощью команды az login.
az login
Интерактивная проверка подлинности в веб-браузере
Интерактивный метод проверки подлинности в веб-браузере (команда:) -l interactiveавтоматически открывает веб-браузер для входа пользователя. После проверки подлинности пользователя браузер перенаправляется на локальный веб-сервер с помощью проверенных учетных данных. Этот метод проверки подлинности соответствует политике условного доступа.
С помощью этого метода проверки подлинности можно использовать маркер носителя или маркер проверки подлинности (PoP).
Параметры проверки подлинности маркера носителя
В следующей таблице приведены параметры, которые можно использовать с проверкой подлинности маркера носителя:
| Параметр | Description |
|---|---|
-l interactive |
Указывает метод проверки подлинности kubelogin. |
--token-cache-dir |
Переопределяет путь по умолчанию к каталогу кэша токенов, который равен ${HOME}/.kube/cache/kubelogin. |
Параметры проверки подлинности маркера PoP
В следующей таблице приведены параметры, которые можно использовать с проверкой подлинности маркера PoP:
| Параметр | Description |
|---|---|
-l interactive |
Указывает метод проверки подлинности kubelogin. |
--pop-enabled |
Включает проверку подлинности маркера PoP. |
--pop-claims |
Указывает утверждения токена PoP в формате пары "ключ-значение". Например, u=/ARM/ID/OF/CLUSTER. |
Аутентификация служебного принципала
Метод аутентификации сервисного принципала (команда -l spn) использует учетную запись службы для входа пользователя. Вы можете предоставить учетные данные, задав переменную среды или используя учетные данные в аргументе командной строки. Поддерживаемые учетные данные, которые можно использовать, являются паролем или сертификатом клиента PFX.
Параметры проверки подлинности служебного принципала
В следующей таблице приведены параметры, которые можно использовать с аутентификацией сервисного принципала.
| Параметр | Description |
|---|---|
-l spn |
Указывает метод проверки подлинности kubelogin. |
--client-id |
Идентификатор приложения (client-id) сервисного субъекта. |
--client-secret |
Секрет клиента субъекта-службы. |
Аутентификация управляемой идентификации
Используйте метод проверки подлинности управляемого удостоверения (команда: -l msi) для приложений, которые подключаются к ресурсам, поддерживающим проверку подлинности Microsoft Entra. Примеры включают доступ к ресурсам Azure, таким как виртуальная машина Azure, масштабируемый набор виртуальных машин или Azure Cloud Shell.
Вы можете использовать управляемое удостоверение по умолчанию, назначенное ресурсу или определенному управляемому удостоверению, назначенному пользователем.
Параметры для проверки подлинности управляемого удостоверения
В следующей таблице приведены параметры, которые можно использовать с аутентификацией управляемой идентификацией.
| Параметр | Description |
|---|---|
-l msi |
Указывает метод проверки подлинности kubelogin. |
--client-id |
Идентификатор приложения (client-id) управляемой идентичности, назначенной пользователем. Если этот параметр не указан, используется управляемое удостоверение по умолчанию. |
Аутентификация идентификации рабочей нагрузки
Метод проверки подлинности рабочей нагрузки (команда: -l workloadidentity) использует удостоверяющие учетные данные, которые интегрированы с Microsoft Entra, для аутентификации доступа к кластерам AKS. Этот метод использует встроенную проверку подлинности Microsoft Entra. Он работает, задав следующие переменные среды:
| Variable | Description |
|---|---|
AZURE_CLIENT_ID |
Идентификатор приложения Microsoft Entra, объединённый с удостоверением рабочей нагрузки. |
AZURE_TENANT_ID |
Идентификатор клиента Microsoft Entra. |
AZURE_FEDERATED_TOKEN_FILE |
Файл, содержащий подписанное утверждение удостоверения рабочей нагрузки, например маркер проецируемой учетной записи службы Kubernetes (JWT). |
AZURE_AUTHORITY_HOST |
Базовый URL-адрес центра Microsoft Entra. Например, https://login.microsoftonline.com/. |
Вы можете использовать удостоверение рабочей нагрузки для доступа к кластерам Kubernetes из систем CI/CD, таких как GitHub или ArgoCD, без хранения учетных данных служебного принципала во внешних системах. Сведения о настройке федерации OpenID Connect (OIDC) из GitHub см. в примере федерации OpenID Connect (OIDC).
Параметры проверки подлинности удостоверения рабочей нагрузки
В следующей таблице приведены параметры, которые можно использовать с проверкой подлинности удостоверения рабочей нагрузки:
| Параметр | Description |
|---|---|
-l workloadidentity |
Указывает метод проверки подлинности kubelogin. |
Экспорт пути к файлу kubeconfig
Перед запуском подкоманды convert-kubeconfig, экспортируйте путь к файлу kubeconfig в переменную среды KUBECONFIG. Рассмотрим пример.
export KUBECONFIG=/path/to/kubeconfig
Преобразование файла kubeconfig
Запустите подкоманду convert-kubeconfig, чтобы преобразовать файл kubeconfig и использовать плагин exec с выбранным методом аутентификации.
kubelogin convert-kubeconfig
kubelogin convert-kubeconfig -l azurecli
# Bearer token authentication
kubelogin convert-kubeconfig -l interactive
# Proof-of-Possession (PoP) token authentication
kubelogin convert-kubeconfig -l interactive --pop-enabled --pop-claims "u=/ARM/ID/OF/CLUSTER"
- Использование переменных среды
- Использование аргументов командной строки
- Использование сертификата клиента
- Использование маркера PoP с переменными среды
Запустите подкоманду
convert-kubeconfig, чтобы преобразовать файл kubeconfig для использования подключаемого модуля exec.kubelogin convert-kubeconfig -l spnЗадайте переменные среды для идентификатора клиента и секрета клиента или сертификата клиента. Рассмотрим пример.
export AZURE_CLIENT_ID=<service-principal-client-id> export AZURE_CLIENT_SECRET=<service-principal-client-secret>
# Default managed identity authentication
kubelogin convert-kubeconfig -l msi
# Specific managed identity authentication
kubelogin convert-kubeconfig -l msi --client-id <managed-identity-client-id>
kubelogin convert-kubeconfig -l workloadidentity
Удаление кэшированных маркеров
Удалите кэшированные маркеры с помощью kubelogin remove-tokens команды.
kubelogin remove-tokens
Получение сведений о узле
Получите сведения об узле с помощью команды kubectl get.
kubectl get nodes
Как использовать kubelogin с AKS
AKS использует пару сторонних приложений Microsoft Entra. Эти идентификаторы приложений одинаковы во всех средах.
Идентификатор приложения сервера Microsoft Entra AKS (server-id), который используется 6dae42f8-4368-4678-94ff-3960e28e3630на стороне сервера. Токен доступа, который получает доступ к кластерам AKS, должен быть выдан для этого приложения. В большинстве методов проверки подлинности kubelogin необходимо использовать --server-id с kubelogin get-token.
Идентификатор клиентского приложения Microsoft Entra AKS (client-id), который kubelogin использует, чтобы выполнять аутентификацию общедоступного клиента от имени пользователя, — это 80faf920-1908-4b52-b5ef-a8e7bedfc67a. Идентификатор клиентского приложения используется в коде устройства и методах интерактивной проверки подлинности в веб-браузере.
Связанный контент
- Узнайте, как интегрировать AKS с Microsoft Entra в статье об интеграции Microsoft Entra .
- Сведения о начале работы с управляемыми удостоверениями в AKS см. в статье "Использование управляемого удостоверения в AKS".
- Сведения о начале работы с удостоверениями рабочей нагрузки в AKS см. в статье "Использование удостоверения рабочей нагрузки в AKS".