Como Lançar uma Instância EC2 com Segurança em uma VPC Personalizada

Lance uma EC2 em uma VPC personalizada com sub-redes públicas e privadas, tabelas de roteamento, grupos de segurança e caminhos de acesso seguros.

Como Lançar uma Instância EC2 com Segurança em uma VPC Personalizada

Lançar uma instância Amazon EC2 na VPC padrão é rápido, mas muitas vezes oferece menos controle do que um ambiente de produção ou staging precisa. Uma VPC personalizada permite escolher o intervalo de endereços, dividir sub-redes públicas e privadas e decidir exatamente quais caminhos alcançam a internet.

Este guia mostra um layout seguro prático: uma sub-rede pública para balanceadores de carga ou hosts bastion, uma sub-rede privada para instâncias de aplicação, tabelas de roteamento que correspondem a essas funções e grupos de segurança que permitem apenas o tráfego necessário.

Entendendo os Componentes Principais de uma VPC Segura

Uma Virtual Private Cloud (VPC) é a base sobre a qual toda a rede segura da AWS é construída. Antes de lançar uma instância, você deve garantir que os seguintes componentes estejam configurados corretamente:

  1. VPC: O contêiner principal para sua rede, definindo um intervalo de endereços IP privados (bloco CIDR).
  2. Sub-redes: Divisões dentro da VPC, categorizadas como Públicas (com acesso direto à internet) ou Privadas (isoladas).
  3. Internet Gateway (IGW): Necessário para que recursos em sub-redes públicas se comuniquem com a internet.
  4. Tabelas de Roteamento: Regras que determinam para onde o tráfego de rede das sub-redes é direcionado.
  5. Grupos de Segurança (SGs): Firewalls stateful que controlam o tráfego de entrada e saída no nível da instância.

Passo 1: Criando a VPC Personalizada e as Sub-redes

Começamos criando o invólucro de rede e segmentando-o em áreas funcionais. Para uma configuração padrão, recomendamos pelo menos uma sub-rede pública e uma privada.

1.1 Criando a VPC

Ao criar sua VPC, selecione um bloco CIDR privado que não se sobreponha a nenhuma rede local que você possa conectar posteriormente (por exemplo, usando AWS VPN ou Direct Connect).

Exemplo de CIDR da VPC: 10.0.0.0/16

1.2 Criando Sub-redes

Cada sub-rede reside em uma Zona de Disponibilidade (AZ). VPCs de produção geralmente usam sub-redes públicas e privadas correspondentes em pelo menos duas AZs, mas este exemplo mantém o layout pequeno com uma sub-rede pública e uma privada em us-east-1a.

  • Sub-rede Pública: 10.0.1.0/24 (Usada para hosts bastion ou balanceadores de carga)
  • Sub-rede Privada: 10.0.2.0/24 (Usada para servidores de aplicação e bancos de dados)

Passo 2: Configurando Conectividade com a Internet e Roteamento

Recursos em sub-redes privadas não devem ter acesso direto à internet. Recursos na sub-rede pública devem ser roteados corretamente para alcançar a internet através de um Internet Gateway (IGW).

2.1 Anexando um Internet Gateway (IGW)

  1. Crie um recurso IGW no console da AWS.
  2. Anexe este IGW à sua VPC recém-criada.

2.2 Configurando Tabelas de Roteamento

As tabelas de roteamento definem caminhos de tráfego. Você precisa de pelo menos duas: uma para a sub-rede pública e uma para a sub-rede privada.

Tabela de Roteamento Pública

Esta tabela direciona todo o tráfego não local (0.0.0.0/0) para o Internet Gateway anexado.

Destino Alvo
10.0.0.0/16 (CIDR da VPC) local
0.0.0.0/0 igw-xxxxxxxx (ID do seu IGW)

Associe esta tabela de roteamento à sua Sub-rede Pública (10.0.1.0/24).

Tabela de Roteamento Privada

Esta tabela apenas permite comunicação interna. Crucialmente, ela não deve ter rota apontando para o IGW.

Destino Alvo
10.0.0.0/16 (CIDR da VPC) local

Associe esta tabela de roteamento à sua Sub-rede Privada (10.0.2.0/24).

Melhor Prática: Se os recursos na sub-rede privada precisarem baixar patches ou atualizações, você deve usar um NAT Gateway colocado na sub-rede pública. A Tabela de Roteamento Privada então direcionaria o tráfego 0.0.0.0/0 para o NAT Gateway em vez do IGW.

Passo 3: Definindo Regras Estritas de Grupo de Segurança

Os Grupos de Segurança (SGs) atuam como firewalls virtuais para suas instâncias EC2. Eles operam no nível da instância e são stateful (o tráfego de retorno é automaticamente permitido).

Para uma configuração segura, você deve aderir ao princípio do menor privilégio, permitindo explicitamente apenas o tráfego de entrada necessário.

Exemplo de Grupo de Segurança para um Servidor Web (Sub-rede Privada)

Se esta instância EC2 é um servidor de aplicação acessível apenas a partir de um balanceador de carga de aplicação (ALB) residente na sub-rede pública, as regras devem ser altamente restritivas:

Regras de Entrada

Tipo Protocolo Intervalo de Portas Origem
HTTP TCP 80 ID do SG do ALB
HTTPS TCP 443 ID do SG do ALB
SSH TCP 22 Intervalo de IP da sua Rede Corporativa ou ID do SG do Host Bastion

Regras de Saída

Por padrão, o tráfego de saída geralmente é permitido para todos os destinos (0.0.0.0/0). Você pode restringir isso ainda mais, se necessário (por exemplo, permitindo apenas conexões ao SG de uma instância RDS).

Dica de Segurança: Nunca atribua 0.0.0.0/0 à porta 22 (SSH) ou à porta 3389 (RDP) em um grupo de segurança voltado para o público. Sempre restrinja o acesso de gerenciamento a intervalos de IP internos conhecidos.

Passo 4: Lançando a Instância EC2 com Segurança

Ao lançar sua instância, certifique-se de mapeá-la para os componentes de rede corretos estabelecidos acima.

  1. Escolha AMI e Tipo de Instância: Selecione sua Amazon Machine Image (AMI) desejada e as especificações de hardware.
  2. Configurações de Rede: Na etapa 'Configurar Detalhes da Instância':
    • Rede: Selecione sua VPC Personalizada.
    • Sub-rede: Selecione a Sub-rede Privada (10.0.2.0/24) se você estiver lançando um servidor de aplicação que não deve ser exposto diretamente à internet.
    • Atribuir IP público automaticamente: Certifique-se de que está Desabilitado se estiver lançando em uma sub-rede privada. (Se você selecionar uma sub-rede pública, pode habilitar isso para uma instância que precise de acesso público direto, como um host bastion).
    • Grupos de Segurança: Selecione o Grupo de Segurança que você configurou no Passo 3.
  3. Armazenamento e Par de Chaves: Configure o armazenamento e associe um par de chaves para acesso SSH seguro.

Acessando Instâncias em uma Sub-rede Privada

Como a instância residente na sub-rede privada não tem endereço IP público, você não pode fazer SSH diretamente da internet pública. Você deve usar um dos dois métodos seguros:

  1. Host Bastion (Jump Box): Lance uma instância EC2 pequena e endurecida na Sub-rede Pública. Você faz SSH no host bastion primeiro e, em seguida, a partir do host bastion, faz SSH na instância privada usando seu endereço IP privado.
  2. AWS Systems Manager (SSM) Session Manager: Este é o método moderno preferido. Se a instância tiver o agente SSM instalado e uma função IAM apropriada anexada permitindo conectividade SSM, você pode iniciar uma sessão de shell segura diretamente do Console da AWS sem precisar de regras SSH de entrada ou Hosts Bastion.

Resumo e Próximos Passos

Proteger uma instância EC2 dentro de uma VPC personalizada envolve camadas de segurança de rede desde o nível macro (VPC, Sub-redes, Tabelas de Roteamento) até o nível micro (Grupos de Segurança). Ao controlar cuidadosamente o endereçamento IP e o fluxo de tráfego:

  • Você garante que os servidores de aplicação residam em sub-redes privadas isoladas.
  • Você usa o IGW ou NAT Gateway apenas onde necessário.
  • Você aplica o princípio do menor privilégio por meio de regras de entrada do Grupo de Segurança.

Depois que sua instância for lançada, lembre-se de monitorar sua atividade usando o AWS CloudTrail e os VPC Flow Logs para manter visibilidade contínua no tráfego de sua rede privada.