DEV Community

Cover image for Cómo implementar AWS Network Firewall en una arquitectura multicuenta utilizando Transit Gateway
Cristhian Becerra
Cristhian Becerra

Posted on

Cómo implementar AWS Network Firewall en una arquitectura multicuenta utilizando Transit Gateway

Este artículo te guiará a través de la implementación de AWS Network Firewall en una arquitectura multicuenta de alta disponibilidad (que abarca 3 zonas de disponibilidad) en conjunto con un Transit Gateway para conectar VPCs a través de diferentes cuentas dentro de una estructura de AWS Organizations. La arquitectura sigue un patrón de Hub & Spoke, donde la cuenta Hub es la cuenta de Networking, y las cuentas Spoke incluyen Desarrollo, QA, Producción y DevOps.

En un entorno multicuenta, AWS Network Firewall juega un papel clave al proporcionar protección de red centralizada, permitiendo controles de seguridad consistentes e inspección de tráfico a través de todas las cuentas. Esta implementación adopta un modelo de ingreso centralizado, egreso centralizado e inspección centralizada, asegurando que el tráfico entrante, saliente y entre VPCs sea enrutado de manera segura a través de una única capa de inspección gestionada por la cuenta de Networking.

AWS Organization Accounts


Pasos de Implementación

Las siguientes secciones proporcionan un recorrido paso a paso del proceso de configuración de la red, mostrando cómo cada componente, incluyendo el Transit Gateway, VPCs compartidas, VPCs de carga de trabajo y AWS Network Firewall, se integra para crear una base segura y escalable para la conectividad y la inspección entre cuentas.


Configura el Transit Gateway

  1. Crea un Transit Gateway.

  2. Crea dos tablas de enrutamiento de Transit Gateway:

    • tgw-default-association-rtb
    • tgw-default-propagation-rtb
  3. Modifica el Transit Gateway y asigna:

    • tgw-default-association-rtb como la Tabla de Enrutamiento de Asociación Predeterminada
    • tgw-default-propagation-rtb como la Tabla de Enrutamiento de Propagación Predeterminada
  4. En AWS RAM, crea un Resource Share con:

    • El Transit Gateway recién creado como el Shared resource
    • Las cuentas Spoke como los Shared principals
  5. (Opcional) Crea un TGW Flow Log para el Transit Gateway para monitorear y registrar el tráfico que fluye a través de él.

Transit Gateway

Notas para la Creación de Subred y Selección de Zona de Disponibilidad:

  • Creación de Subred: Cuando creas una VPC que tendrá conectividad con el Transit Gateway (TGW), se recomienda crear una subred /28 exclusivamente para alojar las Interfaces de Red Elásticas (ENIs) desplegadas por TGW. Esto sigue las mejores prácticas para una gestión eficiente de recursos.

  • Selección de AZ: Elige el mismo ID de Zona de Disponibilidad (AZ), en lugar del nombre de AZ, para evitar cargos por tráfico entre zonas. Por ejemplo, en este caso, estamos usando use1-az1, use1-az2, use1-az4. Es importante notar que us-east-1a y us-east-1b son alias únicos para cada cuenta de AWS. Para asegurarte de que despliegas tus recursos en la misma AZ, usa IDs de AZ en lugar de alias.

  • Soporte de Network Firewall: AWS Network Firewall no es soportado en us1-az3, por lo que elegimos usar use1-az4 en su lugar.

  • Identificación de Subred: Se recomienda añadir el ID de AZ en la etiqueta de nombre de la subred y la tabla de enrutamiento asociada para una fácil identificación y gestión.


Construye la VPC de Ingreso

  1. Crea una VPC (por ejemplo, nombrada VPC de ingreso, CIDR 10.20.0.0/20) con:

    • 3 subredes públicas (por ejemplo, /22)
    • 3 subredes privadas para conectividad TGW (/28)
    • 1 Internet Gateway
  2. Crea un Transit Gateway attachment entre el Transit Gateway y la VPC de Ingreso, seleccionando los IDs de Subred de las 3 subredes de conectividad TGW.

  3. Configura la Tabla de Enrutamiento de Subred de Conectividad TGW (esta tabla de enrutamiento solo tendrá una ruta local):

    • ingress-vpc-tgw-connectivity-rtb

      Destino Objetivo Descripción
      10.20.0.0/20 local VPC de Ingreso
  4. Configura la Tabla de Enrutamiento de Subred Pública (esta tabla de enrutamiento necesita una ruta 0.0.0.0/0 al Internet Gateway y rutas a los CIDRs de las VPCs Spoke para ir a través del attachment TGW):

    • ingress-vpc-public-rtb

      Destino Objetivo Descripción
      10.20.0.0/20 local VPC de Ingreso
      10.21.0.0/16 tgw VPC de Desarrollo
      10.22.0.0/16 tgw VPC de QA
      10.23.0.0/16 tgw VPC de Producción
      10.24.0.0/16 tgw VPC de DevOps
      0.0.0.0/0 igw Acceso a Internet
  5. Opcional: Crea un VPC Flow Log para la VPC para monitorear y registrar el tráfico que fluye a través de la VPC de Ingreso.

VPC de Ingreso


Construye la VPC de Inspección

  1. Crea una VPC (por ejemplo, nombrada VPC de inspección, CIDR 10.20.16.0/20) con:

    • 3 subredes privadas para Network Firewall (por ejemplo, /22)
    • 3 subredes privadas para conectividad TGW (/28)
  2. Crea un Transit Gateway attachment entre el Transit Gateway y la VPC de Inspección, seleccionando los IDs de Subred de las 3 subredes de conectividad TGW. Habilita Appliance Mode Support.

    • Nota: Habilitar Appliance Mode en el attachment del Transit Gateway asegura que todo el tráfico de una sesión fluya a través del mismo firewall en la misma Zona de Disponibilidad, previniendo que el tráfico entre AZ sea inspeccionado por el firewall. Esta configuración es importante para mantener una inspección de tráfico consistente y mejorar el rendimiento en arquitecturas multi-AZ.
  3. Edita manualmente las Tablas de Enrutamiento del Transit Gateway:

    • Remueve la propagación del attachment de la VPC de Inspección en la Tabla de Enrutamiento de Propagación Predeterminada del TGW.
    • Remueve la asociación del attachment de la VPC de Inspección en la Tabla de Enrutamiento de Asociación Predeterminada del TGW.
    • Asocia la Tabla de Enrutamiento de Propagación Predeterminada del TGW con el Attachment de la VPC de Inspección.
    • En la Tabla de Enrutamiento de Asociación Predeterminada del TGW, crea una ruta estática a 0.0.0.0/0 hacia el Attachment de la VPC de Inspección.
  4. En la consola de AWS Network Firewall:

    • Elige Crear firewall.
    • En Describir firewall: Añade un nombre y (opcionalmente) una descripción.
    • En Tipo de asociación: Elige “VPC” y selecciona la VPC de Inspección.
    • En Subredes del Firewall: Selecciona las 3 subredes privadas (no las subredes de conectividad).
    • En Asociar Política de Firewall: Elige “Crear y asociar una política de firewall vacía” y especifica un nuevo nombre de política de firewall.
    • Crea el firewall; esto tomará unos minutos.
  5. Configura las Tablas de Enrutamiento de Subred de Conectividad TGW (una por AZ). En cada tabla de enrutamiento, añade una ruta a su correspondiente endpoint de VPC de AWS Network Firewall (de tipo Gateway Load Balancer Endpoint) por AZ:

    • inspection-vpc-tgw-connectivity-rtb-use1-az1

      Destino Objetivo Descripción
      10.20.16.0/20 local VPC de Inspección
      0.0.0.0/0 nfw-use1-az1 Endpoint de firewall para use1-az1
    • inspection-vpc-tgw-connectivity-rtb-use1-az2

      Destino Objetivo Descripción
      10.20.16.0/20 local VPC de Inspección
      0.0.0.0/0 nfw-use1-az2 Endpoint de firewall para use1-az2
    • inspection-vpc-tgw-connectivity-rtb-use1-az4

      Destino Objetivo Descripción
      10.20.16.0/20 local VPC de Inspección
      0.0.0.0/0 nfw-use1-az4 Endpoint de firewall para use1-az4
  6. Configura la Tabla de Enrutamiento de Subred Privada (esta tabla de enrutamiento necesita una ruta 0.0.0.0/0 al attachment del Transit Gateway):

    • inspection-vpc-private-rtb

      Destino Objetivo Descripción
      10.20.16.0/20 local VPC de Inspección
      0.0.0.0/0 tgw Transit Gateway
  7. Opcional: Crea un VPC Flow Log para la VPC para monitorear y registrar el tráfico que fluye a través de la VPC de Inspección.

VPC de Inspección


Construye la VPC de Egreso

  1. Crea una VPC (por ejemplo, nombrada VPC de egreso, CIDR 10.20.32.0/20) con:

    • 3 subredes públicas (por ejemplo, /22)
    • 3 subredes privadas para conectividad TGW (/28)
    • 1 Internet Gateway
    • 1 NAT Gateway por AZ para alta disponibilidad
  2. Crea un Transit Gateway attachment entre el Transit Gateway y la VPC de Egreso, seleccionando los IDs de Subred de las 3 subredes de conectividad TGW.

  3. Edita manualmente las Tablas de Enrutamiento del Transit Gateway:

    • En la Tabla de Enrutamiento de Propagación Predeterminada del TGW, crea una ruta estática a 0.0.0.0/0 hacia el Attachment de la VPC de Egreso.
  4. Configura las Tablas de Enrutamiento de Subred de Conectividad TGW (crea una tabla de enrutamiento por AZ, y en cada tabla añade una ruta 0.0.0.0/0 a su correspondiente NAT Gateway):

    • egress-vpc-tgw-connectivity-rtb-use1-az1

      Destino Objetivo Descripción
      10.20.32.0/20 local VPC de Egreso
      0.0.0.0/0 natgw-use1-az1 NAT para use1-az1
    • egress-vpc-tgw-connectivity-rtb-use1-az2

      Destino Objetivo Descripción
      10.20.32.0/20 local VPC de Egreso
      0.0.0.0/0 natgw-use1-az2 NAT para use1-az2
    • egress-vpc-tgw-connectivity-rtb-use1-az4

      Destino Objetivo Descripción
      10.20.32.0/20 local VPC de Egreso
      0.0.0.0/0 natgw-use1-az4 NAT para use1-az4
  5. Configura la Tabla de Enrutamiento de Subred Pública (esta tabla de enrutamiento necesita una ruta 0.0.0.0/0 al Internet Gateway y rutas a los CIDRs de las VPCs Spoke para ir a través del attachment TGW):

    • egress-vpc-public-rtb

      Destino Objetivo Descripción
      10.20.32.0/20 local VPC de Egreso
      10.21.0.0/16 tgw VPC de Desarrollo
      10.22.0.0/16 tgw VPC de QA
      10.23.0.0/16 tgw VPC de Producción
      10.24.0.0/16 tgw VPC de DevOps
      0.0.0.0/0 igw Acceso a Internet
  6. Opcional: Crea un VPC Flow Log para la VPC para monitorear y registrar el tráfico que fluye a través de la VPC de Egreso.

VPC de Egreso


Construye las VPCs de Carga de Trabajo

  1. Crea una VPC (por ejemplo, nombrada VPC de desarrollo, CIDR 10.21.0.0/16) con:

    • 3 subredes privadas para cargas de trabajo (por ejemplo, /20)
    • 3 subredes privadas para conectividad TGW (/28)
  2. Crea un Transit Gateway attachment entre el Transit Gateway y la VPC, seleccionando los IDs de Subred de las 3 subredes de conectividad TGW.

  3. Configura la Tabla de Enrutamiento de Subred de Conectividad TGW — esta tabla de enrutamiento solo tendrá una ruta local:

    • development-vpc-tgw-connectivity-rtb

      Destino Objetivo Descripción
      10.21.0.0/16 local VPC de Desarrollo
  4. Configura la Tabla de Enrutamiento de Subred Privada — añade una ruta 0.0.0.0/0 al attachment del Transit Gateway:

    • development-vpc-private-rtb

      Destino Objetivo Descripción
      10.21.0.0/16 local VPC de Desarrollo
      0.0.0.0/0 tgw Transit Gateway
  5. Opcional: Crea un VPC Flow Log para la VPC para monitorear y registrar el tráfico que fluye a través de la VPC de Carga de Trabajo.

VPC de Carga de Trabajo


Configura AWS Network Firewall

Este artículo se enfoca principalmente en configurar la Baseline de Red y el enrutamiento necesario para usar Network Firewall. A un alto nivel, AWS Network Firewall es un servicio gestionado que te permite proteger tu red filtrando el tráfico hacia y desde tus VPCs. Proporciona un firewall stateful y un sistema de detección y prevención de intrusiones que puede ser desplegado en línea con tu tráfico de red, inspeccionando y filtrando paquetes en tiempo real.

  1. En el Firewall, habilita el registro de Alerta y Flujo, y configura CloudWatch como el destino de los logs creando los grupos de logs necesarios.
  2. Opcional: Edita la Política de Firewall previamente creada para:
    • Añadir grupos de reglas gestionados por AWS
    • Crear y añadir grupos de reglas stateless
    • Crear y añadir grupos de reglas stateful

Revisa la Arquitectura Final

La arquitectura desplegada sigue un modelo de inspección centralizada usando AWS Transit Gateway y AWS Network Firewall para controlar y monitorear el tráfico entre VPCs compartidas y de carga de trabajo.

  1. La Tabla de Enrutamiento de Asociación Predeterminada del Transit Gateway debería verse así:

    • tgw-default-association-rtb

      CIDR Attachment Tipo de Recurso Tipo de Ruta
      0.0.0.0/0 AWS Network Firewall Firewall Estático
  2. La Tabla de Enrutamiento de Propagación Predeterminada del Transit Gateway debería verse así:

    • tgw-default-propagation-rtb

      CIDR Attachment Tipo de Recurso Tipo de Ruta
      10.21.0.0/16 VPC de Desarrollo VPC Propagado
      10.22.0.0/16 VPC de QA VPC Propagado
      10.23.0.0/16 VPC de Producción VPC Propagado
      10.24.0.0/16 VPC de DevOps VPC Propagado
      10.20.0.0/20 VPC de Ingreso VPC Propagado
      10.20.32.0/20 VPC de Egreso VPC Propagado
      0.0.0.0/0 VPC de Egreso VPC Estático
  3. Si las tablas de enrutamiento no aparecen como se esperaba, desasocia y remueve cualquier asociación o propagación incorrecta, luego reasocia y repropaga los attachments con las tablas de enrutamiento apropiadas hasta que las tablas reflejen la configuración correcta.

El siguiente diagrama de arquitectura ilustra la configuración multicuenta final, donde el tráfico de las cuentas spoke (Desarrollo, QA, Producción y DevOps) es enrutado a través de la capa de inspección centralizada.

Arquitectura Desplegada


Valida Conectividad e Inspección de Tráfico

  1. Opcionalmente, despliega instancias EC2 en las VPCs de Carga de Trabajo en subredes privadas de carga de trabajo a través de diferentes cuentas.

    • Conecta usando Session Manager e intenta hacer ping entre las IPs privadas de las instancias.
    • Asegúrate de que los grupos de seguridad permitan ICMP entrante y HTTPS saliente (443) a Internet (para Session Manager).
    • Los pings deberían ser exitosos.
  2. Opcionalmente, despliega una VPN de cliente como OpenVPN o WireGuard en una instancia EC2 en una subred pública en la VPC de Ingreso.

    • Conecta a través de la VPN e intenta hacer ping a las IPs privadas de las instancias EC2 en las VPCs de Carga de Trabajo.
    • Asegúrate de que los grupos de seguridad permitan ICMP entrante.
    • Los pings deberían ser exitosos.
  3. Revisa los Grupos de Logs de CloudWatch para verificar los logs de Firewall de tipo Flujo. Deberías ver que todo el tráfico de prueba está pasando exitosamente a través del Network Firewall.

    • El Grupo de Logs de tipo Alerta debería estar vacío por ahora, ya que la Política de Firewall de Red no ha sido configurada aún o el tráfico de prueba no coincide con ninguna regla de alerta.

Bonus: Attachment de Transit Gateway de Network Firewall

Durante re:Inforce 2025, AWS anunció la nueva característica de Attachment de Transit Gateway de Network Firewall, que reemplaza el patrón tradicional de “VPC de Inspección”, simplificando la implementación y mejorando la visibilidad del tráfico.

En lugar del paso "4. Crear VPC de Inspección", harías "4. Crear Attachment de Transit Gateway de Network Firewall".

  1. En la consola de AWS Network Firewall:

    1. Selecciona Crear firewall.
    2. En Describir firewall: Añade un nombre y descripción para el firewall (opcional).
    3. En Tipo de Attachment: Elige Transit Gateway y selecciona el Transit Gateway.
    4. En Zonas de Disponibilidad: Selecciona las 3 Zonas de Disponibilidad con las que has estado trabajando.
    5. En Asociar Política de Firewall: Selecciona Crear y asociar una política de firewall vacía y especifica un nuevo nombre para la política de firewall.
    6. Crea el Firewall; tardará unos minutos.
  2. Edita manualmente las Tablas de Enrutamiento de Transit Gateway:

    1. Remueve la propagación del attachment de Network Firewall TGW en la Tabla de Enrutamiento de Propagación Predeterminada del TGW.
    2. Remueve la asociación del attachment de Network Firewall TGW en la Tabla de Enrutamiento de Asociación Predeterminada del TGW.
    3. Asocia la Tabla de Enrutamiento de Propagación Predeterminada del TGW con el attachment de Network Firewall TGW.
    4. En la Tabla de Enrutamiento de Asociación Predeterminada del TGW, crea una ruta estática a 0.0.0.0/0 hacia el nuevo attachment de Network Firewall TGW.
  3. La Tabla de Enrutamiento de Asociación Predeterminada del Transit Gateway se verá así:

    • tgw-default-association-rtb

      CIDR Attachment Tipo de Recurso Tipo de Ruta
      0.0.0.0/0 AWS Network Firewall Firewall Estático
  4. La Tabla de Enrutamiento de Propagación Predeterminada del Transit Gateway permanecerá sin cambios en este escenario.

Attachment de Transit Gateway de Network Firewall


Conclusión

En conclusión, implementar AWS Network Firewall en una arquitectura multicuenta con Transit Gateway proporciona una infraestructura de red robusta, escalable y segura. Siguiendo los pasos descritos en este artículo, puedes implementar y configurar efectivamente Network Firewall para proteger tus VPCs a través de diferentes cuentas dentro de una estructura de AWS Organizations. El patrón Hub & Spoke, combinado con la alta disponibilidad de 3 Zonas de Disponibilidad, asegura que tu red sea resiliente y capaz de manejar varios patrones de tráfico y requisitos de seguridad. Además, el uso de VPC Flow Logs y el registro de Network Firewall permite un monitoreo y análisis detallado del tráfico de red, permitiéndote identificar y responder a posibles amenazas de seguridad con prontitud.

Top comments (0)