View a markdown version of this page

Segurança - Teste de carga distribuído na AWS

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Segurança

Quando você cria sistemas na infraestrutura da AWS, as responsabilidades de segurança são compartilhadas entre você e a AWS. Esse modelo de responsabilidade compartilhada reduz seus encargos operacionais, pois a AWS opera, gerencia e controla os componentes, incluindo o sistema operacional do host, a camada de virtualização e a segurança física das instalações onde os serviços operam. Para obter mais informações sobre segurança da AWS, visite Segurança da Nuvem AWS.

Perfis do IAM

As funções do AWS Identity and Access Management (IAM) permitem que os clientes atribuam políticas e permissões de acesso granulares a serviços e usuários na nuvem da AWS. Essa solução cria funções do IAM que concedem às funções do AWS Lambda da solução acesso para criar recursos regionais.

Amazon CloudFront

Essa solução implanta uma interface de usuário web hospedada em um bucket do Amazon S3, que é distribuído pela Amazon. CloudFront Para ajudar a reduzir a latência e melhorar a segurança, essa solução inclui uma CloudFront distribuição com uma identidade de acesso de origem, que é um CloudFront usuário que fornece acesso público ao conteúdo do bucket do site da solução. Por padrão, a CloudFront distribuição usa o TLS 1.2 para impor o nível mais alto de protocolo de segurança. Para obter mais informações, consulte Restringir o acesso a uma origem do Amazon S3 no CloudFront Amazon Developer Guide.

CloudFront ativa mitigações de segurança adicionais para acrescentar cabeçalhos de segurança HTTP à resposta de cada visualizador. Para obter mais informações, consulte Adicionar ou remover cabeçalhos HTTP nas CloudFront respostas.

Essa solução usa o CloudFront certificado padrão, que tem um protocolo de segurança mínimo suportado de TLS v1.0. Para impor o uso do TLS v1.2 ou do TLS v1.3, você deve usar um certificado SSL personalizado em vez do certificado padrão. CloudFront Para obter mais informações, consulte Como configuro minha CloudFront distribuição para usar um SSL/TLS certificado.

Amazon API Gateway

Essa solução implanta endpoints otimizados de ponta do Amazon API Gateway para fornecer APIs RESTful para a funcionalidade de teste de carga usando o endpoint padrão do API Gateway em vez de um domínio personalizado. Para APIs otimizadas para borda usando o endpoint padrão, o API Gateway usa a política de segurança. TLS-1-0 Para obter mais informações, consulte Como trabalhar com APIs REST no Guia do desenvolvedor do Amazon API Gateway.

Essa solução usa o certificado padrão do API Gateway, que tem um protocolo de segurança mínimo suportado de TLS v1.0. Para impor o uso do TLS v1.2 ou do TLS v1.3, você deve usar um domínio personalizado com um certificado SSL personalizado em vez do certificado padrão do API Gateway. Para obter mais informações, consulte Configuração de nomes de domínio personalizados para APIs REST.

Grupo de segurança AWS Fargate

Por padrão, essa solução abre a regra de saída do grupo de segurança do AWS Fargate para o público. Se você quiser impedir que o AWS Fargate envie tráfego para qualquer lugar, altere a regra de saída para um Inter-Domain roteamento sem classe (CIDR) específico.

Esse grupo de segurança também inclui uma regra de entrada que permite tráfego local na porta 50.000 para qualquer fonte que pertença ao mesmo grupo de segurança. Isso é usado para permitir que os contêineres se comuniquem entre si.

Amazon VPC

VPC: uma nuvem privada virtual (VPC) baseada no serviço Amazon VPC oferece uma rede privada e logicamente isolada na nuvem da AWS.

Você pode especificar sua própria VPC nos CloudFormation parâmetros da AWS durante a implantação. A VPC é usada exclusivamente pelas tarefas do ECS que geram carga; o console web e a API não são implantados nessa VPC. Se você não especificar uma VPC existente, a solução criará uma nova VPC com a configuração de rede necessária. Se você optar por usar uma VPC existente, ela deverá atender aos seguintes requisitos para executar as tarefas de teste de carga com êxito.

Requisitos da VPC

Os requisitos mínimos para que uma VPC seja usada com testes de carga distribuída na AWS estão listados abaixo.

  • A VPC deve conter pelo menos duas AZs

  • A VPC deve conter pelo menos duas sub-redes, cada uma em uma AZ separada

  • As sub-redes VPC podem ser públicas ou privadas, mas devem usar a mesma configuração (pública OU privada)

  • A VPC deve fornecer acesso aos endpoints para ECR, CloudWatch Logs, S3 e IoT Core.

  • A VPC deve fornecer acesso aos serviços visados pelos testes de carga.

nota

Se você não tiver uma VPC que atenda a esses critérios, poderá criar uma VPC com o assistente de VPC rapidamente. Para obter mais informações, consulte Criar uma VPC.

As sub-redes públicas podem atender a esses requisitos incluindo o seguinte:

  • Um gateway de internet conectado à VPC

  • Uma rota para o gateway da Internet (0.0.0. 0/0)

As sub-redes privadas podem atender a esses requisitos por meio do uso de gateways NAT ou endpoints VPC, conforme descrito abaixo.

Opção 1: NAT Gateway

  • Implemente um gateway NAT em cada AZ com sub-redes privadas

  • Configure tabelas de rotas para rotear o tráfego vinculado à Internet (0.0.0). 0/0) por meio do NAT Gateway

Opção 2: VPC Endpoints

Crie os seguintes endpoints de VPC em sua VPC:

  • Endpoint da API Amazon ECR: com.amazonaws.<region>.ecr.api

  • Endpoint Amazon ECR DKR: com.amazonaws.<region>.ecr.dkr

  • Endpoint CloudWatch do Amazon Logs: com.amazonaws.<region>.logs

  • Endpoint do Amazon S3 Gateway: com.amazonaws.<region>.s3

  • Endpoint do AWS IoT Core (necessário se estiver usando os gráficos de dados ao vivo) com.amazonaws.<region>.iot.data

Outras configurações de VPC também podem funcionar.

Importante

O grupo de segurança conectado a cada interface do VPC endpoint deve permitir o tráfego TCP de entrada na porta 443 do grupo de segurança de tarefas do ECS.

Configuração do grupo de segurança

Durante a implantação, a solução criará um grupo de segurança em sua VPC para permitir o seguinte tráfego com tarefas no cluster do ECS:

  • Todo o tráfego de saída

  • Tráfego de entrada na porta 50000 de outras tarefas no mesmo grupo de segurança, para facilitar a coordenação entre as tarefas do trabalhador e do líder.

Teste de estresse de rede

Você é responsável por usar essa solução de acordo com a Política de testes do Amazon EC2. A política abrange testes de rede de alto volume executados de instâncias do Amazon EC2 para outras instâncias do Amazon EC2, serviços da AWS ou endpoints externos. Esses testes às vezes são chamados de testes de estresse, testes de carga ou testes de dia de jogo. Analise a política para entender a distinção entre testes de estresse de rede e simulações de DDoS (que são proibidas no EC2 e cobertas separadamente pela política de testes de simulação de DDoS) e observe que a AWS pode empregar engenharia de tráfego ou modelagem em altos volumes de tráfego. Consulte a página de política para obter os limites e orientações atuais antes de executar testes de alto volume.

Restringindo o acesso à interface pública do usuário

A abordagem para restringir o acesso ao console web depende da opção de implantação escolhida.

Implantação padrão (CloudFront + S3) — Para restringir o acesso à interface de usuário pública além dos mecanismos de autenticação e autorização fornecidos pelo IAM e pelo Amazon Cognito, você pode associar uma ACL web do AWS WAF à distribuição. CloudFront Considere usar a solução AWS WAF Security Automations, que implanta um conjunto de regras pré-configuradas do AWS WAF que filtram ataques comuns baseados na web. O modelo padrão CloudFront + S3 não implanta recursos WAF automaticamente.

Implantação do ALB + ECS Fargate — A solução implanta automaticamente uma ACL web do AWS WAF na frente do ALB com regras gerenciadas que fornecem proteção básica contra ataques comuns baseados na web. Você pode personalizar as regras do WAF para atender aos seus requisitos de segurança específicos, incluindo a adição de listas de IP-based permissão ou bloqueio, restrições geográficas, limitação de taxa ou outros grupos de regras gerenciados pela AWS. Para obter instruções sobre como modificar a configuração do WAF, consulte a seção Integração do WAF nas instruções de implantação.

Segurança do servidor MCP (opcional)

Se você implantar a integração opcional do MCP Server, a solução usará o Amazon Bedrock AgentCore Gateway para fornecer acesso seguro aos dados de teste de carga para agentes de IA. AgentCore O Gateway valida os tokens de autenticação do Amazon Cognito para cada solicitação, garantindo que somente usuários autorizados possam acessar o MCP Server. A função Lambda do MCP Server implementa padrões de acesso somente para leitura, impedindo que agentes de IA modifiquem as configurações ou os resultados dos testes. Todas as interações do MCP Server usam os mesmos limites de permissão e controles de acesso do console web.

Segurança do console web hospedado pelo ALB + ECS Fargate (opcional)

Se você escolher a opção de implantação do ALB + ECS Fargate, as seguintes considerações de segurança se aplicam:

  • Compatibilidade com o VPC Block Public Access — A opção ALB + ECS Fargate foi projetada para ambientes em que as políticas de VPC Block Public Access (BPA) bloqueiam o tráfego de distribuições públicas. CloudFront O ALB pode ser implantado como um balanceador de carga interno em sua VPC, acessível somente por meio de sua rede corporativa, VPN ou AWS PrivateLink, atendendo a zero requisitos de exposição pública à Internet.

  • Gerenciamento de certificados ACM — O ALB usa um certificado ACM para terminação HTTPS. Você é responsável por garantir que o certificado permaneça válido e seja renovado antes da expiração. O ACM renova automaticamente os certificados que ele gerencia, mas os certificados importados devem ser renovados manualmente. Para obter mais informações, consulte Renovação gerenciada de certificados no Guia do usuário do AWS Certificate Manager.

  • Proteção do AWS WAF — O WAF é implantado por padrão com o modelo ALB + ECS Fargate. Para obter detalhes, consulte Restringir o acesso à interface pública do usuário.

Segurança sem cabeça (traga seu próprio servidor web) (opcional)

Se você escolher a opção de implantação autônoma e hospedar o console web em seu próprio servidor web, você será responsável pelas seguintes considerações de segurança:

  • Configuração HTTPS — É altamente recomendável configurar HTTPS em seu servidor web.

  • Controles de acesso — Você é responsável por implementar controles de acesso, regras de firewall e segurança de rede em seu servidor web.

  • Fortalecimento da segurança — aplique os padrões de fortalecimento da segurança da sua organização ao servidor web, incluindo aplicação de patches, monitoramento e detecção de intrusões.

Third-party estruturas de teste

O teste de carga distribuído na AWS agrupa três estruturas de teste de terceiros — Apache JMeter, Grafana K6 e Locust. No modelo de responsabilidade compartilhada da AWS, você é responsável por avaliar se essas estruturas e suas versões agrupadas atendem aos requisitos de segurança da sua organização antes de executar testes de carga. A solução distribui cada estrutura sem modificação e verifica os binários agrupados usando somas de verificação SHA512 no tempo de construção e no tempo de execução.

Para obter detalhes sobre quando cada estrutura é instalada e como ela é provisionada, consulte Testando o provisionamento da estrutura.

Apache JMeter

A versão integrada do Apache JMeter tem vulnerabilidades de segurança conhecidas que não podem ser totalmente corrigidas externamente sem quebrar a compatibilidade com a estrutura de automação de testes Taurus e o ecossistema de plug-ins JMeter do qual a solução depende. Antes de executar testes de carga, revise os avisos de segurança do Apache JMeter e avalie se eles podem causar vulnerabilidades de segurança para você.

nota

O Apache JMeter também é executado sob o capô para o tipo de teste Single HTTP Endpoint. Quando você configura uma URL, método, cabeçalhos e corpo de carga no console web, a solução gera um plano de teste do JMeter e o executa com o binário JMeter incluído. As considerações de segurança do JMeter descritas nesta seção, portanto, também se aplicam aos testes de endpoint HTTP único.

Se você precisar de uma versão corrigida do JMeter, você tem duas opções. Ambas as opções exigem um arquivo de teste e estão disponíveis somente para o tipo de teste JMeter:

  • Forneça um binário JMeter corrigido — Inclua um binário JMeter corrigido em seu arquivo de teste. A solução usa seu binário no lugar da versão empacotada.

  • Substituir JARs de plug-ins individuais — Use o mecanismo de substituição de plug-ins para substituir JARs de plug-ins vulneráveis específicos por versões corrigidas. Para obter mais informações, consulte os testes do JMeter.

O tipo de teste Single HTTP Endpoint não aceita um arquivo de teste e, portanto, não pode substituir o binário ou os plug-ins do JMeter incluídos. Se você precisar executar testes de endpoint HTTP com um JMeter corrigido, use o tipo de teste JMeter e forneça um script JMeter (.jmx) ou um arquivo.zip que inclua seu binário JMeter corrigido ou JARs de plug-in.

Grafana K6

O K6 é lançado sob a AGPL-3.0 licença. O console web exibe uma mensagem de confirmação de licença quando você cria um novo teste K6. Nenhuma vulnerabilidade de segurança conhecida foi identificada na versão integrada do K6 no momento do lançamento desta solução. A solução não monitora continuamente o K6 em busca de novas vulnerabilidades; você é responsável por avaliar o K6 em relação aos seus requisitos de segurança durante todo o uso.

Gafanhoto

Nenhuma vulnerabilidade de segurança conhecida foi identificada na versão integrada do Locust no momento do lançamento desta solução. A solução não monitora continuamente o Locust em busca de novas vulnerabilidades; você é responsável por avaliar o Locust em relação aos seus requisitos de segurança durante todo o uso.