Guía para construir una VPC segura de AWS desde cero
Amazon Web Services (AWS) Virtual Private Cloud (VPC) es un bloque de construcción fundamental para desplegar aplicaciones y recursos en la nube. Proporciona una sección lógicamente aislada de AWS Cloud donde puede lanzar recursos de AWS en una red virtual que usted defina. Construir una VPC segura desde cero es crucial para proteger sus datos y aplicaciones del acceso no autorizado. Esta guía le guiará a través de los pasos esenciales para diseñar y configurar una nueva VPC, cubriendo componentes clave como subredes, tablas de rutas y consideraciones de seguridad críticas para una segmentación y aislamiento de red óptimos.
Una VPC bien diseñada es la base de una infraestructura de nube segura. Le permite controlar su entorno de red, definir reglas de acceso y segmentar sus recursos según su sensibilidad y función. Al planificar e implementar cuidadosamente su VPC, puede mejorar significativamente la postura de seguridad de su implementación de AWS, reduciendo la superficie de ataque y previniendo la exposición involuntaria de datos. Esta guía le proporcionará el conocimiento para crear una VPC robusta y segura adaptada a sus necesidades específicas.
Comprensión de los conceptos centrales de VPC
Antes de adentrarnos en los pasos de configuración, es esencial comprender los conceptos fundamentales de AWS VPC:
- VPC (Virtual Private Cloud): Una red virtual dedicada a su cuenta de AWS. Es una sección lógicamente aislada de AWS Cloud donde puede lanzar recursos de AWS.
- Subred: Un rango de direcciones IP dentro de su VPC. Puede lanzar recursos de AWS en subredes que usted cree. Las subredes se definen por su bloque CIDR, que es un subconjunto del bloque CIDR de la VPC.
- Tabla de Rutas: Un conjunto de reglas, llamadas rutas, que se utilizan para determinar hacia dónde se dirige el tráfico de red desde su subred o puerta de enlace.
- Internet Gateway (IGW): Un componente de VPC que permite la comunicación entre su VPC y Internet. Permite que las instancias en su VPC se conecten a Internet y viceversa.
- NAT Gateway (Network Address Translation): Un servicio NAT altamente disponible y escalable que permite el acceso a Internet para instancias en una subred privada, al tiempo que evita las conexiones entrantes iniciadas desde Internet.
- Grupo de Seguridad: Actúa como un firewall virtual para sus instancias para controlar el tráfico entrante y saliente. Opera a nivel de instancia.
- Network Access Control List (NACL): Una capa opcional de seguridad para su VPC que actúa como un firewall para controlar el tráfico dentro y fuera de una o más subredes. Opera a nivel de subred.
Creación de VPC paso a paso
Comencemos a construir su VPC segura.
1. Planifique su esquema de direcciones IP
El primer y más crítico paso es planificar su rango de direcciones IP para la VPC y sus subredes. Esto implica seleccionar un bloque de enrutamiento de dominio sin clases (CIDR) para su VPC.
-
Bloque CIDR de VPC: Elija un rango de direcciones IP privadas que no se superponga con su red local o con ninguna otra VPC de AWS a la que pueda conectarse a través de VPN o Direct Connect. AWS recomienda el uso de rangos de IP RFC 1918 (10.0.0.0/8, 172.16.0.0/12 o 192.168.0.0/16). El bloque CIDR puede ser de /16 (65.536 direcciones IP) a /28 (16 direcciones IP).
- Ejemplo:
10.0.0.0/16proporciona un gran espacio de direcciones para su VPC.
- Ejemplo:
-
Bloques CIDR de subred: Divida el bloque CIDR de su VPC en bloques CIDR más pequeños para sus subredes. Asegúrese de que el bloque CIDR de cada subred sea un subconjunto del bloque CIDR de la VPC y no se superponga con otras subredes.
- **Ejemplo (si la VPC es
10.0.0.0/16):- Subred pública 1:
10.0.1.0/24 - Subred pública 2:
10.0.2.0/24 - Subred privada 1:
10.0.10.0/24 - Subred privada 2:
10.0.11.0/24
- Subred pública 1:
- **Ejemplo (si la VPC es
2. Cree su VPC
Navegue al panel de VPC en la Consola de Administración de AWS y cree una nueva VPC.
- Vaya a Panel de VPC > Sus VPC > Crear VPC.
- Etiqueta de nombre: Asigne un nombre descriptivo a su VPC (por ejemplo,
MiVPCsegura). - Bloque CIDR IPv4: Ingrese el bloque CIDR que planeó (por ejemplo,
10.0.0.0/16). - Bloque CIDR IPv6: Puede optar por habilitar un bloque CIDR IPv6 si es necesario.
- Tenencia: Para la mayoría de los casos de uso, Predeterminado es adecuado. Dedicado ofrece aislamiento de hardware a un costo mayor.
- Haga clic en Crear VPC.
3. Cree subredes
Ahora, cree sus subredes públicas y privadas dentro de la VPC.
- Vaya a Panel de VPC > Subredes > Crear subred.
- ID de VPC: Seleccione la VPC que acaba de crear.
- Nombre de subred: Proporcione un nombre (por ejemplo,
MiSubredPublica-AZ1). - Zona de Disponibilidad: Elija una Zona de Disponibilidad (AZ). Es una buena práctica implementar recursos en múltiples AZ para alta disponibilidad.
- Bloque CIDR IPv4: Ingrese el bloque CIDR para esta subred (por ejemplo,
10.0.1.0/24). - Haga clic en Crear subred.
Repita este proceso para crear todas sus subredes públicas y privadas planificadas, asegurándose de que estén en diferentes Zonas de Disponibilidad para mayor resiliencia.
4. Cree un Internet Gateway (IGW)
Se necesita un IGW para que sus subredes públicas accedan a Internet.
- Vaya a Panel de VPC > Internet Gateways > Crear Internet Gateway.
- Etiqueta de nombre:
MiIGWdeVPC. - Haga clic en Crear Internet Gateway.
- Después de la creación, seleccione el IGW, haga clic en Acciones y elija Adjuntar a VPC. Seleccione su VPC y haga clic en Adjuntar Internet Gateway.
5. Cree Tablas de Rutas
Las tablas de rutas dirigen el tráfico dentro de su VPC. Normalmente necesitará al menos dos: una para subredes públicas y otra para subredes privadas.
a. Tabla de Rutas Pública:
- Vaya a Panel de VPC > Tablas de Rutas > Crear tabla de rutas.
- Etiqueta de nombre:
MiTablaRutasPublica. - VPC: Seleccione su VPC.
- Haga clic en Crear tabla de rutas.
- Seleccione la
MiTablaRutasPublicarecién creada. - En la pestaña Rutas, haga clic en Editar rutas.
- Haga clic en Agregar ruta.
- Destino:
0.0.0.0/0(todo el tráfico IPv4). - Destino: Seleccione Internet Gateway y elija su IGW.
- Haga clic en Guardar rutas.
- Asociar Subredes: Vaya a la pestaña Asociaciones de subredes, haga clic en Editar asociaciones de subredes y asocie sus subredes públicas con esta tabla de rutas.
b. Tabla de Rutas Privada (con NAT Gateway):
Para permitir que las instancias en subredes privadas inicien conexiones salientes a Internet (por ejemplo, para actualizaciones de software) sin ser accesibles directamente desde Internet, utilizará una NAT Gateway.
-
Crear una NAT Gateway:
- Vaya a Panel de VPC > NAT Gateways > Crear NAT Gateway.
- Nombre:
MiNATGateway. - Subred: Seleccione una de sus subredes públicas.
- Tipo de conectividad:
Público. - ID de asignación de IP Elástica: Haga clic en Asignar IP Elástica para crear y asignar una nueva dirección IP Elástica.
- Haga clic en Crear NAT Gateway.
- Nota: Las NAT Gateways incurren en costos. Para conectividad saliente básica, asegúrese de tener suficientes direcciones IP disponibles en su subred pública para la NAT Gateway..
-
Crear la Tabla de Rutas Privada:
- Vaya a Panel de VPC > Tablas de Rutas > Crear tabla de rutas.
- Etiqueta de nombre:
MiTablaRutasPrivada. - VPC: Seleccione su VPC.
- Haga clic en Crear tabla de rutas.
- Seleccione la
MiTablaRutasPrivada. - En la pestaña Rutas, haga clic en Editar rutas.
- Haga clic en Agregar ruta.
- Destino:
0.0.0.0/0. - Destino: Seleccione NAT Gateway y elija su NAT Gateway.
- Haga clic en Guardar rutas.
- Asociar Subredes: Vaya a la pestaña Asociaciones de subredes, haga clic en Editar asociaciones de subredes y asocie sus subredes privadas con esta tabla de rutas.
6. Configure Grupos de Seguridad
Los Grupos de Seguridad actúan como firewalls stateful a nivel de instancia. Permiten o deniegan tráfico basándose en reglas que usted defina.
- Mejor Práctica: Cree grupos de seguridad específicos para diferentes tipos de recursos (por ejemplo, servidores web, servidores de bases de datos, servidores de aplicaciones). Evite usar reglas excesivamente permisivas.
Ejemplo: Grupo de Seguridad para Servidor Web (WebServerSG)
- Vaya a Panel de VPC > Grupos de Seguridad > Crear grupo de seguridad.
- Nombre del grupo de seguridad:
WebServerSG. - Descripción:
Permitir acceso HTTP y HTTPS. - VPC: Seleccione su VPC.
- Reglas de entrada:
- Tipo:
HTTP, Protocolo:TCP, Rango de puertos:80, Origen:0.0.0.0/0(o un rango de IP confiable más específico). - Tipo:
HTTPS, Protocolo:TCP, Rango de puertos:443, Origen:0.0.0.0/0(o un rango de IP confiable más específico). - (Opcional) Tipo:
SSH, Protocolo:TCP, Rango de puertos:22, Origen:Su dirección IP/rango de IP confiable(crucial para la administración).
- Tipo:
- Reglas de salida: Por defecto, permita todo el tráfico de salida (
0.0.0.0/0). Puede restringirlo si es necesario. - Haga clic en Crear grupo de seguridad.
Ejemplo: Grupo de Seguridad para Servidor de Base de Datos (DatabaseSG)
- Cree un nuevo grupo de seguridad llamado
DatabaseSG. - Reglas de entrada:
- Agregue una regla que permita el tráfico en el puerto predeterminado de su base de datos (por ejemplo,
3306para MySQL,5432para PostgreSQL) únicamente desde el grupo de seguridad de sus servidores de aplicaciones (por ejemplo,WebServerSGoAppServerSG). - Origen: Seleccione Personalizado y luego escriba el ID de su grupo de seguridad de servidor de aplicaciones.
- Agregue una regla que permita el tráfico en el puerto predeterminado de su base de datos (por ejemplo,
- Reglas de salida: Típicamente permite todo el tráfico de salida.
7. Configure Listas de Control de Acceso de Red (NACLs)
Las NACLs son firewalls stateless que operan a nivel de subred. Actúan como una capa adicional de defensa.
-
Stateful vs. Stateless: Los Grupos de Seguridad son stateful (si permite tráfico de entrada, la respuesta de salida se permite automáticamente). Las NACLs son stateless (debe definir explícitamente reglas tanto para el tráfico de entrada como para el de salida).
-
Mejor Práctica: Las NACLs a menudo se dejan con configuraciones predeterminadas a menos que se requiera un control de acceso específico a nivel de subred. Pueden ser complejas de administrar.
Si necesita usar NACLs:
- Vaya a Panel de VPC > Network ACLs > Crear Network ACL.
- Etiqueta de nombre:
MiNacl. - VPC: Seleccione su VPC.
- Haga clic en Crear Network ACL.
- Seleccione la NACL y, en Reglas de entrada, agregue reglas.
- Números de Regla: Las NACLs evalúan las reglas en orden, comenzando por la regla con el número más bajo. Use números como
100,200,300, etc., para permitir la inserción de reglas futuras. - Permitir/Denegar: Especifique si se debe permitir o denegar el tráfico.
- Protocolo, Rango de Puertos, Origen/Destino: Defina los parámetros del tráfico.
- Recuerde configurar Reglas de Salida correspondientes.
- Asocie la NACL con sus subredes yendo a la pestaña Asociaciones de Subredes.
Escenario de Despliegue de Ejemplo
Considere una aplicación web típica:
- VPC:
10.0.0.0/16 - Subred pública 1 (
us-east-1a):10.0.1.0/24(Asociada conMiTablaRutasPublicay IGW) - Subred pública 2 (
us-east-1b):10.0.2.0/24(Asociada conMiTablaRutasPublicay IGW) - Subred privada 1 (
us-east-1a):10.0.10.0/24(Asociada conMiTablaRutasPrivaday NAT Gateway) -
Subred privada 2 (
us-east-1b):10.0.11.0/24(Asociada conMiTablaRutasPrivaday NAT Gateway) -
Internet Gateway: Adjunto a la VPC.
- NAT Gateway: Desplegada en
Subred pública 1con una IP Elástica. - Tabla de Rutas Pública: Dirige
0.0.0.0/0al IGW. Asociada con Subredes Públicas. -
Tabla de Rutas Privada: Dirige
0.0.0.0/0a la NAT Gateway. Asociada con Subredes Privadas. -
Grupo de Seguridad para Balanceadores de Carga (en Subredes Públicas): Permite HTTP/HTTPS desde
0.0.0.0/0. - Grupo de Seguridad para Servidores Web (en Subredes Privadas): Permite HTTP/HTTPS desde el SG del Balanceador de Carga, y SSH desde su IP confiable.
- Grupo de Seguridad para Bases de Datos (en Subredes Privadas): Permite MySQL/PostgreSQL desde el SG del Servidor Web.
Consideraciones Críticas de Seguridad
- Principio de Menor Privilegio: Otorgue solo los permisos necesarios para sus grupos de seguridad y NACLs. Restrinja las direcciones IP de origen tanto como sea posible.
- Use Múltiples Zonas de Disponibilidad: Distribuya sus subredes y recursos en múltiples AZ para alta disponibilidad y recuperación ante desastres. Esto se logra creando subredes en diferentes AZ y asociándolas con tablas de rutas apropiadas.
- Revise Regularmente Grupos de Seguridad y NACLs: A medida que su aplicación evoluciona, también deben hacerlo sus reglas de seguridad. Audítelas y actualícelas periódicamente.
- Evite Subredes Públicas para Recursos Sensibles: Las bases de datos, servidores de aplicaciones y otros recursos sensibles deben residir en subredes privadas. Solo los recursos que requieran acceso directo a Internet (como balanceadores de carga o hosts bastión) deben estar en subredes públicas.
- Considere Hosts Bastión: Si necesita acceder por SSH a instancias en subredes privadas, considere usar un host bastión endurecido en una subred pública. Restrinja el acceso SSH al host bastión a direcciones IP conocidas.
- VPC Flow Logs: Habilite VPC Flow Logs para capturar información sobre el tráfico IP que va y viene de las interfaces de red en su VPC. Esto es invaluable para el monitoreo de seguridad y la resolución de problemas.
- Segmentación de Red: Use diferentes VPCs y subredes para segmentar entornos (por ejemplo, desarrollo, staging, producción) y diferentes niveles de su aplicación.
Conclusión
Construir una VPC segura de AWS desde cero implica una planificación y configuración cuidadosa de sus componentes principales. Al comprender los bloques CIDR, las subredes, las tablas de rutas y al aprovechar de manera efectiva los grupos de seguridad y las NACLs, puede establecer un entorno de red robusto y aislado para sus recursos de AWS. Recuerde que la seguridad es un proceso continuo, por lo que el monitoreo constante, la revisión y la adhesión a las mejores prácticas son primordiales para mantener una infraestructura de nube segura.