Esempi di criteri firewall gerarchici

Questa pagina mostra esempi di implementazioni di criteri gerarchici per i firewall. Si presume che tu abbia familiarità con i concetti descritti nella Panoramica sui criteri firewall gerarchici.

Esempio 1: consenti a prober di accedere a tutte le VM

In questo caso d'uso, tutte le istanze della macchina virtuale (VM) in un'organizzazione devono essere scansionate e inventariate utilizzando probe da un particolare indirizzo IP (10.100.0.1) a una specifica porta di destinazione (123). L'amministratore della sicurezza dell'organizzazione assicura che nessun amministratore di rete o altro amministratore della sicurezza possa bloccare quella porta su qualsiasi istanza VM nell'organizzazione.

Questo esempio presuppone che non sia stato eseguito il deployment di criteri firewall a livello di cartella.

La configurazione di questo caso d'uso è descritta nel seguente diagramma.

Consenti a prober di accedere a tutte le VM
Consenti a prober di accedere a tutte le VM

Criterio valido applicato nelle VM

In questo esempio, il criterio firewall della VM effettivo dopo la valutazione delle regole nella gerarchia è il seguente.

Connessioni in entrata

  • Sono consentite connessioni in entrata con IP di origine 10.100.0.1 e porta di destinazione 123, come definito nel criterio. Su una corrispondenza nel criterio dell'organizzazione, sono consentite le connessioni di probe e non vengono valutate ulteriori regole nella gerarchia.

  • Per le connessioni in entrata diverse dall'IP di origine 10.100.0.1 e dalla porta di destinazione 123, non esistono corrispondenze. Di conseguenza, viene applicata la regola predefinita per le regole di traffico in entrata nelle regole firewall VPC, che nega la connessione.

Connessione in uscita

  • Non esistono corrispondenze tra le regole definite dalla gerarchia. Di conseguenza, si applica la regola di uscita predefinita nelle regole firewall VPC, consentendo le connessioni in uscita.

Modalità di configurazione

  1. Crea un criterio firewall che contenga la regola:

    gcloud compute firewall-policies create \
         --organization=123456789012 \
         --short-name="example-firewall-policy" \
         --description="rules that apply to all VMs in the organization"
    
  2. Aggiungi la regola al criterio firewall:

    gcloud compute firewall-policies rules create 1000 \
        --action=allow \
        --description="allow-scan-probe" \
        --layer4-configs=tcp:123 \
        --firewall-policy=example-firewall-policy \
        --organization=123456789012 \
        --src-ip-ranges=10.100.0.1/32
  3. Associa il criterio firewall al nodo dell'organizzazione:

    gcloud compute firewall-policies associations create \
        --firewall-policy=example-firewall-policy \
        --organization=123456789012

Esempio 2: negare tutte le connessioni esterne tranne alcune porte

In questo caso d'uso, un criterio firewall blocca tutte le connessioni da origini Internet esterne ad eccezione delle connessioni sulle porte di destinazione 80, 443 e 22. Una connessione a Internet in entrata su qualsiasi porta diversa da 80, 443 e 22 è bloccata a prescindere dalle regole del firewall a livello di rete VPC. Per qualsiasi connessione sulla porta 80, 443 o 22, il criterio delega all'amministratore della sicurezza VPC il comportamento che vogliono applicare nella rispettiva rete VPC per tali porte.

La configurazione di questo caso d'uso è descritta nel seguente diagramma.

Nega tutte le connessioni esterne tranne alcune porte di destinazione
Negare tutte le connessioni esterne tranne alcune porte di destinazione

Criterio valido applicato nelle VM

In questo esempio, il criterio firewall della VM effettivo dopo la valutazione delle regole nella gerarchia è il seguente.

Connessioni in entrata

  • Tutte le connessioni in entrata da 10.0.0.0/8 corrispondono alla regola a livello di organizzazione con la priorità più alta delegate-internal-traffic, ignorando il resto delle regole nel criterio dell'organizzazione per valutarle in base alle regole firewall configurate a livello di rete VPC. Nella regola firewall VPC, le connessioni da 10.2.0.0/16 sono consentite e il resto delle connessioni viene valutata in base alla regola in entrata implicita, pari a deny.

  • Le connessioni in entrata con un intervallo IP di origine diverso da 10.0.0.0/8 per le porte di destinazione 22, 80 e 443 vengono delegate al livello successivo, dove le porte 80 e 443 sono consentite, mentre 22 non lo è.

  • Tutte le altre connessioni sono bloccate.

Connessioni in uscita

  • Non esistono corrispondenze tra le regole definite dalla gerarchia. Di conseguenza, si applica la regola di uscita predefinita nelle regole firewall VPC, consentendo le connessioni in uscita.

Modalità di configurazione

  1. Crea un criterio firewall che contenga la regola:

    gcloud compute firewall-policies create \
        --organization=123456789012 \
        --short-name="example-firewall-policy" \
        --description="rules that apply to all VMs in the organization"
    
  2. Aggiungi una regola per delegare le connessioni interne al proprietario del progetto:

    gcloud compute firewall-policies rules create 1000 \
        --action=goto_next \
        --description="delegate-internal-traffic" \
        --organization=123456789012 \
        --firewall-policy="example-firewall-policy" \
        --src-ip-ranges=10.0.0.0/8
    
  3. Aggiungi una regola per delegare le regole delle connessioni esterne alle porte 80/443/22 al proprietario del progetto:

    gcloud compute firewall-policies rules create 2000 \
        --action=goto_next \
        --description="delegate-external-traffic-spec-ports" \
        --layer4-configs=tcp:80,tcp:443,tcp:22 \
        --organization=123456789012 \
        --firewall-policy="example-firewall-policy"
  4. Aggiungi una regola per negare tutte le altre connessioni esterne:

    gcloud compute firewall-policies rules create 3000 \
        --action=deny \
        --description="block-other-external-traffic-spec-ports" \
        --organization=123456789012 \
        --firewall-policy="example-firewall-policy" \
        --src-ip-ranges=0.0.0.0/0
    
  5. Associa il criterio firewall al nodo dell'organizzazione:

    gcloud compute firewall-policies associations create \
        --organization=123456789012 \
        --firewall-policy="example-firewall-policy"
  6. Nel progetto, aggiungi una regola firewall per consentire le connessioni interne dalla subnet designata:

    gcloud compute firewall-rules create allow-internal-traffic \
        --action=allow \
        --priority=1000 \
        --source-ranges=10.2.0.0/16
    
  7. Nel progetto, aggiungi una regola firewall per consentire le connessioni TCP/80443 esterne:

    gcloud compute firewall-rules create allow-external-traffic \
        --action=allow \
        --priority=2000 \
        --rules=tcp:80,tcp:443
    

Esempio 3: nega le connessioni in uscita tranne quelle di una rete VPC specifica

In questo caso d'uso, l'amministratore della sicurezza dell'organizzazione non consente connessioni di traffico in uscita nelle reti VPC, ad eccezione delle connessioni che hanno origine nella rete VPC myvpc. L'amministratore delega la decisione di aprire il traffico in uscita al server pubblico 203.0.113.1 all'amministratore della sicurezza myvpc.

Questo esempio presuppone che non sia stato eseguito il deployment di criteri firewall a livello di cartella. La configurazione di questo caso d'uso è descritta nel seguente diagramma.

Rifiuta connessioni in uscita tranne quelle di una rete specifica
Negare le connessioni in uscita tranne quelle di una rete specifica

Criterio valido applicato nelle VM

In questo esempio, il criterio firewall della VM effettivo dopo la valutazione delle regole nella gerarchia è il seguente.

Connessioni in entrata

  • Non esistono corrispondenze tra le regole definite dalla gerarchia. Di conseguenza, si applica la regola in entrata predefinita nelle regole del firewall VPC, negando le connessioni in uscita.

Connessioni in uscita

  • Tutte le connessioni in uscita destinate a 203.0.113.1 sono consentite; le altre connessioni vengono rifiutate. Tutte le connessioni in uscita destinate a 203.0.113.1 corrispondono alla regola delegate-egress-my-vpc e ignorano il resto delle regole del criterio dell'organizzazione.

  • Le connessioni in uscita vengono quindi valutate in base alle regole del firewall configurate in myvpc. La regola predefinita consente le connessioni in uscita. La regola block-egress-traffic-sepc-ports nel criterio a livello di organizzazione nega il resto delle connessioni.

Modalità di configurazione

  1. Crea un criterio firewall che contenga la regola:

    gcloud compute firewall-policies create \
        --organization=123456789012 \
        --short-name="example-firewall-policy" \
        --description="rules that apply to all VMs in the organization"
    
  2. Aggiungi una regola per delegare determinate connessioni in uscita:

    gcloud compute firewall-policies rules create 1000 \
        --action=goto_next \
        --description="delegate-egress-myvpc" \
        --dest-ip-ranges=203.0.113.1/32
        --direction=egress
        --organization=123456789012 \
        --short-name="example-firewall-policy" \
        --target-resources=projects/PROJECT_ID/networks/myvpc
    
  3. Aggiungi una regola per negare tutte le altre connessioni in uscita:

    gcloud compute firewall-policies rules create 2000 \
        --action=deny \
        --description="block-egress-external-traffic-spec-ports" \
        --direction=egress \
        --dest-ip-ranges=0.0.0.0/0 \
        --organization=123456789012 \
        --short-name="example-firewall-policy"
  4. Associa il criterio firewall al nodo dell'organizzazione:

    gcloud compute firewall-policies associations create \
        --organization=123456789012 \
        --short-name="example-firewall-policy"

Esempio 4: configura regole specifiche a livello di organizzazione e di cartella

In questo caso d'uso, un amministratore della sicurezza non consente connessioni in entrata a nessuna VM dell'organizzazione, ad eccezione di quelle dell'intervallo consentito 203.0.113.0/24. L'amministratore delega ulteriori decisioni su cosa fare con le connessioni da 203.0.113.0/24 agli amministratori della sicurezza a livello di cartella.

Esistono due cartelle diverse:

  • Folder1, in cui il criterio consente le connessioni solo alle porte 80 e 443 sulle VM di backend, mentre le altre porte sono bloccate.
  • Folder2, in cui il criterio applica che nessuna VM in Folder2 può bloccare qualsiasi porta di destinazione per il traffico dall'indirizzo IP 203.0.113.1. L'amministratore della sicurezza di Folder2 delega altre decisioni all'amministratore della sicurezza VPC, che decide di aprire le porte 80, 443 e 22 e di negare il resto delle porte.

La configurazione di questo caso d'uso è descritta nel seguente diagramma.

Regole a livello di organizzazione e specifiche delle cartelle
Regole specifiche a livello di organizzazione e di cartella

Criterio valido applicato nelle VM

In questo esempio, il criterio firewall della VM effettivo dopo la valutazione delle regole nella gerarchia è il seguente.

Per le VM appartenenti a my-vpc

  • Sono consentite tutte le connessioni in entrata da 203.0.113.0/24 con porte di destinazione TCP 80e443. Eventuali altre connessioni in entrata vengono rifiutate.

  • Tutte le connessioni in uscita sono accettate in base alla regola firewall VPC applicata, in quanto non vi è alcuna corrispondenza nelle regole dei criteri firewall di livello superiore.

Per le VM appartenenti a vpc2

  • Tutte le connessioni in entrata da 203.0.113.1 sono consentite. Le connessioni in entrata da altre origini 203.0.113.0/24 diverse da 203.0.113.1 sono consentite solo alle porte 80, 443 e 22. Tutte le altre connessioni in entrata sono rifiutate.

  • Tutte le connessioni in uscita sono accettate in base alla regola firewall VPC applicata, in quanto non vi è alcuna corrispondenza nelle regole dei criteri firewall di livello superiore.

Modalità di configurazione

  1. Crea un criterio firewall che contenga le regole per Org_A:

    gcloud compute firewall-policies create \
        --organization=100000000000 \
        --short-name="example-firewall-policy-org-a" \
        --description="rules that apply to all VMs in the organization"
    
  2. Aggiungi una regola per delegare il traffico in entrata da 203.0.113.0/24 al proprietario del progetto:

    gcloud compute firewall-policies rules create 1000 \
        --action=goto_next \
        --description="delegate-ingress" \
        --organization=100000000000 \
        --short-name="example-firewall-policy-org-a" \
        --src-ip-ranges=203.0.113.0/24
    
  3. Aggiungi una regola per negare tutte le altre connessioni esterne:

    gcloud compute firewall-policies rules create 2000 \
        --action=deny
        --description="block-ingress-external-traffic"
        --organization=100000000000 \
        --short-name="example-firewall-policy-org-a" \
        --src-ip-ranges=0.0.0.0/0
    
  4. Associa il criterio firewall al nodo dell'organizzazione:

    gcloud compute firewall-policies associations create \
        --organization=100000000000 \
        --short-name="example-firewall-policy-org-a"
  5. Crea un criterio firewall che contenga le regole per la Cartella 1:

    gcloud compute firewall-policies create \
        --organization=100000000000 \
        --short-name="example-firewall-policy-folder1" \
        --description="rules that apply to all VMs under Folder1"
    
  6. Aggiungi una regola per consentire tutti i dati HTTP(S) in entrata:

    gcloud compute firewall-policies rules create 1000 \
        --action=allow \
        --description="allow-http-s-ingress" \
        --layer4-configs=tcp:80,tcp:443 \
        --organization=100000000000 \
        --short-name="example-firewall-policy-folder1"
  7. Aggiungi una regola per negare il traffico in entrata su tutte le altre porte/protocolli:

    gcloud compute firewall-policies rules create 2000 \
        --action=deny \
        --description="block-ingress-external-traffic" \
        --organization=100000000000 \
        --short-name="example-firewall-policy-folder1" \
        --src-ip-ranges=0.0.0.0/0
  8. Associa il criterio firewall alla cartella 1:

    gcloud compute firewall-policies associations create \
        --organization=100000000000 \
        --short-name="example-firewall-policy-folder1" \
        --folder=200000000000
  9. Crea un criterio firewall che contenga le regole per Cartella 2:

    gcloud compute firewall-policies create \
        --organization=100000000000 \
        --short-name="example-firewall-policy-folder2" \
        --description="rules that apply to all VMs under Folder2"
  10. Aggiungi una regola per consentire il traffico in entrata da 203.0.113.1:

    gcloud compute firewall-policies rules create 1000 \
        --action=allow \
        --description="allow-vul-scan-ingress" \
        --organization=100000000000 \
        --short-name="example-firewall-policy-folder2" \
        --src-ip-ranges=203.0.113.1/32
  11. Associa il criterio firewall alla cartella 2:

    gcloud compute firewall-policies associations create \
        --organization=100000000000 \
        --short-name="example-firewall-policy-folder2" \
        --folder=300000000000
  12. Aggiungi una regola firewall per consentire il traffico in entrata a HTTP(S):

    gcloud compute firewall-rules create allow-internal-traffic \
        --action=allow \
        --rules=tcp:80,tcp:443,tcp:22
    

Passaggi successivi