Прочитать на английском

Поделиться через


Настройка динамических данных в аналитике контейнеров

Чтобы просмотреть живые данные с помощью Container insights из кластеров Azure Kubernetes Service (AKS), настройте проверку подлинности, чтобы предоставить разрешение на доступ к данным Kubernetes. Такая конфигурация безопасности обеспечивает доступ к данным в режиме реального времени через API Kubernetes на портале Azure.

Эта функция поддерживает следующие методы для управления доступом к журналам, событиям и метрикам:

  • AKS без включенной авторизации на основе ролей Kubernetes (RBAC)
  • Включение AKS с авторизацией Kubernetes RBAC
    • AKS, сконфигурированный с привязкой к роли кластера clusterMonitoringUser
  • AKS активирован по технологии единой аутентификации на основе SAML от Microsoft Entra

Эти инструкции требуют административного доступа к кластеру Kubernetes. Если вы настраиваете использование идентификатора Microsoft Entra для проверки подлинности пользователей, вам также нужен административный доступ к идентификатору Microsoft Entra.

В этой статье описана настройка проверки подлинности для управления доступом функций интерактивных данных из кластера:

  • Кластер AKS с поддержкой Kubernetes с поддержкой RBAC
  • Интегрированный кластер Microsoft Entra AKS

Модель проверки подлинности

Функция Live Data использует API Kubernetes, который идентичен инструменту командной строки kubectl. Конечные точки API Kubernetes используют самозаверяющий сертификат, который браузер не сможет проверить. Эта функция использует внутренний прокси-сервер для проверки сертификата со службой AKS, обеспечивая доверие трафика.

В портале Azure появится запрос на проверку ваших учетных данных для входа в кластер Microsoft Entra ID. Он перенаправляет вас на настройку регистрации клиента во время создания кластера (и перенастраивается в этой статье). Такое поведение аналогично процессу проверки подлинности, которую требует kubectl.

Примечание

Авторизация в кластере управляется Kubernetes и моделью безопасности, с помощью которую она настроена. Для доступа к этой функции пользователям требуется разрешение на скачивание конфигурации Kubernetes (kubeconfig), которая аналогична выполнению az aks get-credentials -n {your cluster name} -g {your resource group}.

Этот файл конфигурации содержит токен авторизации и аутентификации для роли пользователя кластера Azure Kubernetes Service, в случае включения Azure RBAC и кластеров AKS без авторизации Kubernetes RBAC. Он содержит информацию об идентификаторе Microsoft Entra и регистрационных данных клиента, когда AKS настроен с использованием однократной аутентификации на основе Microsoft Entra SAML.

Пользователям этой функции требуется роль пользователя кластера Azure Kubernetes для доступа к кластеру для скачивания kubeconfig и использования этой функции. Пользователям не требуется доступ участника к кластеру для использования этой функции.

Используйте clusterMonitoringUser с кластерами, в которых включена поддержка Kubernetes RBAC.

Чтобы устранить необходимость внесения дополнительных изменений в конфигурацию для разрешения доступа к функции Live Data через привязку роли пользователя Kubernetes после включения авторизации RBAC Kubernetes, AKS добавила новую привязку роли кластера Kubernetes под названием clusterMonitoringUser. Эта привязка роли кластера имеет все необходимые разрешения из коробки для доступа к API Kubernetes и конечным точкам для использования функции работы с актуальными данными.

Чтобы использовать функцию Live Data с этим новым пользователем, необходимо быть членом роли Azure Kubernetes Service Cluster User или содействующего в ресурсе кластера 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.

  1. Скопируйте и вставьте ФАЙЛ 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
    
  2. Чтобы обновить конфигурацию, выполните команду 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, ознакомьтесь с документом Интеграция Microsoft Entra ID со службой Azure Kubernetes и следуйте шагам по настройке аутентификации Microsoft Entra. Во время действий по созданию клиентского приложения в этом разделе выделены два URL-адреса перенаправления, которые необходимо создать для аналитики контейнеров, соответствующие указанным на шаге 3.

Перенастройка регистрации клиента

  1. Найдите регистрацию клиента для вашего кластера Kubernetes в Microsoft Entra ID в разделе Microsoft Entra ID>Регистрация приложений на портале Azure.

  2. На левой панели выберите "Проверка подлинности".

  3. Добавьте в этот список два 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.

  4. После регистрации 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.

Для получения дополнительной помощи по настройке вашего кластера AKS, см. статью ClusterRoleBinding, "Создание привязки Kubernetes RBAC".

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

Теперь, когда вы настроили проверку подлинности, вы можете просматривать метрики и события и журналы в реальном времени из своего кластера.


Дополнительные ресурсы