View a markdown version of this page

Seguridad - Pruebas de carga distribuidas en AWS

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Seguridad

Cuando crea sistemas en la infraestructura de AWS, las responsabilidades de seguridad se comparten entre usted y AWS. Este modelo de responsabilidad compartida reduce su carga operativa, ya que AWS opera, administra y controla los componentes, desde el sistema operativo host y la capa de virtualización hasta la seguridad física en las instalaciones en las que operan los servicios. Para obtener más información sobre la seguridad de AWS, visite Seguridad en la nube de AWS.

Roles de IAM

Las funciones de AWS Identity and Access Management (IAM) permiten a los clientes asignar políticas y permisos de acceso granulares a los servicios y usuarios de la nube de AWS. Esta solución crea funciones de IAM que otorgan acceso a las funciones de AWS Lambda de la solución para crear recursos regionales.

Amazon CloudFront

Esta solución implementa una interfaz de usuario web alojada en un bucket de Amazon S3, que Amazon CloudFront distribuye. Para ayudar a reducir la latencia y mejorar la seguridad, esta solución incluye una CloudFront distribución con una identidad de acceso de origen, es decir, un CloudFront usuario que proporciona acceso público al contenido del bucket del sitio web de la solución. De forma predeterminada, la CloudFront distribución admite conexiones hasta TLS 1.3, utilizando la versión de protocolo más alta que admite el visor. Para obtener más información, consulte Restringir el acceso a un origen de Amazon S3 en la Guía para CloudFront desarrolladores de Amazon.

CloudFront activa medidas de seguridad adicionales para añadir encabezados de seguridad HTTP a la respuesta de cada espectador. Para obtener más información, consulte Agregar o eliminar encabezados HTTP en las respuestas. CloudFront

Esta solución usa el CloudFront certificado predeterminado, que tiene un protocolo de seguridad mínimo admitido de TLS v1.0. Para imponer el uso de TLS v1.2 o TLS v1.3, debe usar un certificado SSL personalizado en lugar del certificado predeterminado. CloudFront Para obtener más información, consulte Cómo configuro mi CloudFront distribución para usar un certificado. SSL/TLS

Amazon API Gateway

Esta solución implementa puntos de enlace de Amazon API Gateway optimizados para proporcionar API RESTful para la funcionalidad de pruebas de carga utilizando el punto de enlace predeterminado de API Gateway en lugar de un dominio personalizado. En el caso de las API optimizadas para entornos periféricos que utilizan el punto de enlace predeterminado, API Gateway utiliza la política de seguridad. TLS-1-0 Para obtener más información, consulte Cómo trabajar con las API REST en la Guía para desarrolladores de Amazon API Gateway.

Esta solución utiliza el certificado API Gateway predeterminado, que tiene un protocolo de seguridad mínimo admitido de TLS v1.0. Para imponer el uso de TLS v1.2 o TLS v1.3, debe usar un dominio personalizado con un certificado SSL personalizado en lugar del certificado de API Gateway predeterminado. Para obtener más información, consulte Configurar nombres de dominio personalizados para las API de REST.

Grupo de seguridad de AWS Fargate

De forma predeterminada, esta solución abre al público la regla de salida del grupo de seguridad de AWS Fargate. Si desea impedir que AWS Fargate envíe tráfico a todas partes, cambie la regla de salida por una de enrutamiento sin clases Inter-Domain (CIDR) específica.

Este grupo de seguridad también incluye una regla de entrada que permite el tráfico local en el puerto 50 000 a cualquier fuente que pertenezca al mismo grupo de seguridad. Esto se usa para permitir que los contenedores se comuniquen entre sí.

Amazon VPC

VPC: una nube privada virtual (VPC) basada en el servicio Amazon VPC le proporciona una red privada y aislada de forma lógica en la nube de AWS.

Puede especificar su propia VPC en los parámetros de AWS durante la implementación. CloudFormation La VPC la utilizan exclusivamente las tareas de ECS que generan carga; la consola web y la API no se implementan en esta VPC. Si no especifica una VPC existente, la solución crea una nueva VPC con la configuración de red requerida. Si opta por utilizar una VPC existente, debe cumplir los siguientes requisitos para ejecutar correctamente las tareas de prueba de carga.

Requisitos de la VPC

Los requisitos mínimos para utilizar una VPC con las pruebas de carga distribuidas en AWS se enumeran a continuación.

  • La VPC debe contener al menos dos AZ

  • La VPC debe contener al menos dos subredes, cada una en una AZ independiente

  • Las subredes de la VPC pueden ser públicas o privadas, pero deben usar la misma configuración (tanto públicas como privadas)

  • La VPC debe proporcionar acceso a los puntos finales de ECR, CloudWatch Logs, S3 y AWS IoT Core.

  • La VPC debe proporcionar acceso a los servicios a los que van dirigidas las pruebas de carga.

nota

Si no tiene una VPC que cumpla estos criterios, puede crear una VPC rápidamente con el asistente de VPC. Para obtener más información, consulte Creación de una VPC.

Las subredes públicas pueden cumplir estos requisitos al incluir lo siguiente:

  • Una puerta de enlace a Internet conectada a la VPC

  • Una ruta a la puerta de enlace a Internet (0.0.0). 0/0)

Las subredes privadas pueden cumplir estos requisitos mediante el uso de puertas de enlace NAT o puntos de enlace de VPC, como se describe a continuación.

Opción 1: NAT Gateway

  • Implemente una puerta de enlace NAT en cada zona de disponibilidad con subredes privadas

  • Configure las tablas de enrutamiento para enrutar el tráfico con destino a Internet (0.0.0). 0/0) a través de la puerta de enlace NAT

Opción 2: puntos finales de VPC

Cree los siguientes puntos de enlace de VPC en su VPC:

  • Punto final de la API de Amazon ECR: com.amazonaws.<region>.ecr.api

  • Punto final DKR de Amazon ECR: com.amazonaws.<region>.ecr.dkr

  • Punto final de Amazon CloudWatch Logs: com.amazonaws.<region>.logs

  • Punto final de Amazon S3 Gateway: com.amazonaws.<region>.s3

  • Punto final de AWS IoT Core (obligatorio si se utilizan los gráficos de datos en tiempo real) com.amazonaws.<region>.iot.data

También pueden funcionar otras configuraciones de VPC.

importante

El grupo de seguridad adjunto a cada interfaz de punto final de la VPC debe permitir el tráfico TCP entrante en el puerto 443 desde el grupo de tareas de seguridad de ECS.

Configuración del grupo de seguridad

Durante la implementación, la solución creará un grupo de seguridad en su VPC para permitir el siguiente tráfico con tareas en el clúster de ECS:

  • Todo el tráfico saliente

  • El tráfico entrante en el puerto 50000 proviene de otras tareas del mismo grupo de seguridad, para facilitar la coordinación entre las tareas del trabajador y las del líder.

Prueba de esfuerzo de red

Usted es responsable de utilizar esta solución en virtud de la política de pruebas de Amazon EC2. La política cubre las pruebas de red de gran volumen que se realizan desde instancias de Amazon EC2 hasta otras instancias de Amazon EC2, servicios de AWS o puntos de enlace externos. Estas pruebas a veces se denominan pruebas de esfuerzo, pruebas de carga o pruebas previas al juego. Revise la política para comprender la distinción entre las pruebas de estrés de red y las simulaciones de DDoS (que están prohibidas en EC2 y contempladas por separado en la política de pruebas de simulación de DDoS), y tenga en cuenta que AWS puede emplear ingeniería o modelado del tráfico para volúmenes de tráfico elevados. Consulte la página de la política para conocer los umbrales actuales y las directrices antes de realizar pruebas de gran volumen.

Restringir el acceso a la interfaz de usuario pública

El enfoque para restringir el acceso a la consola web depende de la opción de implementación que elija.

Implementación predeterminada (CloudFront + S3): para restringir el acceso a la interfaz de usuario pública más allá de los mecanismos de autenticación y autorización proporcionados por IAM y Amazon Cognito, puede asociar una ACL web de AWS WAF a la distribución. CloudFront Considere la posibilidad de utilizar la solución AWS WAF Security Automations, que implementa un conjunto de reglas de AWS WAF preconfiguradas que filtran los ataques web más comunes. La plantilla predeterminada CloudFront + S3 no implementa los recursos de WAF de forma automática.

Implementación de ALB + ECS Fargate: la solución implementa automáticamente una ACL web de AWS WAF frente a la ALB con reglas administradas que brindan una protección básica contra los ataques web comunes. Puede personalizar las reglas del WAF para que cumplan sus requisitos de seguridad específicos, como añadir listas de IP-based permitidos o bloqueados, restricciones geográficas, límites de velocidad o grupos de reglas adicionales administrados por AWS. Para obtener instrucciones sobre cómo modificar la configuración del WAF, consulte la sección de integración del WAF en las instrucciones de implementación.

Seguridad del servidor MCP (opcional)

Si implementa la integración opcional del servidor MCP, la solución utiliza Amazon Bedrock AgentCore Gateway para proporcionar a los agentes de IA un acceso seguro a los datos de las pruebas de carga. AgentCore Gateway valida los tokens de autenticación de Amazon Cognito para cada solicitud, de modo que solo los usuarios autorizados puedan acceder al servidor MCP. Todas las interacciones del servidor MCP utilizan los mismos límites de permisos y controles de acceso que la consola web.

El parámetro del modo de acceso al servidor MCP controla lo que pueden hacer los agentes de IA. En el ReadOnly modo predeterminado, el servidor MCP solo expone las herramientas de lectura. La política de administración de identidades y accesos (IAM) de AWS sobre la función Lambda del servidor MCP solo permite realizar GET solicitudes a la API de la solución, por lo que los agentes no pueden modificar las configuraciones ni los resultados de las pruebas. En ReadWrite el modo, los agentes también pueden crear, modificar, eliminar e iniciar escenarios de prueba. Elija ReadWrite solo si su caso de uso requiere que los agentes cambien las pruebas.

Rotación de credenciales: si conecta un cliente de MCP mediante la autenticación basada en servicios (máquina a máquina), la solución crea un cliente de la aplicación Amazon Cognito con un secreto de cliente de larga duración. Usted es responsable de rotar ese secreto y de almacenarlo de forma segura. Recomendamos rotarlo al menos cada 90 días. Para ver los procedimientos, consulte Rotar el secreto del cliente del servidor MCP en Usar la solución.

Seguridad de consola web alojada en ALB + ECS Fargate (opcional)

Si elige la opción de implementación de ALB + ECS Fargate, se aplicarán las siguientes consideraciones de seguridad:

  • Compatibilidad con VPC Block Public Access: la opción ALB + ECS Fargate está diseñada para entornos en los que las políticas de VPC Block Public Access (BPA) bloquean el tráfico de las distribuciones públicas. CloudFront El ALB se puede implementar como un balanceador de cargas interno en su VPC, al que solo se puede acceder a través de su red corporativa, VPN o AWS, y cumple con los requisitos de cero exposición pública a Internet. PrivateLink

  • Administración de certificados ACM: la ALB utiliza un certificado ACM para la terminación de HTTPS. Usted es responsable de garantizar que el certificado siga siendo válido y se renueve antes de que caduque. ACM renueva automáticamente los certificados que administra, pero los certificados importados se deben renovar manualmente. Para obtener más información, consulte la renovación de certificados administrados en la Guía del usuario de AWS Certificate Manager.

  • Protección de AWS WAF: el WAF se implementa de forma predeterminada con la plantilla ALB + ECS Fargate. Para obtener más información, consulte Restringir el acceso a la interfaz de usuario pública.

Seguridad autónoma (traiga su propio servidor web) (opcional)

Si eliges la opción de implementación automática y alojas la consola web en tu propio servidor web, eres responsable de las siguientes consideraciones de seguridad:

  • Configuración de HTTPS: recomendamos encarecidamente configurar HTTPS en su servidor web.

  • Controles de acceso: usted es responsable de implementar los controles de acceso, las reglas de firewall y la seguridad de la red en su servidor web.

  • Fortalecimiento de la seguridad: aplique los estándares de refuerzo de seguridad de su organización al servidor web, incluidos los parches, la supervisión y la detección de intrusos.

Third-party marcos de prueba

Las pruebas de carga distribuidas en AWS incluyen tres marcos de prueba de terceros: Apache JMeter, Grafana k6 y Locust. Según el modelo de responsabilidad compartida de AWS, usted es responsable de evaluar si estos marcos y sus versiones empaquetadas cumplen con los requisitos de seguridad de su organización antes de realizar las pruebas de carga. La solución distribuye cada marco sin modificarlo y verifica los binarios incluidos mediante las sumas de comprobación del SHA512 en el momento de la compilación y el tiempo de ejecución.

Para obtener más información sobre cuándo se instala cada marco y cómo se aprovisiona, consulta Cómo probar el aprovisionamiento del marco. Aprovisionamiento del marco de pruebas

Apache JMeter

La versión empaquetada de Apache JMeter presenta vulnerabilidades de seguridad conocidas que no se pueden corregir completamente de forma externa sin romper la compatibilidad con el marco de automatización de pruebas de Taurus y el ecosistema de complementos de JMeter del que depende la solución. Antes de realizar las pruebas de carga, revisa las recomendaciones de seguridad de Apache JMeter y evalúa si pueden provocar vulnerabilidades de seguridad.

nota

Apache JMeter también funciona de manera clandestina para el tipo de prueba Simple HTTP Endpoint. Al configurar una URL, un método, un encabezado y un cuerpo de carga en la consola web, la solución genera un plan de pruebas de JMeter y lo ejecuta con el binario de JMeter incluido. Por lo tanto, las consideraciones de seguridad de JMeter que se describen en esta sección también se aplican a las pruebas simples de terminales HTTP.

Si necesita una versión parcheada de JMeter, tiene dos opciones. Ambas opciones requieren un archivo de prueba y solo están disponibles para el tipo de prueba de JMeter:

  • Proporcione un binario de JMeter parcheado: incluya un binario de JMeter parcheado en su archivo de prueba. La solución usa tu binario en lugar de la versión incluida.

  • Anular los JAR de complementos individuales: usa el mecanismo de anulación de complementos para reemplazar los JAR de complementos vulnerables específicos por versiones parcheadas. Para obtener más información, consulta las pruebas de JMeter.

El tipo de prueba Simple HTTP Endpoint no acepta un archivo de prueba y, por lo tanto, no puede anular el binario o los complementos de JMeter incluidos. Si necesita ejecutar pruebas de punto final HTTP con un JMeter parcheado, utilice el tipo de prueba JMeter y proporcione un script de JMeter (.jmx) o un archivo .zip que incluya los archivos JAR binarios o de complementos de JMeter parcheados.

Grafana k6

k6 se publica bajo la licencia. AGPL-3.0 La consola web muestra un mensaje de confirmación de licencia al crear una nueva prueba de k6. En el momento del lanzamiento de esta solución, no se identificaron vulnerabilidades de seguridad conocidas en la versión incluida de k6. La solución no monitorea k6 de forma continua para detectar nuevas vulnerabilidades; usted es responsable de evaluar k6 en función de sus requisitos de seguridad durante su uso.

Langosta

En el momento del lanzamiento de esta solución, no se identificaron vulnerabilidades de seguridad conocidas en la versión incluida de Locust. La solución no monitorea Locust de forma continua para detectar nuevas vulnerabilidades; usted es responsable de evaluar Locust en función de sus requisitos de seguridad durante su uso.