Настройка динамических данных в аналитике контейнеров
Чтобы просмотреть динамические данные с помощью аналитики контейнеров из кластеров Служба Azure Kubernetes (AKS), настройте проверку подлинности, чтобы предоставить разрешение на доступ к данным Kubernetes. Такая конфигурация безопасности обеспечивает доступ к данным в режиме реального времени через API Kubernetes на портале Azure.
Эта функция поддерживает следующие методы для управления доступом к журналам, событиям и метрикам:
- AKS без авторизации на основе ролей Kubernetes (RBAC)
- AKS включена с авторизацией Kubernetes RBAC
- AKS с привязкой к роли кластера clusterMonitoringUser
- AKS включен с помощью единого входа на основе Microsoft Entra SAML
Эти инструкции требуют административного доступа к кластеру Kubernetes. Если вы настраиваете использование идентификатора Microsoft Entra для проверки подлинности пользователей, вам также нужен административный доступ к идентификатору Microsoft Entra.
В этой статье описана настройка проверки подлинности для управления доступом функций интерактивных данных из кластера:
- Кластер AKS с поддержкой Kubernetes с поддержкой RBAC
- Интегрированный кластер AKS Microsoft Entra
Модель проверки подлинности
Функция Live Data использует API Kubernetes, который идентичен средству командной kubectl
строки. Конечные точки API Kubernetes используют самозаверяющий сертификат, который браузер не сможет проверить. Эта функция использует внутренний прокси-сервер для проверки сертификата со службой AKS, обеспечивая доверие трафика.
В портал Azure появится запрос на проверку учетных данных для входа в кластер идентификатора Microsoft Entra. Он перенаправляет вас на настройку регистрации клиента во время создания кластера (и перенастройка в этой статье). Такое поведение аналогично процессу проверки подлинности, которую требует kubectl
.
Примечание.
Авторизация в кластере управляется Kubernetes и моделью безопасности, с помощью которую она настроена. Для доступа к этой функции пользователям требуется разрешение на скачивание конфигурации Kubernetes (kubeconfig), которая аналогична выполнению az aks get-credentials -n {your cluster name} -g {your resource group}
.
Этот файл конфигурации содержит маркер авторизации и проверки подлинности для роли пользователя кластера Служба Azure Kubernetes, если кластеры Azure RBAC включены и кластеры AKS без авторизации Kubernetes RBAC. Он содержит сведения об идентификаторе и регистрации клиента Microsoft Entra, если AKS включен с помощью единого входа на основе Microsoft Entra SAML.
Пользователям этой функции требуется роль пользователя кластера Azure Kubernetes для доступа к кластеру для скачивания kubeconfig
и использования этой функции. Пользователям не требуется доступ участника к кластеру для использования этой функции.
Использование clusterMonitoringUser с кластерами с поддержкой Kubernetes RBAC
Чтобы устранить необходимость применения дополнительных изменений конфигурации, чтобы разрешить кластеру привязки роли пользователя Kubernetes доступ к функции Live Data после включения авторизации RBAC Kubernetes AKS добавил новую привязку роли кластера Kubernetes с именем clusterMonitoringUser. Эта привязка роли кластера имеет все необходимые разрешения из поля для доступа к API Kubernetes и конечным точкам для использования функции динамических данных.
Чтобы использовать функцию Live Data с этим новым пользователем, необходимо быть членом роли Служба Azure Kubernetes пользователя кластера или участника в ресурсе кластера AKS. Аналитика контейнеров, если включена, настроена для проверки подлинности с помощью clusterMonitoringUser
по умолчанию. Если привязка clusterMonitoringUser
роли не существует в кластере, clusterUser используется для проверки подлинности. Участник предоставляет доступ clusterMonitoringUser
(если он существует), а пользователь кластера Служба Azure Kubernetes предоставляет доступ к clusterUser. Любая из двух ролей предоставляет достаточный доступ для использования этой функции.
AKS выпустила эту новую привязку ролей в январе 2020 года, поэтому кластеры, созданные до января 2020 года, не имеют его. Если у вас есть кластер, созданный до января 2020 года, новый кластерMonitoringUser можно добавить в существующий кластер, выполнив операцию PUT в кластере. Кроме того, вы можете выполнить любую другую операцию в кластере, которая выполняет операцию PUT в кластере, например обновление версии кластера.
Кластер Kubernetes без поддержки RBAC Kubernetes
Если у вас есть кластер Kubernetes, который не настроен с авторизацией Kubernetes RBAC или интегрирован с единым входом Microsoft Entra, вам не нужно выполнять следующие действия. У вас уже есть административные разрешения по умолчанию в конфигурации, отличной от RBAC.
Настройка авторизации RBAC Kubernetes
Если включить авторизацию Kubernetes RBAC, clusterUser и clusterAdmin используются для доступа к API Kubernetes. Эта конфигурация аналогична выполнению az aks get-credentials -n {cluster_name} -g {rg_name}
без параметра администрирования. Поэтому кластеруUser необходимо предоставить доступ к конечным точкам в API Kubernetes.
В следующем примере показано, как настроить привязку роли кластера из этого шаблона конфигурации YAML.
Скопируйте и вставьте ФАЙЛ YAML и сохраните его как LogReaderRBAC.yaml.
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: containerHealth-log-reader rules: - apiGroups: ["", "metrics.k8s.io", "extensions", "apps"] resources: - "pods/log" - "events" - "nodes" - "pods" - "deployments" - "replicasets" verbs: ["get", "list"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: containerHealth-read-logs-global roleRef: kind: ClusterRole name: containerHealth-log-reader apiGroup: rbac.authorization.k8s.io subjects: - kind: User name: clusterUser apiGroup: rbac.authorization.k8s.io
Чтобы обновить конфигурацию, выполните команду
kubectl apply -f LogReaderRBAC.yaml
.
Примечание.
Если вы применили предыдущую версию файла LogReaderRBAC.yaml к кластеру, обновите его путем копирования и вставки нового кода, показанного на шаге 1. Затем выполните команду, показанную на шаге 2, чтобы применить ее к кластеру.
Настройка интегрированной проверки подлинности Microsoft Entra
Кластер AKS, настроенный для использования идентификатора Microsoft Entra для проверки подлинности пользователя, использует учетные данные входа пользователя, обращающегося к этой функции. В этой конфигурации вы можете войти в кластер AKS с помощью маркера проверки подлинности Microsoft Entra.
Регистрация клиента Microsoft Entra должна быть перенастроена, чтобы разрешить портал Azure перенаправлять страницы авторизации в качестве url-адреса доверенного перенаправления. Затем пользователи из идентификатора Microsoft Entra получают доступ непосредственно к тем же конечным точкам API Kubernetes через ClusterRoles и ClusterRoleBindings.
Дополнительные сведения о настройке расширенных функций безопасности в Kubernetes см. в Документации по Kubernetes.
Примечание.
Если вы создаете новый кластер с поддержкой Kubernetes RBAC, ознакомьтесь с Служба Azure Kubernetes интеграции идентификатора Microsoft Entra и выполните действия по настройке проверки подлинности Microsoft Entra. Во время действий по созданию клиентского приложения в этом разделе выделены два URL-адреса перенаправления, которые необходимо создать для аналитики контейнеров, соответствующие указанным на шаге 3.
Перенастройка регистрации клиента
Найдите регистрацию клиента для кластера Kubernetes в идентификаторе Microsoft Entra в разделе Идентификатора> Microsoft Entra Регистрация приложений в портал Azure.
На левой панели выберите "Проверка подлинности".
Добавьте в этот список два URL-адреса перенаправления в качестве типов веб-приложений. Первое базовое значение URL-адреса должно быть
https://afd.hosting.portal.azure.net/monitoring/Content/iframe/infrainsights.app/web/base-libs/auth/auth.html
. Второе базовое значение URL-адреса должно бытьhttps://monitoring.hosting.portal.azure.net/monitoring/Content/iframe/infrainsights.app/web/base-libs/auth/auth.html
.Примечание.
Если вы используете эту функцию в Microsoft Azure под управлением 21Vianet, то первое базовое значение URL-адреса должно быть
https://afd.hosting.azureportal.chinaloudapi.cn/monitoring/Content/iframe/infrainsights.app/web/base-libs/auth/auth.html
. Второе базовое значение URL-адреса должно бытьhttps://monitoring.hosting.azureportal.chinaloudapi.cn/monitoring/Content/iframe/infrainsights.app/web/base-libs/auth/auth.html
.После регистрации URL-адресов перенаправления в разделе "Неявное предоставление" выберите параметры маркеров доступа и маркеров идентификаторов. Сохраните изменения.
Вы можете настроить проверку подлинности с помощью идентификатора Microsoft Entra для единого входа только во время первоначального развертывания нового кластера AKS. Вы не можете настроить единый вход для кластера AKS, который уже развернут.
Внимание
Если вы перенастроили идентификатор Microsoft Entra для проверки подлинности пользователей с помощью обновленного URI, снимите кэш браузера, чтобы убедиться, что обновленный маркер проверки подлинности скачан и применен.
Предоставление разрешения
Каждая учетная запись Microsoft Entra должна быть предоставлена разрешения соответствующим API в Kubernetes для доступа к функции Live Data. Действия, которые необходимо предоставить учетной записи Microsoft Entra, аналогичны действиям, описанным в разделе проверки подлинности Kubernetes RBAC. Перед применением шаблона конфигурации YAML к кластеру замените clusterUser в clusterRoleBinding нужным пользователем.
Внимание
Если пользователь, которому предоставлена привязка Kubernetes RBAC, находится в том же клиенте Microsoft Entra, назначьте разрешения на userPrincipalName
основе. Если пользователь находится в другом клиенте Microsoft Entra, выполните запрос и используйте objectId
свойство.
Дополнительные сведения о настройке привязки RBAC кластера AKS ClusterRoleBinding см. в статье "Создание привязки Kubernetes RBAC".
Следующие шаги
Теперь, когда вы настроили проверку подлинности, вы можете просматривать метрики и события и журналы в реальном времени из кластера.