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 detallados 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, distribuido por Amazon CloudFront. 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 usa TLS 1.2 para aplicar el nivel más alto de protocolo de seguridad. 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 cada respuesta del espectador. Para obtener más información, consulta Añadir 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 de extremo a fin de proporcionar API RESTful para la funcionalidad de pruebas de carga mediante el punto de enlace de API Gateway predeterminado en lugar de un dominio personalizado. Para las API optimizadas de borde que utilizan el punto final predeterminado, API Gateway usa la política de TLS-1-0 seguridad. Para obtener más información, consulte Cómo trabajar con las API de REST en la Guía para desarrolladores de Amazon API Gateway.

Esta solución usa 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, debes usar un dominio personalizado con un certificado SSL personalizado en lugar del certificado API Gateway predeterminado. Para obtener más información, consulta Cómo configurar nombres de dominio personalizados para las API de REST.

Grupo de seguridad AWS Fargate

De forma predeterminada, esta solución abre al público la regla de salida del grupo de seguridad de AWS Fargate. Si quiere impedir que AWS Fargate envíe tráfico a todas partes, cambie la regla de salida por una de Inter-Domain enrutamiento sin clase (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 CloudFormation parámetros de AWS durante la implementación. 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 creará una nueva VPC con la configuración de red requerida. Si decide utilizar una VPC existente, debe cumplir los siguientes requisitos para ejecutar correctamente las tareas de pruebas de carga.

Requisitos de la VPC

A continuación, se indican los requisitos mínimos para que una VPC se utilice con las pruebas de carga distribuidas en AWS.

  • La VPC debe contener al menos dos AZ

  • La VPC debe contener al menos dos subredes, cada una en una zona de disponibilidad independiente

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

  • La VPC debe proporcionar acceso a los puntos finales para ECR, CloudWatch Logs, S3 e IoT Core.

  • La VPC debe proporcionar acceso a los servicios a los que se dirigen 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 finales de VPC, como se describe a continuación.

Opción 1: puerta de enlace NAT

  • 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 Amazon ECR: com.amazonaws.<region>.ecr.api

  • Punto de conexión DKR de Amazon ECR: com.amazonaws.<region>.ecr.dkr

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

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

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

Es posible que también funcionen 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 seguridad de tareas de ECS.

Configuración del grupo de seguridad

Durante la implementación, la solución creará un grupo de seguridad dentro de la VPC para permitir el siguiente tráfico con las tareas del 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 del líder.

Prueba de stress de red

Usted es responsable de utilizar esta solución según la política de pruebas de Amazon EC2. La política cubre las pruebas de red de gran volumen que se ejecutan desde instancias de Amazon EC2 a otras instancias de Amazon EC2, servicios de AWS o puntos de enlace externos. Estas pruebas a veces se denominan pruebas de stress, pruebas de carga o pruebas diurnas. Revise la política para comprender la diferencia entre las pruebas de estrés de red y las simulaciones de DDoS (que están prohibidas en EC2 y se tratan 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 de tráfico con grandes volúmenes de tráfico. Consulte la página de políticas 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 WAF de AWS preconfiguradas que filtran los ataques habituales basados en la web. La plantilla CloudFront + S3 predeterminada no implementa los recursos de WAF automáticamente.

Implementación de ALB + ECS Fargate: la solución implementa automáticamente una ACL web de AWS WAF delante de la ALB con reglas administradas que proporcionan una protección básica contra los ataques web más comunes. Puede personalizar las reglas de WAF para que cumplan con sus requisitos de seguridad específicos, incluida la adición de 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, lo que garantiza que solo los usuarios autorizados puedan acceder al servidor MCP. La función Lambda del servidor MCP implementa patrones de acceso de solo lectura, lo que impide que los agentes de IA modifiquen las configuraciones o los resultados de las pruebas. Todas las interacciones del servidor MCP utilizan los mismos límites de permisos y controles de acceso que la consola web.

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

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

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

  • Administración de certificados ACM: el ALB utiliza un certificado ACM para la terminación del protocolo 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 deben renovarse manualmente. Para obtener más información, consulte Renovación gestionada de certificados en la Guía del usuario de AWS Certificate Manager.

  • Protección WAF de AWS: 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 Headless (traiga su propio servidor web) (opcional)

Si eliges la opción de despliegue sin interfaz y alojas la consola web en tu propio servidor web, eres responsable de las siguientes consideraciones de seguridad:

  • Configuración 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 la seguridad de su organización al servidor web, incluidos los parches, la supervisión y la detección de intrusiones.

Third-party marcos de pruebas

Las pruebas de carga distribuidas en AWS incluyen tres marcos de pruebas 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 integradas cumplen los requisitos de seguridad de su organización antes de ejecutar las pruebas de carga. La solución distribuye cada marco sin modificaciones y verifica los binarios incluidos mediante sumas de verificación del SHA512 en el momento de la compilación y en tiempo de ejecución.

Para obtener más información sobre cuándo se instala cada marco y cómo se aprovisiona, consulte Probar el aprovisionamiento del marco.

Apache JMeter

La versión incluida de Apache JMeter presenta vulnerabilidades de seguridad conocidas que no se pueden corregir completamente de forma externa sin interrumpir 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, revise las advertencias de seguridad de Apache JMeter y evalúe si pueden causarle vulnerabilidades de seguridad.

nota

Apache JMeter también funciona de forma clandestina para el tipo de prueba de punto final HTTP único. 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 descritas en esta sección también se aplican a las pruebas de punto final HTTP único.

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 utiliza su binario en lugar de la versión incluida.

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

El tipo de prueba Single 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 complemento de JMeter parcheados.

Grafana K6

K6 se publica bajo esta 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 identificó ninguna vulnerabilidad de seguridad conocida en la versión incluida de K6. La solución no supervisa el K6 de forma continua para detectar nuevas vulnerabilidades; usted es responsable de evaluar el K6 en función de sus requisitos de seguridad durante su uso.

Langosta

En el momento del lanzamiento de esta solución, no se identificó ninguna vulnerabilidad de seguridad conocida en la versión incluida de Locust. La solución no supervisa 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.