Usar la autenticación de Microsoft Entra con los errores de AKS de Chaos Studio
Información general
Azure Chaos Studio se integra con Chaos Mesh para ejecutar errores en los clústeres de Azure Kubernetes Service (AKS), como la eliminación de pods, el estrés de la CPU, la interrupción de la red y más. Puede usar dos tipos diferentes de autenticación para ejecutar estos errores, dependiendo de su configuración y preferencias, ya sean cuentas locales o autenticación de Microsoft Entra administrada por AKS:
- Las cuentas locales de Kubernetes se almacenan en el servidor de API de Kubernetes y pueden usarse para autenticar y autorizar solicitudes al clúster. Obtenga más información sobre las cuentas locales en esta página: Administrar cuentas locales.
- La autenticación de Microsoft Entra administrada por AKS le permite iniciar sesión y administrar los permisos de su clúster usando las credenciales de Microsoft Entra y Azure RBAC. Aprenda a Habilitar la autenticación de Microsoft Entra administrada por AKS.
Nota:
Los permisos de cuentas locales conceden acceso siempre que las credenciales se encuentren en el equipo cliente, mientras que la autenticación de Microsoft Entra administrada por AKS permite una asignación y administración de permisos de mayor alcance. Obtenga más información sobre estos procedimientos recomendados: Procedimientos recomendados para la seguridad y actualización de clústeres.
Anteriormente, Chaos Studio solo era compatible usando Chaos Mesh con cuentas locales, pero la versión 2.2 de todos los errores de AKS ahora es compatible tanto con cuentas locales como con la autenticación de Microsoft Entra.
Advertencia
Si ve un error en tiempo de ejecución Object reference not set to an instance of an object
, se trata de un error conocido con los errores de la versión 2.2. Se espera que finalice la implementación de una corrección a principios de enero de 2025. Esto sucede cuando se usa la nueva versión de error de Chaos Mesh de AKS (2.2) en un clúster con cuentas locales habilitadas. La solución consiste en usar los errores de la versión 2.1, marcados como "(en desuso)" en la interfaz de usuario o usar un clúster de AKS con la autenticación de Entra habilitada.
Actualizar objetivos
Los objetivos (Microsoft.Chaos/targets
) representan otro recurso de Azure en el modelo de recursos de Chaos Studio, por lo que puede controlar fácilmente si un determinado recurso está habilitado o no para la inyección de errores y qué errores pueden ejecutarse en él. En este caso, el objetivo representa un clúster de AKS al que quiere afectar.
Si incorpora un clúster de AKS como nuevo objetivo de Chaos Studio en Azure Portal, las nuevas versiones de errores estarán disponibles automáticamente.
Si quiere usar la nueva versión de error en un objetivo de AKS existente, deberá actualizar el objetivo. Puede hacerlo de una de las maneras siguientes:
- Deshabilite y vuelva a habilitar el recurso de objetivo.
- Para hacerlo en Azure Portal, visite el panel Objetivos de la interfaz del portal de Chaos Studio, seleccione el clúster o clústeres de AKS correspondientes y seleccione Deshabilitar objetivos. Espere 1 o 2 minutos o a una notificación de confirmación, después seleccione Habilitar objetivos>Habilitar objetivos directos al servicio y pase por la pantalla Revisar y crear.
- Actualice las capacidades habilitadas.
- Para ello, en Azure Portal, visite el panel Objetivos de Chaos Studio, busque el clúster o clústeres de AKS, seleccione Administrar acciones y asegúrese de que todas las capacidades están habilitadas. Seleccione Guardar para finalizar la actualización.
Si está usando la API o la línea de comandos, siga las instrucciones en Crear un experimento de caos que use un error de Chaos Mesh con la CLI de Azure para garantizar que se habilitan las últimas capacidades disponibles.
Creación de un nuevo experimento
Cuando cree un nuevo experimento que use errores de Chaos Mesh de AKS en Azure Portal, es posible que vea dos versiones de cada error, como "AKS Chaos Mesh DNS Chaos" y "AKS Chaos Mesh DNS Chaos (desuso)". Seleccione la primera opción, no la opción en desuso.
Si no ve su clúster de AKS como posible objetivo después de seleccionar el error, es posible que tenga que habilitar la nueva versión del error en el clúster. Visite la página de objetivos, busque su clúster de AKS y seleccione Administrar acciones, después asegúrese de que todas las capacidades están seleccionadas antes de seleccionar Guardar.
Siga el tutorial Creación de un experimento de caos que usa un error de Chaos Mesh para terminar pods de AKS para crear un experimento.
Actualizar un experimento existente
Siga uno de estos dos métodos para actualizar su experimento existente.
- Abra un experimento que contenga al menos un error de Chaos Mesh de AKS.
- Seleccione Editar en el error y copie el valor del parámetro
jsonSpec
en el Portapapeles. - Abra la lista desplegable de selección de errores y seleccione la versión del error deseado sin el
(deprecated)
marcado. - Pegue el
jsonSpec
de su portapapeles en el campo de parámetros. - Guarde el error y el experimento.
Permisos
Chaos Studio necesita permiso para ejecutar errores en sus recursos.
Al crear un experimento en Azure Portal, puede seleccionar opcionalmente Habilitar la creación y asignación de roles personalizados para que Chaos Studio intente asignar los permisos necesarios a la identidad administrada del experimento.
Si opta por no usar la creación de roles personalizados o no está usando Azure Portal, deberá realizar una de las siguientes acciones después de crear su experimento:
- Asigne manualmente los roles Administrador de RBAC de Azure Kubernetes Service y Usuario de clúster de Azure Kubernetes Service a la identidad administrada por el experimento (asignada por el sistema o por el usuario).
- Cree manualmente un rol personalizado que permita la lista completa de operaciones necesarias en Operaciones de RBAC.
- Cree manualmente un rol personalizado que permita una lista parcial de las operaciones necesarias e implemente un archivo YAML personalizado. Este proceso se detalla en Acceso opcional con privilegios mínimos.
Operaciones de RBAC
Las siguientes operaciones de RBAC se usan para los errores de Chaos Mesh de AKS:
- Acciones:
- Microsoft.ContainerService/managedClusters/read
- Acciones de datos:
- Microsoft.ContainerService/managedClusters/namespaces/read
- Microsoft.ContainerService/managedClusters/pods/read
- Microsoft.ContainerService/managedClusters/apiextensions.k8s.io/customresourcedefinitions/write
- Microsoft.ContainerService/managedClusters/apiextensions.k8s.io/customresourcedefinitions/read
- Microsoft.ContainerService/managedClusters/authorization.k8s.io/subjectaccessreviews/write
- Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/clusterroles/read
- Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/clusterroles/write
- Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/clusterroles/delete
- Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/clusterroles/bind/action
- Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/clusterroles/escalate/action
- Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/clusterrolebindings/read
- Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/clusterrolebindings/write
- Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/clusterrolebindings/delete
Acceso opcional con privilegios mínimos
Si prefiere no conceder acceso completo de lectura/escritura de ClusterRole y ClusterRoleBinding a la identidad del experimento de Chaos Studio, puede crear manualmente el rol y el enlace necesarios para Chaos Mesh. Esto es necesario para que Chaos Mesh garantice que el experimento tiene permiso para tener como objetivo el espacio de nombres del inquilino especificado.
Esta configuración opcional consta de dos pasos.
Al asignar permisos a la identidad administrada del experimento, use un rol personalizado con un conjunto limitado de permisos. Los permisos necesarios son:
- Acciones:
- Microsoft.ContainerService/managedClusters/read
- Acciones de datos:
- Microsoft.ContainerService/managedClusters/namespaces/read
- Microsoft.ContainerService/managedClusters/pods/read
- Microsoft.ContainerService/managedClusters/apiextensions.k8s.io/customresourcedefinitions/write
- Microsoft.ContainerService/managedClusters/apiextensions.k8s.io/customresourcedefinitions/read
- Microsoft.ContainerService/managedClusters/authorization.k8s.io/subjectaccessreviews/write
- Acciones:
Implemente la siguiente configuración YAML para crear el rol y el enlace. Obtenga más información sobre implementaciones en la documentación de AKS: Implementación de un clúster de Azure Kubernetes Service (AKS) usando Azure Portal.
kind: ClusterRole apiVersion: rbac.authorization.k8s.io/v1 metadata: name: role-cluster-manager-pdmas rules: - apiGroups: - chaos-mesh.org resources: [ "*" ] verbs: ["get", "list", "watch", "create", "delete", "patch", "update"] --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: cluster-manager-binding namespace: {Namespace targeted by experiment} subjects: - kind: User name: {CHAOS-STUDIO-EXPERIMENT-MSI-OBJECT-ID} roleRef: kind: ClusterRole name: role-cluster-manager-pdmas apiGroup: rbac.authorization.k8s.io