Configuración de datos en directo en Container Insights

Para ver datos en directo con Container Insights desde clústeres de Azure Kubernetes Service (AKS), configure la autenticación para conceder permiso de acceso a los datos de Kubernetes. Esta configuración de seguridad permite el acceso en tiempo real a los datos mediante la API de Kubernetes directamente en Azure Portal.

Esta característica admite los métodos siguientes para controlar el acceso a los registros, eventos y métricas:

  • AKS sin la autorización de control de acceso basado en rol (RBAC) de Kubernetes habilitada
  • AKS habilitado con autorización de RBAC de Kubernetes
  • AKS habilitado con inicio de sesión único basado en SAML de Microsoft Entra

Estas instrucciones requieren acceso administrativo al clúster de Kubernetes. Si va a configurar el uso de Microsoft Entra ID para la autenticación de usuarios, también necesita acceso administrativo a Microsoft Entra ID.

En este artículo se explica cómo configurar la autenticación para controlar el acceso a la característica de datos en directo desde el clúster:

  • Clúster de AKS habilitado para RBAC de Kubernetes
  • Clúster de AKS integrado en Microsoft Entra

Modelo de autenticación

La característica de datos en directo usa la API de Kubernetes, la cual es idéntica a la herramienta de línea de comandos kubectl. Los puntos de conexión de la API de Kubernetes usan un certificado autofirmado, que no podrá validar el explorador. Esta característica emplea un proxy interno para validar el certificado con el servicio AKS, asegurándose de que se confía en el tráfico.

Azure Portal le pide que valide las credenciales de inicio de sesión de un clúster de Microsoft Entra ID. Le redirige a la configuración del registro de cliente durante la creación del clúster (y se vuelve a configurar en este artículo). Este comportamiento es similar al proceso de autenticación que requiere kubectl.

Nota

La autorización para el clúster se administra mediante Kubernetes y el modelo de seguridad con el que está configurado. Los usuarios que acceden a esta característica requieren permiso para descargar la configuración de Kubernetes (kubeconfig), similar a la ejecución de az aks get-credentials -n {your cluster name} -g {your resource group}.

Este archivo de configuración contiene el token de autorización y autenticación para el rol de usuario de clúster de Azure Kubernetes Service, en el caso de los clústeres de AKS y habilitados para Azure RBAC sin la autorización RBAC de Kubernetes habilitada. Contiene información sobre Microsoft Entra ID y detalles de registro del cliente cuando AKS se habilita con el inicio de sesión único basado en SAML de Microsoft Entra.

Los usuarios de esta característica requieren rol de usuario de clúster de Azure Kubernetes para acceder al clúster para descargar el kubeconfig y usar esta característica. Los usuarios no necesitan el acceso de colaborador al clúster para utilizar esta característica.

Uso de clusterMonitoringUser con clústeres habilitados para RBAC de Kubernetes

Para acabar con la necesidad de aplicar cambios de configuración adicionales para permitir al enlace del rol de usuario de Kubernetes clusterUser acceder a la característica de datos en directo después de habilitar la autorización RBAC de Kubernetes, AKS ha agregado un nuevo enlace de rol de clúster de Kubernetes con el nombre clusterMonitoringUser. Este enlace de rol de clúster tiene todos los permisos necesarios de serie para acceder a la API de Kubernetes y los puntos de conexión a fin de usar la característica de datos en directo.

Para usar la característica de datos en directo con este nuevo usuario, debe ser miembro del rol Usuario de clúster de Azure Kubernetes Service o Colaborador en el recurso de clúster de AKS. Cuando Container Insights está habilitado, se configura para realizar la autenticación con clusterMonitoringUser de forma predeterminada. Si el enlace de rol de clusterMonitoringUser no existe en un clúster, en su lugar se usa clusterUser para la autenticación. El colaborador le proporciona acceso a clusterMonitoringUser (si existe) y el usuario de clúster de Azure Kubernetes Service le proporciona acceso a clusterUser. Cualquiera de estos dos roles proporcionan acceso suficiente para usar esta característica.

AKS lanzó este nuevo enlace de rol en enero de 2020, por lo que los clústeres creados antes de enero de 2020 no lo tienen. Si tiene un clúster que se creó antes de enero de 2020, el nuevo clusterMonitoringUser se puede agregar a un clúster existente mediante una operación PUT en el clúster. O bien, puede realizar cualquier otra operación en el clúster que realiza una operación PUT, como actualizar la versión del clúster.

Clúster de Kubernetes sin RBAC de Kubernetes habilitado

Si tiene un clúster de Kubernetes que no está configurado con autorización de RBAC de Kubernetes ni integrado en el inicio de sesión único de Microsoft Entra, no es necesario seguir estos pasos. Ya tiene permisos administrativos de forma predeterminada en una configuración sin RBAC.

Configurar la autorización del RBAC de Kubernetes

Cuando habilita la autorización RBAC de Kubernetes, se utilizan dos usuarios: clusterUser y clusterAdmin para acceder a la API de Kubernetes. Esta configuración es similar a ejecutar az aks get-credentials -n {cluster_name} -g {rg_name} sin la opción administrativa. Por este motivo, se debe conceder acceso a clusterUser a los puntos de conexión de la API de Kubernetes.

Los pasos de ejemplo siguientes muestran cómo configurar el enlace de rol de clúster desde esta plantilla de configuración de YAML.

  1. Copie el archivo YAML, péguelo y guárdelo como 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. Para actualizar la configuración, ejecute el comando kubectl apply -f LogReaderRBAC.yaml.

Nota

Si ha aplicado una versión anterior del archivo LogReaderRBAC.yaml a su clúster, actualícelo copiando y pegando el nuevo código que se muestra en el paso 1. A continuación, ejecute el comando que se muestra en el paso 2 para aplicarlo al clúster.

Configuración de la autenticación integrada de Microsoft Entra

Un clúster de AKS configurado para usar Microsoft Entra ID para la autenticación de usuario utiliza las credenciales de inicio de sesión de la persona que tiene acceso a esta característica. En esta configuración, puede iniciar sesión en un clúster de AKS mediante su token de autenticación de Microsoft Entra.

El registro del cliente de Microsoft Entra debe volver a configurarse para permitir que Azure Portal redirija las páginas de autorización como una dirección URL de redireccionamiento de confianza. A los usuarios de Microsoft Entra ID se les concede acceso directamente a los mismos puntos de conexión de la API de Kubernetes a través de ClusterRoles y ClusterRoleBindings.

Para más información sobre la configuración de seguridad avanzada en Kubernetes, revise la documentación de Kubernetes.

Nota:

Si va a crear un nuevo clúster habilitado para RBAC de Kubernetes, consulte Integración de Microsoft Entra ID con Azure Kubernetes Service y siga los pasos para configurar la autenticación de Microsoft Entra. Durante los pasos para crear la aplicación cliente, en una nota de esa sección se resaltan las dos URL de redireccionamiento que debe crear para Container Insights que coincidan con las que se especifican en el paso 3 siguiente.

Reconfiguración del registro de cliente

  1. Busque el registro de cliente de su clúster de Kubernetes en Microsoft Entra ID en Microsoft Entra ID>Registros de aplicaciones en Azure Portal.

  2. En el panel izquierdo, seleccione Autenticación.

  3. Agregue dos URL de redireccionamiento a esta lista como tipos de aplicación Web. El primer valor de URL base debe ser https://afd.hosting.portal.azure.net/monitoring/Content/iframe/infrainsights.app/web/base-libs/auth/auth.html. El segundo valor de URL base debe ser https://monitoring.hosting.portal.azure.net/monitoring/Content/iframe/infrainsights.app/web/base-libs/auth/auth.html.

    Nota

    Si utiliza esta función en Microsoft Azure operado por 21Vianet, el primer valor de URL base debe ser https://afd.hosting.azureportal.chinaloudapi.cn/monitoring/Content/iframe/infrainsights.app/web/base-libs/auth/auth.html. El segundo valor de URL base debe ser https://monitoring.hosting.azureportal.chinaloudapi.cn/monitoring/Content/iframe/infrainsights.app/web/base-libs/auth/auth.html.

  4. Después de registrar las URL de redireccionamiento, en Concesión implícita, seleccione las opciones Tokens de acceso y Tokens de identificador. A continuación, guarde los cambios.

Puede configurar la autenticación con Microsoft Entra ID para el inicio de sesión único solo durante la implementación inicial de un nuevo clúster de AKS. No puede configurar el inicio de sesión único en un clúster de AKS ya implementado.

Importante

Si se vuelve a configurar Microsoft Entra ID para la autenticación de usuarios con el URI actualizado, borre la memoria caché del explorador para garantizar que se descarga y aplica el token de autenticación actualizado.

Concesión de permisos

A cada cuenta de Microsoft Entra se le debe conceder permiso para las API adecuadas de Kubernetes, de modo que tenga acceso a la característica de datos en directo. Los pasos para conceder la cuenta de Microsoft Entra son similares a los pasos descritos en la sección Autenticación RBAC de Kubernetes. Antes de aplicar la plantilla de configuración YAML al clúster, reemplace clusterUser en ClusterRoleBinding por el usuario deseado.

Importante

Si el usuario al que concede el enlace de RBAC de Kubernetes se encuentra en el mismo inquilino de Microsoft Entra, asigne permisos según userPrincipalName. Si el usuario se encuentra en un inquilino distinto de Microsoft Entra, en su lugar, consulte y use la propiedad objectId.

Para obtener ayuda adicional para configurar el clúster de AKS ClusterRoleBinding, consulte Creación del enlace de RBAC de Kubernetes.

Pasos siguientes

Ahora que ha configurado la autenticación, puede ver métricas, y eventos y registros en tiempo real desde el clúster.