Tag: EC2

  • Como configurar o AWS Application Load Balancer com 2 target groups

    Como configurar o AWS Application Load Balancer com 2 target groups

    Neste post, que acompanha o vídeo do canal, vamos configurar um AWS Application Load Balancer (ALB) com dois target groups. O primeiro distribui o tráfego de uma aplicação web entre duas instâncias EC2. O segundo recebe só as requisições de uma API, usando uma regra baseada no caminho da URL (path).

    Aqui você encontra o cenário, os conceitos e o checklist de configuração para consultar depois de assistir.

    O que é o Application Load Balancer

    O Application Load Balancer é o balanceador de carga da AWS que trabalha na camada 7 (HTTP e HTTPS). Isso significa que ele entende a requisição e consegue decidir o destino por path, host, cabeçalho, método ou query string. É diferente do Network Load Balancer, que trabalha na camada 4 (TCP/UDP) e olha só para IP e porta.

    Na prática, o ALB resolve três problemas de uma vez:

    • Alta disponibilidade: se uma instância ou uma zona de disponibilidade cair, o tráfego segue para as instâncias saudáveis.
    • Roteamento inteligente: uma mesma URL pública atende a aplicação web e a API, cada uma no seu grupo de servidores.
    • Menos exposição: as instâncias ficam sem IP público, e só o ALB recebe tráfego da internet.

    O cenário do laboratório

    O fluxo que montamos no vídeo é este:

    1. O usuário acessa a URL do ALB.
    2. O ALB tem um Security Group próprio, que libera HTTP na porta 80.
    3. Requisições para / vão para o target group da aplicação web, com duas instâncias EC2 (server 1 e server 2).
    4. Requisições para o path da API vão para o target group da API, com uma terceira instância EC2.

    As duas instâncias web estão em subnets diferentes da mesma VPC, cada uma em uma zona de disponibilidade. Se uma zona tiver problema, a outra instância continua respondendo e a aplicação segue no ar.

    Nenhuma das instâncias tem IP público. O Security Group delas só aceita tráfego vindo do Security Group do ALB.

    Recursos AWS utilizados

    RecursoPapel no laboratório
    Amazon VPC e subnetsRede com subnets em duas zonas de disponibilidade
    Amazon EC2Duas instâncias da aplicação web e uma da API
    Security GroupsUm para o ALB (HTTP da internet) e outro para as instâncias (HTTP só do ALB)
    Target groupsweb com as duas instâncias web e api com a instância da API
    Application Load BalancerRecebe as requisições e aplica as regras do listener

    Passo a passo resumido

    1. Security Groups

    • SG do ALB: entrada HTTP (80) de qualquer origem. Em produção, use HTTPS (443) com certificado do AWS Certificate Manager.
    • SG das instâncias: entrada HTTP (80) apenas com origem no SG do ALB. Referenciar o Security Group em vez de um bloco de IP é o que garante que ninguém acesse as instâncias diretamente.

    2. Target group da aplicação web

    • Tipo de destino: instâncias. Protocolo HTTP, porta 80, versão HTTP1.
    • Health check no path /. É por ele que o ALB decide se a instância está saudável para receber tráfego.
    • Registre as duas instâncias web. Até existir um load balancer usando o grupo, o status aparece como unused, e isso é normal.

    3. O Application Load Balancer

    • Esquema internet-facing, na mesma VPC, com pelo menos duas subnets em zonas diferentes.
    • Associe o SG do ALB.
    • Listener HTTP:80 com ação padrão de forward para o target group web.

    Com isso, ao acessar a URL do ALB e atualizar a página, você vê as respostas alternando entre server 1 e server 2.

    4. Target group da API

    Repita o processo do target group web, registrando a instância da API. Também libere, no Security Group dessa instância, o HTTP vindo do SG do ALB. É um passo fácil de esquecer, e sem ele o health check falha.

    5. Regra por path no listener

    Em Listeners and rules, adicione uma regra ao listener HTTP:80:

    • Condição: path igual ao caminho da API.
    • Ação: forward para o target group api.
    • Prioridade: 1. Regras de menor número são avaliadas primeiro, e a regra padrão fica sempre por último.

    Além de forward, o ALB oferece outras duas ações que valem conhecer: redirect (por exemplo, de HTTP para HTTPS) e fixed response, que devolve uma resposta fixa sem chegar a nenhum servidor.

    Boas práticas para levar para produção

    • HTTPS no listener, com certificado gratuito do ACM e redirect de HTTP para HTTPS.
    • AWS WAF na frente do ALB para filtrar SQL injection, XSS e acesso por país. Mostro isso no próximo post: Como configurar o AWS WAF.
    • Instâncias em subnets privadas, com saída pela NAT Gateway quando precisarem de internet. Explico a montagem da rede neste post: Aprenda a criar VPC, Peering e Transit Gateway na AWS.
    • Auto Scaling group como destino do target group, para escalar sem registrar instâncias manualmente.
    • Logs de acesso do ALB no S3 para investigação de incidentes.
    • Custo: o ALB cobra por hora e por LCU, mesmo sem tráfego. Ao final do laboratório, apague o load balancer, os target groups e as instâncias.

    Material de apoio

    Ficou alguma dúvida sobre a configuração? Deixe nos comentários.

  • Estudando Application Security com o OWASP Juice Shop na AWS

    Estudando Application Security com o OWASP Juice Shop na AWS

    Quem estuda segurança de aplicações precisa de um lugar para praticar sem atacar o sistema de ninguém. Neste post de apoio ao vídeo, mostro como subir o OWASP Juice Shop em uma instância EC2 com Docker e usá-lo como laboratório de Application Security.

    O que é o OWASP Juice Shop

    O Juice Shop é uma loja virtual propositalmente vulnerável, mantida pela fundação OWASP. Ela é escrita em Node.js e roda em contêiner. A aplicação reúne dezenas de desafios que cobrem o OWASP Top 10 e muito mais, como:

    • Broken Access Control: acessar dados ou funções de outro usuário.
    • Injection: o clássico SQL injection, que continua aparecendo em aplicações reais.
    • Cross-Site Scripting (XSS).
    • Falhas de autenticação, de criptografia e de configuração.

    Cada desafio resolvido aparece no placar (Score Board) da própria aplicação, o que transforma o estudo em um jogo com progresso visível. A página do projeto também tem um guia completo de instruções.

    O Juice Shop é a mesma aplicação que uso como alvo no laboratório de WAF: Como configurar o AWS WAF.

    Recursos AWS utilizados

    RecursoPapel no laboratório
    Amazon EC2 (Ubuntu)Máquina que roda o contêiner do Juice Shop
    VPC padrão e IP públicoAcesso à aplicação pelo navegador, sem montar rede
    Security GroupLibera a porta 3000, que é a porta do Juice Shop
    DockerBaixa e executa a imagem oficial do Juice Shop

    Existe também uma imagem do Juice Shop no AWS Marketplace, mas no vídeo subo tudo manualmente. Assim você entende cada peça, e o processo é simples.

    Passo a passo resumido

    1. Criar a instância EC2

    • AMI Ubuntu, tipo pequeno (elegível ao nível gratuito, se for o seu caso).
    • VPC padrão, com IP público habilitado, para acessar pelo navegador sem precisar de NAT ou VPN.
    • Security Group: entrada TCP 3000 para acessar a aplicação, e SSH (22) para administrar.

    2. Instalar o Docker

    Conecte na instância e rode:

    sudo apt update && sudo apt upgrade -y
    sudo apt install -y docker.io
    sudo systemctl enable --now docker
    docker --version

    3. Subir o Juice Shop

    sudo docker pull bkimminich/juice-shop
    sudo docker run -d --name juice-shop -p 3000:3000 bkimminich/juice-shop

    Acesse http://IP-PUBLICO-DA-INSTANCIA:3000 no navegador e a loja já estará funcionando.

    Cuidados importantes com o laboratório

    Lembre-se de que você está publicando uma aplicação vulnerável de propósito. Alguns cuidados evitam que o laboratório vire um problema:

    • Restrinja o Security Group ao seu IP (opção My IP no console), tanto na porta 3000 quanto na 22. Nunca deixe aberto para 0.0.0.0/0 por mais tempo do que o necessário.
    • Use uma conta AWS só para laboratório, separada de qualquer ambiente com dados reais.
    • Não reutilize senhas nem chaves de outros ambientes na instância.
    • Desligue ou apague a instância quando terminar. Além do risco, a EC2 e o IP público geram custo enquanto existirem.
    • Ataque apenas a sua própria instância. Testar sistemas de terceiros sem autorização é crime.

    Próximos passos de estudo

    1. Abra o Score Board e comece pelos desafios de uma estrela.
    2. Use um proxy de interceptação, como o OWASP ZAP ou o Burp Suite Community, para ver e modificar as requisições.
    3. Para cada vulnerabilidade explorada, estude como corrigi-la no código. É aí que o conhecimento vira AppSec de verdade.
    4. Depois, coloque um AWS WAF na frente da aplicação e veja quais ataques ele bloqueia e quais passam: Como configurar o AWS WAF.
    5. Leve o aprendizado para o pipeline com práticas de DevSecOps: Como começar com DevSecOps.

    Material de apoio

    Você já usa o Juice Shop nos seus estudos? Conta nos comentários qual desafio deu mais trabalho.

Visão geral de privacidade

Este site usa cookies para que possamos oferecer a melhor experiência de usuário possível. As informações dos cookies são armazenadas em seu navegador e executam funções como reconhecê-lo quando você retorna ao nosso site e ajudar nossa equipe a entender quais seções do site você considera mais interessantes e úteis.