Cómo lanzar una instancia EC2 de forma segura dentro de una VPC personalizada
Lanzar una instancia de Amazon EC2 directamente en la red pública predeterminada de AWS es rápido, pero para cualquier entorno de producción, staging o sensible, introduce un riesgo innecesario. Asegurar sus recursos de cómputo requiere aislarlos dentro de una Amazon Virtual Private Cloud (VPC), su propia sección lógicamente aislada de la Nube de AWS. Esta guía le mostrará los pasos esenciales para configurar una VPC personalizada, definir los componentes de red necesarios como subredes y tablas de ruteo, y lanzar de forma segura una instancia EC2 protegida por reglas estrictas de grupo de seguridad.
Dominar la configuración de VPC es fundamental para construir una infraestructura de AWS robusta, escalable y segura. Al definir manualmente los límites de su red, obtiene control granular sobre el flujo de tráfico, el direccionamiento IP y la conectividad externa, endureciendo significativamente su entorno de aplicación contra accesos no autorizados.
Comprensión de los Componentes Centrales 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, debe asegurarse de que los siguientes componentes estén configurados correctamente:
- VPC: El contenedor principal para su red, que define un rango de direcciones IP privadas (bloque CIDR).
- Subredes: Divisiones dentro de la VPC, clasificadas 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 Ruteo (Route Tables): Reglas que dictan hacia dónde se dirige el tráfico de red desde las subredes.
- Grupos de Seguridad (SGs): Firewalls con estado que controlan el tráfico entrante y saliente a nivel de instancia.
Paso 1: Creación de la VPC Personalizada y las Subredes
Comenzamos creando el cerco 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 Creación de la VPC
Al crear su VPC, seleccione un bloque CIDR privado que no se superponga con ninguna red local con la que pueda conectarse más adelante (por ejemplo, usando AWS VPN o Direct Connect).
Ejemplo de CIDR de VPC: 10.0.0.0/16
1.2 Creación de Subredes
Las subredes deben residir dentro de una Zona de Disponibilidad (AZ) específica para alta disponibilidad. Para este ejemplo, crearemos una subred pública y una privada en us-east-1a.
- Subred Pública:
10.0.1.0/24(Utilizada para hosts bastión o balanceadores de carga) - Subred Privada:
10.0.2.0/24(Utilizada para servidores de aplicaciones y bases de datos)
Paso 2: Configuración de la Conectividad a Internet y el Ruteo
Los recursos en subredes privadas no deben tener acceso directo a Internet. Los recursos en la subred pública deben estar ruteados correctamente para alcanzar Internet a través de un Internet Gateway (IGW).
2.1 Conexión de un Internet Gateway (IGW)
- Cree un recurso IGW en la consola de AWS.
- Adjunte este IGW a su VPC recién creada.
2.2 Configuración de las Tablas de Ruteo
Las tablas de ruteo definen las rutas del tráfico. Necesita al menos dos: una para la subred pública y otra para la subred privada.
Tabla de Ruteo 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 (Su ID de IGW) |
Asocie esta tabla de ruteo con su Subred Pública (10.0.1.0/24).
Tabla de Ruteo Privada
Esta tabla solo permite la comunicación interna. Es crucial que no tenga una ruta que apunte al IGW.
| Destino | Objetivo |
|---|---|
10.0.0.0/16 (CIDR de VPC) |
local |
Asocie esta tabla de ruteo con su Subred Privada (10.0.2.0/24).
Mejor Práctica: Si los recursos en la subred privada necesitan descargar parches o actualizaciones, debe utilizar un NAT Gateway ubicado en la subred pública. La Tabla de Ruteo Privada apuntaría entonces el tráfico
0.0.0.0/0al NAT Gateway en lugar de al IGW.
Paso 3: Definición de Reglas Estrictas de Grupo de Seguridad
Los Grupos de Seguridad (SGs) actúan como firewalls virtuales para sus instancias EC2. Operan a nivel de instancia y son con estado (el tráfico de retorno se permite automáticamente).
Para una configuración segura, debe seguir el principio de mínimo privilegio, permitiendo explícitamente solo el tráfico entrante necesario.
Grupo de Seguridad de Ejemplo para un Servidor Web (Subred Privada)
Si esta instancia EC2 es un servidor de aplicaciones accesible solo desde un Application Load Balancer (ALB) ubicado en la subred pública, las reglas deben ser muy restrictivas:
Reglas Entrantes (Inbound)
| 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 su Red Corporativa o ID de SG del Host Bastión |
Reglas Salientes (Outbound)
Por defecto, el tráfico saliente generalmente se permite a todos los destinos (0.0.0.0/0). Puede restringir esto aún más si es necesario (por ejemplo, solo permitiendo conexiones a una SG de instancia RDS).
Consejo de Seguridad: Nunca asigne
0.0.0.0/0al puerto 22 (SSH) o al puerto 3389 (RDP) en un grupo de seguridad orientado al público. Restrinja siempre el acceso de administración a rangos de IP internos conocidos.
Paso 4: Lanzamiento Seguro de la Instancia EC2
Al lanzar su instancia, asegúrese de mapearla a los componentes de red correctos establecidos anteriormente.
- Elegir AMI y Tipo de Instancia: Seleccione su Amazon Machine Image (AMI) y especificaciones de hardware deseadas.
- Configuración de Red: En el paso 'Configurar Detalles de la Instancia':
- Red: Seleccione su VPC Personalizada.
- Subred: Seleccione la Subred Privada (
10.0.2.0/24) si está lanzando un servidor de aplicaciones que no debe exponerse directamente a Internet. - Asignar IP Pública Automáticamente: Asegúrese de que esté Deshabilitada si lanza en una subred privada. (Si selecciona una subred pública, puede habilitar esto para una instancia que necesite acceso público directo, como un host bastión).
- Grupos de Seguridad: Seleccione el Grupo de Seguridad que configuró en el Paso 3.
- Almacenamiento y Par de Claves: Configure el almacenamiento y asocie un par de claves para un acceso SSH seguro.
Acceso a Instancias en una Subred Privada
Dado que la instancia que reside en la subred privada no tiene una dirección IP pública, no puede hacer SSH directamente desde Internet público. Debe utilizar uno de dos métodos seguros:
- Bastion Host (Jump Box): Lance una instancia EC2 pequeña y reforzada en la Subred Pública. Primero se conecta por SSH al host bastión y luego, desde el host bastión, se conecta por SSH a la instancia privada utilizando su dirección IP privada.
- AWS Systems Manager (SSM) Session Manager: Este es el método moderno preferido. Si la instancia tiene instalado el agente SSM y un rol IAM apropiado adjunto que permita la conectividad SSM, puede 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 red desde el nivel macro (VPC, Subredes, Tablas de Ruteo) hasta el nivel micro (Grupos de Seguridad). Al controlar cuidadosamente el direccionamiento IP y el flujo de tráfico:
- Se asegura de que los servidores de aplicaciones residan en subredes privadas aisladas.
- Se utiliza el IGW o NAT Gateway solo cuando es necesario.
- Se aplica el principio de mínimo privilegio a través de las reglas de entrada del Grupo de Seguridad.
Una vez que su instancia esté lanzada, recuerde monitorear su actividad utilizando AWS CloudTrail y VPC Flow Logs para mantener una visibilidad continua del tráfico de su red privada.