0 XP

DEVOPSQUEST

Minha Trilha
Módulo 6 · AWS, Cloud e Segurança

Redes na prática: rastrear o caminho de uma conexão

Intermediário 55 min+25 XPAWS VPCVPC Flow LogsAWS CLI

Objetivos desta aula

  • Descrever o fluxo ALB, aplicação e banco
  • Distinguir falha de DNS, rota e filtragem
  • Inspecionar associações de tabelas de rotas
  • Usar Flow Logs sem concluir além da evidência
  • Planejar saída privada e endpoints

Agora que VPC e Security Groups já existem, vamos investigar o caminho do pacote. No CloudShop, o navegador chega ao ALB, o ALB abre outra conexão com a API e a API inicia uma conexão com o banco em 5432. Cada trecho tem origem e destino próprios.

Comece por resolução de nome. Se getent hosts não resolve o endpoint do banco dentro da aplicação, revisar o SG não é o primeiro passo. Confira DNS da VPC, nome configurado e resolvedores; nunca fixe o IP do RDS, que pode mudar após failover.

Depois investigue rota e associação. Uma subnet usa a tabela associada explicitamente ou, na ausência dela, a tabela principal da VPC. Consulte describe-route-tables e confirme qual é efetiva, em vez de confiar no nome da subnet ou na etiqueta private.

A rota local da VPC permite o caminho entre suas subnets, mas não autoriza portas por si só. Para a API acessar o banco, o SG do RDS deve permitir origem no SG da API e a saída da API precisa permitir o destino. Referências de SG não criam rotas nem transferem todas as regras do grupo de origem.

Um Security Group é stateful: respostas a conexões autorizadas são reconhecidas. Uma NACL é stateless e precisa permitir também o retorno, incluindo portas efêmeras adequadas. Se nc -vz expira mesmo com os SGs corretos, investigue NACL e caminho de retorno.

Timeout não identifica sozinho a causa: pode indicar descarte, rota ausente ou destino indisponível. Já uma recusa imediata costuma apontar ausência de listener ou rejeição ativa. Compare o resultado de nc com saúde do serviço e logs, sem tratar a mensagem como diagnóstico definitivo.

VPC Flow Logs registram metadados como interfaces, endereços, portas e ACCEPT/REJECT; não registram o corpo da requisição. Um ACCEPT não comprova autenticação no PostgreSQL e um REJECT exige correlacionar regras e direção para localizar o bloqueio.

Por fim, separe tráfego interno de saída externa. A API não precisa de NAT para falar com um RDS na mesma VPC; para S3, um gateway endpoint pode evitar NAT nesse caminho. Avalie políticas do endpoint, DNS e custo; endpoints de interface têm cobrança e SGs próprios.

Na prática

Checar DNS e porta no host da aplicação

bash

# Defina o endpoint real do RDS; execute de dentro da rede da API.
export DB_HOST="cloudshop-dev.exemplo.us-east-1.rds.amazonaws.com"
getent hosts "$DB_HOST"
# Testa TCP, não senha nem permissões do PostgreSQL.
nc -vz -w 5 "$DB_HOST" 5432
# A ausência de resposta ICMP não prova falha de TCP.

Inspecionar rota explícita e tabela principal

bash

# Informe a VPC e a subnet da API antes da execução.
: "${VPC_ID:?Defina VPC_ID}" "${SUBNET_ID:?Defina SUBNET_ID}"
aws ec2 describe-route-tables \
  --filters "Name=association.subnet-id,Values=$SUBNET_ID" \
  --query 'RouteTables[].{ID:RouteTableId,Rotas:Routes}'
# Sem associação explícita, a tabela efetiva é a principal da VPC.
aws ec2 describe-route-tables \
  --filters "Name=vpc-id,Values=$VPC_ID" "Name=association.main,Values=true" \
  --query 'RouteTables[].{ID:RouteTableId,Rotas:Routes}' 

Por que isso importa

Um roteiro por camadas reduz indisponibilidade e evita abrir portas aleatoriamente durante incidentes.

Erro comum

Adicionar NAT para corrigir uma conexão interna com o RDS sem verificar DNS e SG.

Dica de produção

Documente origem, destino, porta e evidência de cada salto; habilite Flow Logs com retenção e acesso definidos.

Alerta de segurança

Não abra 5432 para 0.0.0.0/0 como teste; use a origem restrita da API e registre a alteração.

Pergunta de entrevista

O DNS resolve, mas a conexão API–RDS expira: como você organiza a investigação?

Glossário

porta efêmera
Porta temporária usada pelo cliente e necessária no caminho de retorno.
Flow Logs
Registros de metadados do tráfego em interfaces da VPC.
tabela principal
Tabela usada por subnets sem associação explícita a outra tabela.
gateway endpoint
Destino de rota privado para serviços compatíveis, como S3 e DynamoDB.
listener
Processo ou configuração que aceita conexões em uma porta.

Conexão com o CloudShop

Produzir o mapa de conectividade ALB–API–RDS do CloudShop e anexar testes de DNS, TCP e rotas.

Quiz da aula

  1. 1. A API precisa de NAT para acessar RDS privado na mesma VPC?

  2. 2. Flow Logs com ACCEPT garantem login no banco?

  3. 3. Sem associação explícita, qual tabela uma subnet usa?

Minhas anotações

Salvo automaticamente neste navegador.

AnteriorPróxima