# Lambda segura na AWS: VPC Endpoint para o SQS sem NAT Gateway

> Como a Lambda fala com o RDS e com o SQS sem banco público e sem NAT Gateway: Lambda na VPC e VPC Endpoint do SQS, com os custos citados na aula.

- Autor: Henrylle Maia, consultor AWS
- Publicado em: 2026-10-15
- Assuntos: Segurança, Serverless, Rede
- URL: https://pages.formacaoaws.com.br/blog/lambda-segura-na-aws/
- Aula de origem: "Como construir uma aplicação Lambda de forma segura" (https://www.youtube.com/watch?v=U0E6-qh-gDI)

Sua Lambda precisa falar com um RDS e com uma fila SQS, e os dois caminhos óbvios têm problema: deixar o banco público ou pagar um NAT Gateway, que é caro. Aqui você vai colocar a Lambda dentro da VPC e criar um VPC Endpoint para o SQS, de modo que ela chegue ao banco e à fila sem passar pela internet.

## O cenário: uma Lambda, um RDS e uma fila SQS

Este caso nasceu de uma consultoria. O cliente tinha uma aplicação em Lambda que falava com vários serviços da AWS, e a forma dessa comunicação me chamou a atenção: será que era a melhor, ou existia uma mais segura?

O cenário: uma VPC com um RDS dentro, uma função Lambda e o SQS, o serviço de mensageria da AWS. A Lambda precisa falar com os dois. O conteúdo é mais avançado: pressupõe que você já usou Lambda e já sentiu essa dor na pele.

A Lambda tem duas posições possíveis em relação à VPC, e cada uma tem um problema.

## Caminho 1: a Lambda fora da VPC

A função fica dentro da AWS, mas fora da sua VPC. Como não está na VPC, o caminho até os seus serviços é a internet: ela chega ao RDS pela internet e chega ao SQS pela internet.

Os problemas:

- **O RDS precisa ser público.** Isso já é um problema de segurança: dependendo dos canais que você abre, um banco acessível publicamente fica passível de interceptação e de acesso indevido.
- **A liberação do acesso é frágil.** Ou você faz uma liberação global, ou uma liberação fechada numa lista fixa com os endereços do Lambda. Nos dois casos, há fragilidade.
- **O SQS é público por natureza.** Ao criar uma fila, você recebe um endpoint, uma URL com HTTPS, e é por ela que as mensagens entram. Nesse caminho, isso acontece pela internet.

![A Lambda fora da VPC chega ao RDS e ao SQS pela internet, e por isso o RDS aparece como público](https://pages.formacaoaws.com.br/blog/assets/posts/lambda-segura-na-aws/cenario-1-fora-da-vpc.svg)

## Caminho 2: a Lambda dentro da VPC

Publicando a Lambda dentro da VPC, nas subnets e com o security group que você escolher, o acesso ao RDS passa a ser privado. Dá para tirar o acesso público do banco.

Aí aparece o problema do SQS. Ele só é acessível publicamente, e a Lambda, de dentro da VPC, não sai para a internet para chegar nele.

> **Importante:** uma Lambda dentro da VPC não ganha saída para a internet só porque a route table da VPC tem um internet gateway. Sem NAT Gateway ou sem o endpoint que vem a seguir, a chamada ao SQS não chega.

![A Lambda dentro da VPC fala com o RDS por dentro da rede, em verde; o caminho dela até a internet, por onde o SQS é acessível, está marcado com um X](https://pages.formacaoaws.com.br/blog/assets/posts/lambda-segura-na-aws/cenario-2-dentro-da-vpc.svg)

Uma saída seria colocar um NAT Gateway. Só que ele é um serviço mais caro, e a solução não precisa dele: há uma alternativa mais barata dentro da própria AWS.

## Passo 1: deixar a Lambda e o RDS dentro da VPC

Publique a função na VPC, escolhendo as subnets e o security group dela. Com isso, a comunicação com o RDS acontece por dentro da rede, e o acesso público do banco pode ser desligado.

## Passo 2: criar o VPC Endpoint do SQS

A VPC tem um recurso chamado Endpoints, que pouca gente usa: quem trabalha com VPC costuma olhar só subnets, route table e internet gateway. No console da VPC:

1. Abra **Endpoints** e clique em **Create endpoint**.
2. Em categoria, escolha **AWS services** e filtre por `sqs`. Na tela da aula, o serviço aparece como `com.amazonaws.us-east-1.sqs`, tipo Interface (região e tipo estão na tela, não na minha fala). Use a região da sua fila.
3. Escolha a **VPC** onde a Lambda está.
4. Escolha as **subnets** que você quer associar ao endpoint. Pode ser uma ou várias.
5. Clique em **Create endpoint**.

![Create endpoint no console da VPC: categoria AWS services e um único serviço no filtro, com.amazonaws.us-east-1.sqs, do tipo Interface](https://pages.formacaoaws.com.br/blog/assets/posts/lambda-segura-na-aws/endpoint.webp)

## Passo 3: entender o que mudou no caminho

O endpoint abre uma porta de comunicação com o SQS por dentro da VPC. O canal pela internet, que parecia o único possível, deixa de ser necessário.

Quando a Lambda resolve o endereço do SQS, ele aponta para o endpoint dentro da VPC. A mensagem chega à fila sem que a função tenha acesso à internet, e o RDS segue acessível só de forma privada.

**Fluxo:** AWS Lambda (dentro da VPC) → VPC Endpoint (porta de entrada do SQS na VPC) → Amazon SQS (a fila)

Isso vale para outros serviços além do SQS. O DynamoDB também tem endpoint. O S3 tem o seu, mas criado como Gateway. Esse tipo eu detalho em outro post: [NAT Gateway ou Gateway Endpoint](https://pages.formacaoaws.com.br/blog/nat-gateway-ou-gateway-endpoint/).

## Quanto custa e o que mais você ganha

- **VPC Endpoint:** 1 centavo de dólar por hora. Associado a duas subnets, 2 centavos por hora.
- **NAT Gateway:** bem mais caro que o endpoint.
- **Tráfego pela internet:** falar com o RDS pela internet faz você pagar saída de dados para a internet, muito mais cara que o tráfego por dentro da VPC.
- **Desempenho:** pela internet, o caminho até o RDS sai da rede da AWS; pelo endpoint, fica 100% dentro dela.

Os valores são de setembro de 2022, quando gravei, não uma tabela atual. Antes de decidir, confira na [página de preços do AWS PrivateLink](https://aws.amazon.com/privatelink/pricing/), onde fica o preço do endpoint do tipo Interface.

Avalie esses pontos juntos: conhecer bem a VPC traz uma série de benefícios, e a comunicação 100% dentro da rede da AWS é um deles.

## Checklist

- Veja se a sua Lambda hoje fala com o RDS pela internet. Se sim, o banco está público?
- Publique a Lambda dentro da VPC, com subnets e security group definidos.
- Desligue o acesso público do RDS.
- No console da VPC, crie o endpoint do SQS e associe às subnets que quiser.
- Se existir um NAT Gateway só para a Lambda chegar ao SQS, compare: ele é bem mais caro que o endpoint.
- Confira os preços atuais na página de preços do PrivateLink.

Uma Lambda dentro da VPC com um endpoint para o SQS conversa com o banco e com a fila sem passar pela internet e sem NAT Gateway. É uma forma segura, e mais barata que o NAT Gateway, de a Lambda falar com o SQS.
