Cómo Lanzar de Forma Segura una Instancia EC2 en una VPC Personalizada
Lanza EC2 en una VPC personalizada con subredes públicas y privadas, tablas de enrutamiento, grupos de seguridad y rutas de acceso seguras.
Cómo Lanzar de Forma Segura una Instancia EC2 en una VPC Personalizada
Lanzar una instancia de Amazon EC2 en la VPC predeterminada es rápido, pero a menudo te da menos control del que necesita un entorno de producción o staging. Una VPC personalizada te permite elegir el rango de direcciones, dividir subredes públicas y privadas, y decidir exactamente qué rutas llegan a internet.
Esta guía muestra un diseño seguro práctico: una subred pública para balanceadores de carga o hosts bastión, una subred privada para instancias de aplicación, tablas de enrutamiento que coincidan con esos roles y grupos de seguridad que solo permitan el tráfico requerido.
Comprendiendo los Componentes Clave de una VPC Segura
Una Virtual Private Cloud (VPC) es la base sobre la cual se construye toda la red segura de AWS. Antes de lanzar una instancia, debes asegurarte de que los siguientes componentes estén configurados correctamente:
- VPC: El contenedor principal de tu red, que define un rango de direcciones IP privadas (bloque CIDR).
- Subredes: Divisiones dentro de la VPC, categorizadas como Públicas (con acceso directo a internet) o Privadas (aisladas).
- Internet Gateway (IGW): Requerido para que los recursos en subredes públicas se comuniquen con internet.
- Tablas de Enrutamiento: Reglas que dictan hacia dónde se dirige el tráfico de red de las subredes.
- Grupos de Seguridad (SGs): Firewalls con estado que controlan el tráfico entrante y saliente a nivel de instancia.
Paso 1: Creando la VPC Personalizada y las Subredes
Comenzamos creando el recinto de red y segmentándolo en áreas funcionales. Para una configuración estándar, recomendamos al menos una subred pública y una privada.
1.1 Creando la VPC
Al crear tu VPC, selecciona un bloque CIDR privado que no se superponga con ninguna red local a la que puedas conectarte más tarde (por ejemplo, usando AWS VPN o Direct Connect).
Ejemplo de CIDR de VPC: 10.0.0.0/16
1.2 Creando Subredes
Cada subred reside en una Zona de Disponibilidad (AZ). Las VPC de producción suelen usar subredes públicas y privadas coincidentes en al menos dos AZ, pero este ejemplo mantiene el diseño pequeño con una subred pública y una privada en us-east-1a.
- Subred Pública:
10.0.1.0/24(Usada para hosts bastión o balanceadores de carga) - Subred Privada:
10.0.2.0/24(Usada para servidores de aplicación y bases de datos)
Paso 2: Configurando la Conectividad a Internet y el Enrutamiento
Los recursos en subredes privadas no deben tener acceso directo a internet. Los recursos en la subred pública deben estar enrutados correctamente para llegar a internet a través de un Internet Gateway (IGW).
2.1 Adjuntando un Internet Gateway (IGW)
- Crea un recurso IGW en la consola de AWS.
- Adjunta este IGW a tu VPC recién creada.
2.2 Configurando Tablas de Enrutamiento
Las tablas de enrutamiento definen las rutas del tráfico. Necesitas al menos dos: una para la subred pública y otra para la subred privada.
Tabla de Enrutamiento Pública
Esta tabla dirige todo el tráfico no local (0.0.0.0/0) al Internet Gateway adjunto.
| Destino | Objetivo |
|---|---|
10.0.0.0/16 (CIDR de VPC) |
local |
0.0.0.0/0 |
igw-xxxxxxxx (Tu ID de IGW) |
Asocia esta tabla de enrutamiento con tu Subred Pública (10.0.1.0/24).
Tabla de Enrutamiento Privada
Esta tabla solo permite la comunicación interna. Es crucial que no tenga ninguna ruta que apunte al IGW.
| Destino | Objetivo |
|---|---|
10.0.0.0/16 (CIDR de VPC) |
local |
Asocia esta tabla de enrutamiento con tu Subred Privada (10.0.2.0/24).
Mejor Práctica: Si los recursos en la subred privada necesitan descargar parches o actualizaciones, debes usar un NAT Gateway colocado en la subred pública. La Tabla de Enrutamiento Privada entonces dirigiría el tráfico
0.0.0.0/0al NAT Gateway en lugar del IGW.
Paso 3: Definiendo Reglas Estrictas de Grupos de Seguridad
Los Grupos de Seguridad (SGs) actúan como firewalls virtuales para tus instancias EC2. Operan a nivel de instancia y tienen estado (el tráfico de retorno se permite automáticamente).
Para una configuración segura, debes adherirte al principio de mínimo privilegio, permitiendo explícitamente solo el tráfico entrante necesario.
Ejemplo de Grupo de Seguridad para un Servidor Web (Subred Privada)
Si esta instancia EC2 es un servidor de aplicación solo accesible desde un balanceador de carga de aplicación (ALB) que reside en la subred pública, las reglas deben ser altamente restrictivas:
Reglas de Entrada
| Tipo | Protocolo | Rango de Puertos | Origen |
|---|---|---|---|
| HTTP | TCP | 80 | ID de SG del ALB |
| HTTPS | TCP | 443 | ID de SG del ALB |
| SSH | TCP | 22 | Rango de IP de tu Red Corporativa o ID de SG del Host Bastión |
Reglas de Salida
Por defecto, el tráfico de salida generalmente se permite a todos los destinos (0.0.0.0/0). Puedes restringir esto aún más si es necesario (por ejemplo, solo permitir conexiones al SG de una instancia RDS).
Consejo de Seguridad: Nunca asignes
0.0.0.0/0al puerto 22 (SSH) o al puerto 3389 (RDP) en un grupo de seguridad orientado al público. Siempre restringe el acceso de administración a rangos de IP internos conocidos.
Paso 4: Lanzando la Instancia EC2 de Forma Segura
Al lanzar tu instancia, asegúrate de mapearla a los componentes de red correctos establecidos anteriormente.
- Elegir AMI y Tipo de Instancia: Selecciona tu Amazon Machine Image (AMI) deseada y las especificaciones de hardware.
- Configuración de Red: En el paso 'Configurar Detalles de la Instancia':
- Red: Selecciona tu VPC Personalizada.
- Subred: Selecciona la Subred Privada (
10.0.2.0/24) si estás lanzando un servidor de aplicación que no debe estar expuesto directamente a internet. - Asignar IP pública automáticamente: Asegúrate de que esté Deshabilitado si lanzas en una subred privada. (Si seleccionas una subred pública, puedes habilitar esto para una instancia que necesite acceso público directo, como un host bastión).
- Grupos de Seguridad: Selecciona el Grupo de Seguridad que configuraste en el Paso 3.
- Almacenamiento y Par de Claves: Configura el almacenamiento y asocia un par de claves para acceso SSH seguro.
Accediendo a Instancias en una Subred Privada
Dado que la instancia que reside en la subred privada no tiene dirección IP pública, no puedes SSH directamente desde internet público. Debes usar uno de dos métodos seguros:
- Host Bastión (Jump Box): Lanza una instancia EC2 pequeña y endurecida en la Subred Pública. Primero haces SSH al host bastión, y luego desde el host bastión, haces SSH a la instancia privada usando su dirección IP privada.
- AWS Systems Manager (SSM) Session Manager: Este es el método moderno preferido. Si la instancia tiene el agente SSM instalado y un rol IAM apropiado adjunto que permita la conectividad SSM, puedes iniciar una sesión de shell segura directamente desde la Consola de AWS sin necesidad de reglas SSH entrantes o Hosts Bastión.
Resumen y Próximos Pasos
Asegurar una instancia EC2 dentro de una VPC personalizada implica superponer la seguridad de la red desde el nivel macro (VPC, Subredes, Tablas de Enrutamiento) hasta el nivel micro (Grupos de Seguridad). Al controlar cuidadosamente el direccionamiento IP y el flujo de tráfico:
- Te aseguras de que los servidores de aplicación residan en subredes privadas aisladas.
- Usas el IGW o NAT Gateway solo donde sea necesario.
- Aplicas el principio de mínimo privilegio a través de las reglas de ingreso de los Grupos de Seguridad.
Una vez que tu instancia esté lanzada, recuerda monitorear su actividad usando AWS CloudTrail y VPC Flow Logs para mantener visibilidad continua en tu tráfico de red privada.