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

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

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

  • AKS без авторизации на основе ролей Kubernetes (RBAC)
  • AKS включена с авторизацией Kubernetes RBAC
  • 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.

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

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

  1. Найдите регистрацию клиента для кластера Kubernetes в идентификаторе Microsoft Entra в разделе Идентификатора> Microsoft Entra Регистрация приложений в портал 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 свойство.

Дополнительные сведения о настройке привязки RBAC кластера AKS ClusterRoleBinding см. в статье "Создание привязки Kubernetes RBAC".

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

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