O caso

O banco de dados da loja tinha endereço público. Qualquer um na internet podia bater na porta dele.

O Isaac criou o servidor web e o banco de dados da loja do mesmo jeito: cada VM com um endereço público, para facilitar o acesso. No dia seguinte, o log do banco já mostrava centenas de tentativas de login vindas de países que ele nunca vendeu.

Só o servidor web precisava ser visto pela internet. O banco só precisava conversar com o servidor web.

Este post parte de Regiões e Zonas, de Máquinas Virtuais e de Responsabilidade Compartilhada: a configuração da rede é parte da segurança que fica com você.

O problema

Tudo exposto

Uma VM com endereço público recebe tentativas de acesso o tempo todo, de robôs que varrem a internet em busca de portas abertas. Quanto mais coisas expostas, maior a superfície de ataque.

A maioria dos componentes de um sistema não precisa ser alcançada de fora: o banco de dados, as filas, os serviços internos. Eles precisam falar só com outros componentes.

A solução

Uma rede privada, só sua

A nuvem deixa você criar uma rede virtual, um pedaço da rede do provedor isolado dos outros clientes, onde você define os endereços, as regras e as rotas. Na AWS e no Google Cloud ela se chama VPC; no Azure, Virtual Network (VNet); na Oracle, VCN.

Dentro dela, você divide o espaço em sub-redes. A sub-rede é o que decide quem enxerga quem:

  • Sub-rede pública (public subnet): tem uma rota para a internet. Aqui ficam os componentes que o mundo precisa alcançar, como o servidor web.
  • Sub-rede privada (private subnet): não tem rota de entrada da internet. Aqui ficam o banco de dados e os serviços internos.
InternetGateway de internet✕ bloqueadoRede virtual (VPC)Sub-rede públicaServidor webFirewall: só portas 80 e 443Sub-rede privadaBanco de dadosSó aceita o servidor web
O servidor web fica visível; o banco de dados, não.

Rede virtual (virtual private cloud, VPC)

O seu espaço isolado na nuvem. Você escolhe a faixa de endereços privados e o que entra nela.

Na loja: uma única rede para a loja inteira.

Sub-rede (subnet)

Uma divisão da rede virtual. Define, pelas rotas, quem fala com a internet e quem não fala.

Na loja: uma sub-rede pública para o site e uma privada para o banco.

Gateway de internet (internet gateway)

A porta que liga a rede virtual à internet, nos dois sentidos, para quem tem endereço público.

Na loja: é por ele que o cliente chega ao site.

NAT

Deixa quem está na sub-rede privada sair para a internet, sem permitir que alguém entre.

Na loja: o banco baixa atualizações, e ninguém de fora o alcança.

O nome em cada nuvem

Os conceitos valem para qualquer provedor. Mudam os produtos:

AWSAzureGoogle CloudOracle Cloud
Rede virtual (virtual network)VPCVirtual NetworkVPCVCN
Saída sem entrada (NAT)NAT GatewayNAT GatewayCloud NATNAT Gateway
VPN até a empresa (site-to-site VPN)Site-to-Site VPNVPN GatewayCloud VPNSite-to-Site VPN
Link dedicado (dedicated connection)Direct ConnectExpressRouteCloud InterconnectFastConnect

Quem pode entrar

Firewalls

A sub-rede diz por onde o tráfego pode passar. O firewall diz o que pode passar. São regras de entrada e de saída: de qual endereço, para qual porta, com qual protocolo.

Em geral, tudo o que não foi liberado explicitamente é bloqueado. Você abre só o necessário:

QuemRegra de entrada (inbound rule)
Servidor webQualquer endereço, portas 80 e 443 (a web)
Banco de dadosSó o servidor web, na porta do banco

Cada provedor tem o seu: grupos de segurança na AWS, Network Security Groups no Azure, regras de firewall da VPC no Google Cloud e Network Security Groups na Oracle. Mudam os nomes e alguns detalhes; a ideia é a mesma.

Não confunda

Gateway de internet × NAT

Os dois ligam a rede à internet, e as provas adoram trocá-los. A pergunta é quem inicia a conversa.

Gateway de internet (internet gateway)

“Quero que a internet alcance o meu servidor, e que ele alcance a internet?”

Exemplo
O servidor web da loja, atendendo os clientes.
Foco
Entrada e saída, para quem tem endereço público.

NAT

“Quero que o servidor privado acesse a internet, sem que ninguém de fora o alcance?”

Exemplo
O banco de dados baixando uma atualização de segurança.
Foco
Só saída: quem está dentro inicia, quem está fora não.

Na prática

O que fica onde

O que você temOnde colocar
Site e API que os clientes acessamSub-rede pública (public subnet)
Banco de dados e serviços internosSub-rede privada (private subnet)
Servidor privado que precisa baixar atualizaçõesSub-rede privada (private subnet), com NAT
Escritório que acessa a rede da nuvem de forma seguraVPN pela internet, ou link dedicado

A VPN cria um túnel criptografado pela internet. O link dedicado é um cabo reservado entre a empresa e o provedor, com mais estabilidade e custo maior.

Termos-chave

Seis termos para fixar

Toque no cartão para ver a definição.

Teste rápido

Três perguntas, estilo prova

01

Um servidor numa sub-rede privada precisa baixar atualizações da internet, sem receber conexões de fora. O que usar?

02

Em qual sub-rede deve ficar o banco de dados, que só o servidor web precisa acessar?

03

Uma empresa quer ligar o escritório à rede virtual, com o tráfego criptografado, usando a internet comum. O que usar?


A pergunta de prova sobre rede costuma ser a mesma: quem precisa ser alcançado de fora, e quem não precisa? Quem precisa fica numa sub-rede pública. O resto fica numa sub-rede privada, protegido por firewall, e sai pelo NAT quando precisa. É o que o Isaac faria hoje, com o banco longe da internet. O próximo passo da trilha é Custos na Nuvem.