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 configurado con el enlace de rol de clúster clusterMonitoringUser
- 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.
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
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
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.
En el panel izquierdo, seleccione Autenticación.
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 serhttps://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 serhttps://monitoring.hosting.azureportal.chinaloudapi.cn/monitoring/Content/iframe/infrainsights.app/web/base-libs/auth/auth.html
.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.