0Pricing
Cloud & IT Cert Prep · Lezione

Network ACL e security group a confronto

Confronterete le Network ACL stateless con i security group stateful e saprete quando usare ciascuno per una difesa di rete a più livelli.

Network ACL e security group a confronto è una lezione Cloud & IT Cert Prep gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cloud & IT Cert Prep, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cloud & IT Cert Prep include 4 lezioni in totale.

Due livelli di sicurezza di rete

AWS fornisce due distinti meccanismi firewall all'interno di una VPC. I Security Group operano a livello di istanza, tecnicamente a livello di ENI, e sono stateful. Le Network Access Control List (NACL) operano a livello di sottorete e sono stateless. Entrambi vengono valutati per qualsiasi traffico in entrata o in uscita da una sottorete e dalle istanze associate. Utilizzarli insieme garantisce una difesa a più livelli: le NACL come prima linea al confine della sottorete e i security group come firewall per singola istanza. L'esame SAA-C03 confronta frequentemente questi due meccanismi.

Network ACL: firewall stateless a livello di sottorete

Una Network ACL (NACL) è un elenco numerato di regole applicate a tutto il traffico che attraversa il confine di una sottorete. Le NACL sono stateless: ogni pacchetto viene valutato indipendentemente. Se consente la porta TCP 80 in ingresso, deve consentire esplicitamente anche il traffico di ritorno in uscita, sulle porte effimere 1024-65535, affinché la risposta possa uscire dalla sottorete. Le regole vengono valutate in ordine numerico, dalla più bassa alla più alta; si applica la prima regola corrispondente e non vengono controllate ulteriori regole. Ogni VPC include una NACL predefinita che consente tutto il traffico in ingresso e in uscita.

# 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

Numerazione e ordine delle regole NACL

Le regole NACL vengono valutate in ordine crescente in base al numero della regola, da 1 a 32766, e la valutazione si interrompe non appena una regola corrisponde: una regola Allow con numero più basso può essere sovrascritta da una regola Deny con un numero ancora più basso per lo stesso traffico. AWS consiglia di numerare le regole con incrementi di 10 o 100, così da lasciare spazio per inserire regole in seguito. Ogni NACL termina con una regola predefinita (* DENY) che nega tutto il traffico non corrispondente ad alcuna regola esplicita. Questa regola generale non può essere modificata né eliminata.

# 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 stateless: porte effimere

Poiché le NACL sono stateless, deve considerare entrambe le direzioni di ogni connessione. Quando un client su Internet si connette all'istanza EC2 sulla porta 443, l'istanza invia la risposta alla porta effimera del client, ovvero una porta alta casuale, in genere 1024-65535 su Linux e 49152-65535 su Windows. Le regole in uscita della NACL devono consentire esplicitamente questo intervallo. Un errore comune nella configurazione delle NACL consiste nel creare una regola Allow per la porta 443 in ingresso, dimenticando di consentire le porte effimere in uscita: le connessioni vengono stabilite, ma le risposte vengono eliminate senza alcuna indicazione.

# 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

Riepilogo dei Security Group

Come promemoria: i security group sono associati alle istanze o alle ENI, consentono solo regole Allow esplicite, senza regole Deny, sono stateful, quindi le risposte al traffico in ingresso consentito vengono automaticamente autorizzate in uscita senza una regola, e valutano insieme tutte le regole associate utilizzando la logica OR. È possibile utilizzare gli ID di altri security group come origini o destinazioni, una soluzione più facilmente gestibile rispetto agli intervalli IP. I security group sono il principale meccanismo di controllo degli accessi a livello di istanza, mentre le NACL aggiungono un ulteriore livello a livello di sottorete.

Differenze principali: NACL e Security Group

Confronto fondamentale per l'esame:

  • Livello: NACL = sottorete; SG = istanza (ENI)
  • Stato: NACL = stateless; SG = stateful
  • Regole: NACL = Allow E Deny; SG = solo Allow (deny implicito)
  • Valutazione: NACL = in ordine (vince la prima corrispondenza); SG = vengono valutate tutte le regole (è sufficiente una regola Allow)
  • Ambito: la NACL si applica a tutte le istanze nella sottorete; il SG si applica solo alle istanze associate
  • Ingresso/Uscita: la NACL richiede regole esplicite in entrambe le direzioni; il SG è stateful (per le risposte sono necessarie solo le regole in ingresso)

Quando utilizzare le NACL

Utilizzi le NACL per: bloccare IP specifici, poiché i security group non possono negare il traffico, ma solo consentirlo; le NACL possono aggiungere regole Deny esplicite per bloccare IP dannosi noti o scraper. Per regole a livello di sottorete, applichi la stessa regola a tutte le istanze di una sottorete senza modificare i singoli security group. Per un ulteriore livello di difesa: se una configurazione errata di un security group apre accidentalmente l'accesso, una regola Deny della NACL al confine della sottorete può comunque bloccare il traffico. Nella pratica, la maggior parte dei team gestisce l'accesso principalmente tramite i security group e utilizza le NACL solo per bloccare esplicitamente determinati IP.

NACL predefinite e personalizzate

La NACL predefinita, creata con ogni VPC, consente tutto il traffico in ingresso e in uscita: contiene le regole 100 Allow All Inbound e 100 Allow All Outbound. Le sottoreti non associate esplicitamente a una NACL personalizzata utilizzano la NACL predefinita. Se crea una NACL personalizzata, questa contiene inizialmente solo la regola predefinita Deny-All, ovvero la regola *, e blocca tutto il traffico finché non vengono aggiunte regole Allow esplicite. Ciò significa che associare una nuova NACL personalizzata a una sottorete bloccherà immediatamente tutto il traffico: si assicuri di aggiungere le regole Allow prima di associarla alle sottoreti di produzione.

# 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

Ordine di valutazione: NACL e Security Group

Per il traffico in ingresso verso un'istanza EC2, il traffico attraversa innanzitutto la NACL al confine della sottorete, dove viene valutato secondo l'ordine delle regole. Se la NACL consente il traffico, questo raggiunge il security group dell'istanza, che deve consentirlo a sua volta. Entrambi devono autorizzare il traffico affinché questo raggiunga l'istanza. Per il traffico in uscita, viene valutato prima il security group, che è stateful e consente il traffico se si tratta della risposta a un ingresso consentito, poi la NACL, che è stateless e deve contenere una regola Allow esplicita in uscita. Comprendere questo ordine chiarisce perché sono necessarie regole NACL per il traffico di ritorno anche quando si utilizzano security group stateful.

Risoluzione dei problemi con le NACL

Le NACL sono una causa comune di problemi di rete difficili da diagnosticare a causa della loro natura stateless. Sintomi: le connessioni vengono stabilite, ma il flusso di dati si interrompe, per l'assenza di una regola in uscita per le porte effimere; traffico in una sola direzione, per la mancanza di una regola in ingresso o in uscita; impossibilità di connessione da parte di IP specifici, perché una regola Deny con numero più basso viene applicata prima della regola Allow. Metodo di debug: utilizzi i VPC Flow Logs per verificare se i pacchetti vengono contrassegnati come ACCEPT o REJECT a livello NACL. Il flow log mostrerà i pacchetti rifiutati e la relativa origine e destinazione, aiutando a individuare la regola mancante.

# 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;

Architettura di sicurezza a livelli

Il modello consigliato per la sicurezza di una VPC a piu livelli: le NACL nelle subnet pubbliche consentono da Internet solo le porte 80, 443 e le porte effimere necessarie; negano tutto il resto. I security group delle subnet pubbliche sull'ALB consentono il traffico sulle porte 80/443 da 0.0.0.0/0. I security group privati dell'applicazione consentono il traffico solo dall'ID del security group dell'ALB. I security group privati dei dati consentono il traffico solo dall'ID del security group dell'applicazione. Questa difesa in profondita garantisce che, anche se un livello e configurato in modo errato, un altro livello offra protezione: un principio chiamato accesso minimo a ogni livello.

Verifica rapida

Verifichi la sua comprensione dei concetti di AWS Solutions Architect (SAA-C03) trattati in questa lezione.

Riepilogo della lezione

In questa lezione ha imparato che: le NACL sono firewall stateless a livello di subnet che supportano regole sia Allow sia Deny, valutate in ordine numerato, i security group sono firewall stateful a livello di istanza con sole regole Allow, tutte valutate insieme e le NACL vanno usate per blocchi IP espliciti e regole valide per l'intera subnet, mentre i security group servono per un controllo granulare degli accessi alle istanze. Con questo si conclude il modulo VPC Basics; nella prossima sezione approfondiremo RDS e i database relazionali su AWS.

Domande Frequenti

La lezione «Network ACL e security group a confronto» è gratuita?

Sì — il testo completo di «Network ACL e security group a confronto» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cloud & IT Cert Prep, passa a CoddyKit PRO. Il corso Cloud & IT Cert Prep include 4 lezioni in totale.

Cosa imparerò in «Network ACL e security group a confronto»?

Confronterete le Network ACL stateless con i security group stateful e saprete quando usare ciascuno per una difesa di rete a più livelli. Eserciti Cloud & IT Cert Prep con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Cloud & IT Cert Prep?

Non è richiesta alcuna esperienza precedente. Cloud & IT Cert Prep su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «Network ACL e security group a confronto»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Cloud & IT Cert Prep?

Sì. Ogni lezione Cloud & IT Cert Prep include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Architettura VPC e blocchi CIDR
  2. Internet gateway e tabelle di routing
  3. NAT gateway e subnet private
  4. Network ACL e security group a confronto
← Torna a Cloud & IT Cert Prep