Permisos y seguridad en Azure Chaos Studio

Azure Chaos Studio permite mejorar la resistencia del servicio mediante la inserción sistemática de errores en los recursos de Azure. La inserción de errores es una forma eficaz de mejorar la resistencia del servicio, pero también puede resultar peligrosa. Causar errores en la aplicación puede tener un mayor impacto de lo previsto originalmente y dar a actores malintencionados la oportunidad de infiltrarse.

Chaos Studio cuenta con modelo de permisos sólido que impide que los errores se ejecuten de forma involuntaria o por un actor malintencionado. En este artículo, aprenderá a proteger los recursos destinados a la inserción de errores a través de Chaos Studio.

¿Cómo puedo restringir la capacidad de insertar errores con Chaos Studio?

Chaos Studio tiene tres niveles de seguridad para ayudarle a controlar cómo y cuándo se puede producir la inyección de errores en un recurso:

  • En primer lugar, un experimento de caos es un recurso de Azure que se implementa en una región, un grupo de recursos y una suscripción. Los usuarios deben disponer de los permisos de Azure Resource Manager adecuados para crear, actualizar, iniciar, cancelar, eliminar o consultar un experimento.

    Cada permiso es una operación de Resource Manager que se puede asignar pormenorizado a una identidad o asignarse como parte de un rol con permisos de carácter comodín. Por ejemplo, el rol Colaborador de Azure tiene el permiso */write en el ámbito asignado, que incluye el permiso Microsoft.Chaos/experiments/write.

    Cuando intenta controlar la capacidad de insertar errores en un recurso, la operación más importante para restringir es Microsoft.Chaos/experiments/start/action. Esta operación inicia un experimento de caos que inserta errores.

  • En segundo lugar, un experimento de caos tiene una identidad administrada asignada por el sistema o una identidad administrada asignada por el usuario que ejecuta errores en un recurso. Si decide usar una identidad administrada asignada por el sistema para el experimento, la identidad se crea en el momento de creación del experimento en el inquilino de Microsoft Entra. Las identidades administradas asignadas por el usuario se pueden usar en cualquier número de experimentos.

    Dentro de un experimento de caos, puede optar por habilitar la asignación de roles personalizada en la selección de identidad administrada asignada por el sistema o asignada por el usuario. La habilitación de esta funcionalidad permite a Chaos Studio crear y asignar un rol personalizado que contenga las funcionalidades de acción de experimento necesarias a la identidad del experimento (que aún no existen en la selección de identidad). Si un experimento de caos usa una identidad administrada asignada por el usuario, los roles personalizados asignados a la identidad del experimento por Chaos Studio se conservarán después de la eliminación del experimento.

    Si decide conceder manualmente los permisos del experimento, debe conceder sus permisos de identidad adecuados a todos los recursos de destino. Si la identidad del experimento no tiene el permiso adecuado para un recurso, no puede ejecutar un error en ese recurso.

  • En tercer lugar, cada recurso debe incorporarse a Chaos Studio como un destino con las funcionalidades correspondientes habilitadas. Si no existe un destino o la funcionalidad para el error que se está ejecutando, se produce un error en el experimento sin afectar al recurso.

Identidad administrada asignada por el usuario

Un experimento de caos puede usar una identidad administrada asignada por el usuario para obtener permisos suficientes para insertar errores en los recursos de destino del experimento. Por otra parte, las identidades administradas asignadas por el usuario se pueden usar en cualquier número de experimentos en Chaos Studio. Para usar esta funcionalidad, debe:

  • En primer lugar, cree una identidad administrada asignada por el usuario en el servicio Identidades administradas. Puede asignar permisos necesarios a la identidad administrada asignada por el usuario para ejecutar los experimentos de caos en este momento.
  • En segundo lugar, al crear el experimento de caos, seleccione una identidad administrada asignada por el usuario de la suscripción. Puede optar por habilitar la asignación de roles personalizada en este paso. Al habilitar esta funcionalidad, se concedería a la selección de identidad los permisos necesarios que pueda necesitar en función de los errores contenidos en el experimento.
  • En tercer lugar, después de agregar todos los errores al experimento de caos, revise si la configuración de identidad contiene todas las acciones necesarias para que el experimento de caos se ejecute correctamente. En caso contrario, póngase en contacto con el administrador del sistema para obtener acceso o edite las selecciones de errores de su experimento.

Autenticación del agente

Al ejecutar errores basados en agente, debe instalar el agente de Chaos Studio en la máquina virtual (VM) o en el conjunto de escalado de máquinas virtuales. El agente usa una identidad administrada asignada por el usuario para autenticarse en Chaos Studio y un perfil de agente para establecer una relación con un recurso de máquina virtual específico.

Al incorporar una máquina virtual o un conjunto de escalado de máquinas virtuales para errores basados en agente, primero se crea un destino de agente. El destino del agente debe tener una referencia a la identidad administrada asignada por el usuario que se usa para la autenticación. El destino del agente contiene un Identificador de perfil de agente, que se proporciona como configuración al instalar el agente. Los perfiles de agente son únicos para cada destino, mientras que los destinos son únicos para recurso.

Operaciones y roles de Azure Resource Manager

Chaos Studio permite realizar las operaciones siguientes:

Operación Descripción
Microsoft.Chaos/targets/[Read,Write,Delete] Obtenga, cree, actualice o elimine un destino.
Microsoft.Chaos/targets/capabilities/[Read,Write,Delete] Obtenga, cree, actualice o elimine una capacidad.
Microsoft.Chaos/locations/targetTypes/Read Obtenga todos los tipos de destino.
Microsoft.Chaos/locations/targetTypes/capabilityTypes/Read Obtenga todos los tipos de capacidad.
Microsoft.Chaos/experiments/[Read,Write,Delete] Obtenga, cree, actualice o elimine un experimento de caos.
Microsoft.Chaos/experiments/start/action Inicie un experimento de caos.
Microsoft.Chaos/experiments/cancel/action Detenga un experimento de caos.
Microsoft.Chaos/experiments/statuses/Read Obtenga el estado de una ejecución de un experimento de caos.
Microsoft.Chaos/experiments/executionDetails/Read Obtenga los detalles (estado y errores de cada acción) de una ejecución de un experimento de caos.

Para asignar estos permisos de forma granular, puede crear un rol personalizado.

Seguridad de red

Todas las interacciones del usuario con Chaos Studio tienen lugar en Azure Resource Manager. Si un usuario inicia un experimento, el experimento podría interactuar con puntos de conexión distintos de Resource Manager, en función del error:

  • Errores directos del servicio: la mayoría de los errores directos del servicio se ejecutan a través de Azure Resource Manager y no requieren ningún punto de conexión de red permitido.
  • Errores de Chaos Mesh de AKS directo del servicio: errores directos del servicio para Azure Kubernetes Service que usan Chaos Mesh requieren acceso al servidor de API de Kubernetes del clúster de AKS.
  • Errores basados en agente: para usar errores basados en agente, el agente necesita acceso al servicio del agente de Chaos Studio. Una máquina virtual o un conjunto de escalado de máquinas virtuales debe tener acceso saliente al punto de conexión de servicio del agente para que el agente se conecte correctamente. El punto de conexión de servicio del agente es https://acs-prod-<region>.chaosagent.trafficmanager.net. Debe reemplazar el marcador de posición <region> por la región donde se implementa la máquina virtual. Un ejemplo es https://acs-prod-eastus.chaosagent.trafficmanager.net para una máquina virtual en este de EE. UU.
  • Redes privadas basadas en agente: el agente de Chaos Studio ahora admite redes privadas. Consulte Redes privadas para Chaos Agent.

Etiquetas de servicio

Una etiqueta de servicio es un grupo de prefijos de dirección IP que se pueden asignar a reglas de entrada y salida para grupos de seguridad de red. Controla automáticamente las actualizaciones del grupo de prefijos de dirección IP sin intervención alguna.

Puede usar etiquetas de servicio para permitir explícitamente el tráfico entrante desde Chaos Studio sin necesidad de conocer las direcciones IP de la plataforma. La etiqueta de servicio de Chaos Studio es ChaosStudio.

Una limitación de las etiquetas de servicio es que solo se pueden usar con aplicaciones que tienen una dirección IP pública. Si un recurso solo tiene una dirección IP privada, las etiquetas de servicio no pueden enrutar el tráfico a él.

Cifrado de datos

Chaos Studio cifra todos los datos de manera predeterminada. Chaos Studio solo acepta entradas para propiedades del sistema, como identificadores de objeto de identidad administrada, nombres de experimentos, pasos y ramas, y parámetros de error. Un ejemplo es el intervalo de puertos de red que se va a bloquear en un error de desconexión de red.

Estas propiedades no deben usarse para almacenar datos confidenciales, como información de pago o contraseñas. Para más información sobre cómo Chaos Studio protege los datos, consulte Protección de datos de clientes de Azure.

Caja de seguridad del cliente

La caja de seguridad le proporciona el control para aprobar o rechazar la solicitud de ingeniero de Microsoft para acceder a los datos del experimento durante una solicitud de soporte técnico.

La caja de seguridad se puede habilitar para la información del experimento de caos y el cliente concede permiso para acceder a los datos en el nivel de suscripción si está habilitada la caja de seguridad.

Más información sobre Caja de seguridad del cliente de Microsoft Azure

Pasos siguientes

Ahora que comprende cómo proteger el experimento de caos, está listo para: