0Pricing
AWS Solutions Architect · Lección

Network ACL frente a grupos de seguridad

Compare las Network ACL sin estado con los grupos de seguridad con estado y sepa cuándo utilizar cada uno para una defensa de red por capas.

Network ACL frente a grupos de seguridad es una lección gratuita de AWS Solutions Architect en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de AWS Solutions Architect, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de AWS Solutions Architect incluye 4 lecciones en total.

Dos capas de seguridad de red

AWS proporciona dos mecanismos de firewall distintos dentro de una VPC. Los grupos de seguridad operan en el nivel de la instancia (técnicamente, en el nivel de la ENI) y tienen estado. Las Network Access Control Lists (NACL) operan en el nivel de la subred y no tienen estado. Ambos se evalúan para cualquier tráfico que entre o salga de una subred y de sus instancias asociadas. Utilizarlos conjuntamente proporciona una defensa en profundidad: las NACL como primera línea en el límite de la subred y los grupos de seguridad como firewall por instancia. El examen SAA-C03 compara con frecuencia estos dos mecanismos.

NACL: firewall sin estado a nivel de subred

Una Network ACL (NACL) es una lista numerada de reglas que se aplica a todo el tráfico que cruza el límite de una subred. Las NACL no tienen estado: cada paquete se evalúa de forma independiente. Si permite el puerto TCP 80 entrante, debe permitir explícitamente el tráfico de respuesta saliente (puertos efímeros 1024-65535) para que la respuesta pueda salir de la subred. Las reglas se evalúan en orden numérico (primero el número más bajo); se aplica la primera regla coincidente y no se comprueban las siguientes. Cada VPC incluye una NACL predeterminada que permite todo el tráfico entrante y saliente.

# Deny all traffic from a specific IP in the NACL
aws ec2 create-network-acl-entry \
  --network-acl-id acl-12345678 \
  --ingress \
  --rule-number 90 \
  --protocol tcp \
  --cidr-block 203.0.113.10/32 \
  --rule-action deny \
  --port-range From=0,To=65535

Numeración y orden de las reglas de NACL

Las reglas de NACL se evalúan en orden ascendente según el número de regla (del 1 al 32766), y la evaluación se detiene en cuanto una regla coincide: una regla Allow con un número bajo puede quedar anulada por una regla Deny con un número aún menor para el mismo tráfico. AWS recomienda numerar las reglas en incrementos de 10 o 100 para dejar espacio para insertar reglas más adelante. Toda NACL termina con una regla predeterminada (* DENY) que deniega todo el tráfico que no coincida con ninguna regla explícita. Esta regla general no se puede editar ni eliminar.

# Example NACL ruleset:
# Rule 100: Allow  HTTPS (443) from 0.0.0.0/0
# Rule 200: Allow  HTTP (80)  from 0.0.0.0/0
# Rule 300: Deny   All         from specific-bad-IP
# Rule *:   Deny   All         from 0.0.0.0/0 (default, implicit)

NACL sin estado: puertos efímeros

Dado que las NACL no tienen estado, debe tener en cuenta ambas direcciones de cada conexión. Cuando un cliente de Internet se conecta a su instancia de EC2 mediante el puerto 443, la instancia envía la respuesta de vuelta al puerto efímero del cliente (un puerto alto aleatorio, normalmente 1024-65535 en Linux y 49152-65535 en Windows). Las reglas salientes de su NACL deben permitir explícitamente este rango. Un error común al configurar una NACL es crear una regla Allow para el puerto 443 entrante y olvidar permitir los puertos efímeros salientes, lo que provoca que las conexiones se establezcan pero las respuestas se descarten silenciosamente.

# NACL outbound rule allowing return traffic on ephemeral ports
aws ec2 create-network-acl-entry \
  --network-acl-id acl-12345678 \
  --egress \
  --rule-number 100 \
  --protocol tcp \
  --cidr-block 0.0.0.0/0 \
  --rule-action allow \
  --port-range From=1024,To=65535

Resumen de los grupos de seguridad

Como recordatorio: los grupos de seguridad se asocian a instancias (o ENI), solo permiten reglas Allow explícitas (no tienen reglas Deny), tienen estado (las respuestas al tráfico entrante permitido se permiten automáticamente en la salida sin necesidad de una regla) y evalúan conjuntamente todas las reglas asociadas mediante una lógica OR. Puede hacer referencia a los ID de otros grupos de seguridad como orígenes o destinos, lo que resulta más fácil de mantener que los rangos de IP. Los grupos de seguridad son el mecanismo principal para controlar el acceso a nivel de instancia, y las NACL añaden una capa adicional a nivel de subred.

Diferencias clave: NACL frente a grupos de seguridad

Comparación fundamental para el examen:

  • Nivel: NACL = subred; SG = instancia (ENI)
  • Estado: NACL = sin estado; SG = con estado
  • Reglas: NACL = Allow Y Deny; SG = solo Allow (denegación implícita)
  • Evaluación: NACL = en orden (gana la primera coincidencia); SG = se evalúan todas las reglas (gana cualquier Allow)
  • Alcance: NACL se aplica a todas las instancias de la subred; SG solo se aplica a las instancias asociadas
  • Entrada/salida: NACL necesita reglas explícitas en ambas direcciones; SG tiene estado (solo se necesitan reglas entrantes para las respuestas)

Cuándo utilizar NACL

Utilice las NACL para: bloquear IP específicas (los grupos de seguridad no pueden denegar, solo permitir; las NACL pueden añadir reglas Deny explícitas para bloquear IP maliciosas conocidas o scrapers). Reglas para toda la subred (aplican la misma regla a todas las instancias de una subred sin modificar los grupos de seguridad individuales). Una capa de defensa adicional (si una configuración incorrecta del grupo de seguridad abre el acceso accidentalmente, una regla Deny de la NACL en el límite de la subred aún puede bloquear el tráfico). En la práctica, la mayoría de los equipos gestionan el acceso principalmente mediante grupos de seguridad y utilizan las NACL solo para bloquear IP específicas.

NACL predeterminadas frente a personalizadas

La NACL predeterminada (creada con cada VPC) permite todo el tráfico entrante y saliente; contiene las reglas 100 Allow All Inbound y 100 Allow All Outbound. Las subredes que no estén asociadas explícitamente a una NACL personalizada utilizan la NACL predeterminada. Si crea una NACL personalizada, esta comienza únicamente con la regla Deny-All predeterminada (regla *), que bloquea todo el tráfico hasta que añada reglas Allow explícitas. Esto significa que asociar una NACL personalizada nueva a una subred bloqueará inmediatamente todo el tráfico; asegúrese de añadir las reglas Allow antes de asociarla a subredes de producción.

# Create a custom NACL (starts with DENY ALL)
aws ec2 create-network-acl --vpc-id vpc-12345678

# Associate it with a subnet
aws ec2 replace-network-acl-association \
  --association-id aclassoc-12345678 \
  --network-acl-id acl-custom-id

Orden de evaluación: NACL y grupos de seguridad

Para el tráfico entrante a una instancia de EC2: el tráfico pasa primero por la NACL en el límite de la subred (evaluada según el orden de las reglas). Si la NACL permite el tráfico, este llega al grupo de seguridad de la instancia, que también debe permitirlo. Ambos deben permitir el tráfico para que este llegue a la instancia. Para el tráfico saliente: primero se evalúa el grupo de seguridad (tiene estado: permite el tráfico si es una respuesta a una entrada permitida) y después la NACL (no tiene estado: debe contar con una regla Allow saliente explícita). Comprender este orden aclara por qué se necesitan reglas de tráfico de retorno en las NACL sin estado incluso cuando se utilizan grupos de seguridad con estado.

Solución de problemas con NACL

Las NACL son una fuente común de problemas de red difíciles de depurar debido a su naturaleza sin estado. Síntomas: las conexiones se establecen, pero el flujo de datos se detiene (falta la regla saliente para puertos efímeros); tráfico en una sola dirección (se olvidó una regla entrante o saliente); determinadas IP no pueden conectarse (una regla Deny con un número menor coincide antes que la regla Allow). Método de depuración: utilice VPC Flow Logs para comprobar si los paquetes aparecen como ACCEPT o REJECT en el nivel de la NACL. El registro de flujo mostrará los paquetes rechazados y su origen y destino, lo que ayudará a localizar la regla que falta.

# Athena query to find NACL-rejected flows
SELECT sourceaddress, destinationaddress, destinationport, action
FROM vpc_flow_logs
WHERE action = 'REJECT'
  AND interfaceid LIKE 'eni-%'
LIMIT 100;

Arquitectura de seguridad por capas

El patrón recomendado para la seguridad de una VPC multicapa: las NACLs en las subredes públicas permiten desde Internet únicamente los puertos 80, 443 y los puertos efímeros necesarios; todo lo demás se deniega. Los grupos de seguridad de las subredes públicas del ALB permiten los puertos 80 y 443 desde 0.0.0.0/0. Los grupos de seguridad de las aplicaciones en subredes privadas permiten tráfico únicamente desde el ID del grupo de seguridad del ALB. Los grupos de seguridad de los datos en subredes privadas permiten tráfico únicamente desde el ID del grupo de seguridad de la aplicación. Esta defensa en profundidad garantiza que, aunque una capa esté mal configurada, otra capa proporcione protección: un principio denominado acceso mínimo en cada capa.

Comprobación rápida

Compruebe sus conocimientos sobre los conceptos de AWS Solutions Architect (SAA-C03) de esta lección.

Resumen de la lección

En esta lección ha aprendido que: las NACLs son firewalls sin estado a nivel de subred que admiten reglas Allow y Deny evaluadas en orden numérico; los grupos de seguridad son firewalls con estado a nivel de instancia, con reglas que solo permiten tráfico y que se evalúan en conjunto; y debe usar NACLs para bloquear explícitamente direcciones IP y aplicar reglas para toda la subred, y grupos de seguridad para controlar con precisión el acceso a las instancias. Con esto concluye el módulo Conceptos básicos de VPC; a continuación profundizaremos en RDS y las bases de datos relacionales en AWS.

Preguntas frecuentes

¿La lección «Network ACL frente a grupos de seguridad» es gratis?

Sí — el texto completo de «Network ACL frente a grupos de seguridad» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de AWS Solutions Architect, actualiza a CoddyKit PRO. El curso de AWS Solutions Architect incluye 4 lecciones en total.

¿Qué aprenderé en «Network ACL frente a grupos de seguridad»?

Compare las Network ACL sin estado con los grupos de seguridad con estado y sepa cuándo utilizar cada uno para una defensa de red por capas. Practicas AWS Solutions Architect con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar AWS Solutions Architect?

No se requiere experiencia previa. AWS Solutions Architect en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «Network ACL frente a grupos de seguridad»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de AWS Solutions Architect?

Sí. Cada lección de AWS Solutions Architect incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Arquitectura de VPC y bloques CIDR
  2. Internet Gateway y tablas de enrutamiento
  3. NAT Gateway y subredes privadas
  4. Network ACL frente a grupos de seguridad
← Volver a AWS Solutions Architect