Como Iniciar uma Instância EC2 de Forma Segura Dentro de uma VPC Personalizada
Iniciar uma instância Amazon EC2 diretamente na rede pública padrão da AWS é rápido, mas para qualquer ambiente de produção, staging ou sensível, introduz um risco desnecessário. Proteger seus recursos de computação exige isolá-los dentro de uma Virtual Private Cloud (VPC) — sua própria seção logicamente isolada da Nuvem AWS. Este guia orienta você pelas etapas essenciais para configurar uma VPC personalizada, definir componentes de rede necessários como sub-redes e tabelas de rotas, e iniciar com segurança uma instância EC2 protegida por regras estritas de grupo de segurança.
Dominar a configuração da VPC é fundamental para construir uma infraestrutura AWS robusta, escalável e segura. Ao definir manualmente os limites da sua rede, você ganha controle granular sobre o fluxo de tráfego, endereçamento IP e conectividade externa, fortalecendo significativamente seu ambiente de aplicação contra acesso não autorizado.
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 iniciar uma instância, você deve garantir que os seguintes componentes estejam configurados corretamente:
- VPC: O contêiner principal para sua rede, definindo um intervalo de endereços IP privados (bloco CIDR).
- Sub-redes (Subnets): Divisões dentro da VPC, categorizadas como Públicas (com acesso direto à internet) ou Privadas (isoladas).
- Internet Gateway (IGW): Necessário para que os recursos em sub-redes públicas se comuniquem com a internet.
- Tabelas de Rotas (Route Tables): Regras que ditam para onde o tráfego de rede proveniente das sub-redes é direcionado.
- Grupos de Segurança (SGs): Firewalls com estado (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, escolha um bloco CIDR privado que não se sobreponha a nenhuma rede local (on-premises) à qual você possa se 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
As sub-redes devem residir em uma Zona de Disponibilidade (AZ) específica para alta disponibilidade. Para este exemplo, criaremos uma sub-rede pública e uma privada em us-east-1a.
- Sub-rede Pública:
10.0.1.0/24(Usada para bastion hosts 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 a Conectividade com a Internet e o 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)
- Crie um recurso IGW no console da AWS.
- Anexe este IGW à sua VPC recém-criada.
2.2 Configurando Tabelas de Rotas
A tabela de rotas define os caminhos do tráfego. Você precisa de pelo menos duas: uma para a sub-rede pública e outra para a sub-rede privada.
Tabela de Rotas 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 (Seu ID do IGW) |
Associe esta tabela de rotas à sua Sub-rede Pública (10.0.1.0/24).
Tabela de Rotas Privada
Esta tabela somente permite comunicação interna. Crucialmente, ela não deve ter nenhuma rota apontando para o IGW.
| Destino | Alvo |
|---|---|
10.0.0.0/16 (CIDR da VPC) |
local |
Associe esta tabela de rotas à sua Sub-rede Privada (10.0.2.0/24).
Melhor Prática: Se recursos na sub-rede privada precisarem baixar patches ou atualizações, você deve usar um NAT Gateway posicionado na sub-rede pública. A Tabela de Rotas Privada então apontaria o tráfego
0.0.0.0/0para 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 com estado (stateful) (o tráfego de retorno é permitido automaticamente).
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 for um servidor de aplicação acessível apenas a partir de um Application Load Balancer (ALB) localizado na sub-rede pública, as regras devem ser altamente restritivas:
Regras de Entrada (Inbound)
| 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 Bastion Host |
Regras de Saída (Outbound)
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 para um SG de 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: Iniciando a Instância EC2 com Segurança
Ao iniciar sua instância, certifique-se de mapeá-la para os componentes de rede corretos estabelecidos acima.
- Escolher AMI e Tipo de Instância: Selecione sua Amazon Machine Image (AMI) desejada e especificações de hardware.
- 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 estiver iniciando um servidor de aplicação que não deve ser exposto diretamente à internet. - Atribuição Automática de IP Público: Certifique-se de que esteja Desabilitada se estiver iniciando em uma sub-rede privada. (Se você selecionar uma sub-rede pública, poderá habilitar isso para uma instância que precise de acesso público direto, como um bastion host).
- Grupos de Segurança: Selecione o Grupo de Segurança que você configurou no Passo 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 que reside na sub-rede privada não tem um endereço IP público, você não pode acessá-la via SSH diretamente da internet pública. Você deve usar um de dois métodos seguros:
- Bastion Host (Jump Box): Inicie uma instância EC2 pequena e endurecida na Sub-rede Pública. Você faz SSH para o bastion host primeiro e, depois, a partir do bastion host, faz SSH para a instância privada usando seu endereço IP privado.
- 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 a conectividade SSM, você pode iniciar uma sessão de shell segura diretamente do Console AWS sem a necessidade de regras SSH de entrada ou Bastion Hosts.
Resumo e Próximos Passos
Proteger uma instância EC2 dentro de uma VPC personalizada envolve a camada de segurança de rede desde o nível macro (VPC, Sub-redes, Tabelas de Rotas) 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 através das regras de entrada do Grupo de Segurança.
Depois que sua instância for iniciada, lembre-se de monitorar sua atividade usando AWS CloudTrail e VPC Flow Logs para manter a visibilidade contínua do tráfego da sua rede privada.