Configurare l'integrazione in banda per un modello produttore-consumatore

Network Security Integration utilizza il modello produttore-consumatore per ispezionare e monitorare i dati. Utilizza l'integrazione in banda con la tecnologia di intercettazione dei pacchetti per inserire dispositivi di rete di terze parti nel flusso di traffico di rete ed eseguire l'ispezione approfondita dei pacchetti.

Questo tutorial descrive come creare e configurare le risorse di produttore e consumer per configurare l'integrazione in banda.

Obiettivi

Questo tutorial mostra come completare le seguenti attività in un progetto:

  • Crea reti VPC personalizzate con subnet per il producer e il consumer nello stesso progetto.
  • Per il produttore, crea e configura le risorse del produttore, ad esempio un bilanciatore del carico di rete passthrough interno, un servizio di intercettazione e risorse di deployment di intercettazione.
  • Per il consumer, crea e configura istanze di macchine virtuali (VM) client e server, risorse endpoint consumer e policy firewall per intercettare il traffico client-server.
  • Testa la connessione e verifica che i pacchetti di traffico di rete vengano intercettati dalle risorse endpoint del consumer e ispezionati dalle risorse di intercettazione del produttore.

Prima di iniziare

  1. Accedi al tuo account Google Cloud . Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei workload.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. Abilita l'API Compute Engine per il tuo progetto.
  7. Abilita l'API Network Security nel progetto Google Cloud che vuoi utilizzare per la fatturazione.
  8. Assicurati di disporre del ruolo Compute Network Admin (roles/compute.networkAdmin) concesso a livello di progetto e del ruolo Amministratore profilo di sicurezza (roles/networksecurity.securityProfileAdmin) concesso a livello di organizzazione.
  9. Se preferisci lavorare dalla riga di comando, installa Google Cloud CLI. Per informazioni concettuali e sull'installazione dello strumento, consulta la panoramica di gcloud CLI.

    Nota:se non hai mai eseguito Google Cloud CLI, esegui prima gcloud init per inizializzare la directory gcloud CLI.

  10. Recupera l'ID del tuo progetto. Ti serve per creare risorse di intercettazione ed endpoint.

    Se utilizzi gcloud CLI, puoi sostituire PROJECT_ID qui o in un secondo momento nei rispettivi comandi.

  11. Recupera l'ID della tua organizzazione. Ti serve per creare risorse a livello di organizzazione, come profili di sicurezza e gruppi di profili di sicurezza.

    Se utilizzi gcloud CLI, puoi sostituire ORG_ID qui o più avanti nei rispettivi comandi.

Creare risorse per i produttori

In questa sezione, crea le seguenti risorse per il produttore:

  • Una rete VPC personalizzata con una subnet.
  • Un gruppo di istanze non gestite con un'istanza VM che esegue un server di echo Generic Network Virtualization Encapsulation (GENEVE).
  • Un bilanciatore del carico di rete passthrough interno con un servizio di backend e una regola di forwarding.
  • Una regola firewall per consentire i controlli di integrità Google Cloud .
  • Un gruppo di deployment di intercettazione e un deployment di intercettazione.

Crea una rete VPC personalizzata

In questa sezione crei una rete VPC con una subnet.

Console

  1. Nella console Google Cloud , vai alla pagina Reti VPC.

    Vai a Reti VPC

  2. Fai clic su Crea rete VPC.

  3. In Nome, inserisci producer-network.

  4. In Descrizione, inserisci Producer VPC network.

  5. Nella sezione Subnet, segui questi passaggi:

    1. In Modalità di creazione subnet, scegli Personalizzata.
    2. Nella sezione Nuova subnet, inserisci le seguenti informazioni:
      • Nome: producer-subnet
      • Regione: us-west1
      • Tipo di stack IP: IPv4 (stack singolo)
      • Intervallo IPv4: 10.10.0.0/16
    3. Fai clic su Fine.
  6. Fai clic su Crea.

  7. Apri Google Cloud CLI ed esegui il comando seguente per aumentare l'unità di trasmissione massima (MTU) della rete VPC.

    gcloud compute networks update producer-network \
        --mtu=1768
    

    Nel comando, specifichi l'MTU di 1768 byte, che è la somma dell'MTU predefinita di una rete VPC (1460 byte) e dell'overhead di incapsulamento GENEVE di Network Security Integration (308 byte).

gcloud

  1. Crea una rete VPC.

    gcloud compute networks create producer-network \
        --subnet-mode=custom \
        --mtu=1768 \
        --description="Producer VPC network"
    

    Nel comando, specifichi l'unità massima di trasmissione (MTU) di 1768 byte, che è la somma dell'MTU predefinita di una rete VPC (1460 byte) e dell'overhead di incapsulamento GENEVE di Network Security Integration (308 byte).

  2. Nella rete VPC, crea una subnet.

    gcloud compute networks subnets create producer-subnet \
        --network=producer-network \
        --region=us-west1 \
        --range=10.10.0.0/16
    

Crea un gruppo di istanze non gestito

In questa sezione, crei un gruppo di istanze non gestito.

Console

  1. Nella console Google Cloud , vai alla pagina Gruppi di istanze.

    Vai a Gruppi di istanze

  2. Fai clic su Crea gruppo di istanze.

  3. Fai clic su Nuovo gruppo di istanze non gestite.

  4. In Nome, inserisci producer-instance-group.

  5. Nella sezione Località, seleziona us-west1 per Regione e us-west1-b per Zona.

  6. In Rete, seleziona producer-network.

  7. In Subnet, seleziona producer-subnet.

  8. Fai clic su Crea.

gcloud

gcloud compute instance-groups unmanaged create producer-instance-group \
    --zone=us-west1-b

Configura i componenti del bilanciatore del carico

In questa sezione crei i componenti per un bilanciatore del carico di rete passthrough interno, tra cui un servizio di backend e una regola di forwarding.

Console

Avvia la configurazione

  1. Nella console Google Cloud , vai alla pagina Bilanciamento del carico.

    Vai a Bilanciamento del carico

  2. Fai clic su Crea bilanciatore del carico.
  3. In Tipo di bilanciatore del carico, seleziona Bilanciatore del carico di rete (TCP/UDP/SSL) e fai clic su Avanti.
  4. Per Proxy o passthrough, seleziona Bilanciatore del carico passthrough e fai clic su Avanti.
  5. In Pubblico o interno, seleziona Interno e fai clic su Avanti.
  6. Fai clic su Configura.

Configurazione di base

Nella pagina Crea bilanciatore del carico di rete passthrough interno, inserisci le seguenti informazioni:

  • Nome del bilanciatore del carico: producer-ilb
  • Regione: us-west1
  • Rete: producer-network

Configura i backend

  1. Fai clic su Configurazione backend.
  2. In Protocollo, seleziona UDP.
  3. Nell'elenco Controllo di integrità, seleziona Crea un controllo di integrità, inserisci le seguenti informazioni e fai clic su Crea.
    • Nome: producer-health-check
    • Ambito: regionale
    • Porta:80
    • Protocollo proxy: NONE
  4. Nella sezione Nuovo backend di Backend, seleziona Tipo di stack IP come IPv4 (stack singolo).
  5. In Gruppo di istanze, seleziona il gruppo di istanze producer-instance-group e fai clic su Fine.
  6. Verifica che sia presente un segno di spunta blu accanto a Configurazione backend prima di continuare.

Configura il frontend

Nella sezione Nuovi IP e porta frontend, segui questi passaggi:

  1. In Nome, inserisci producer-ilb-fr.
  2. In Subnet, seleziona producer-subnet.
  3. In Porte, seleziona Singola, quindi in Numero porta, inserisci 6081.
  4. Verifica che sia presente un segno di spunta blu accanto a Configurazione frontend prima di continuare.

Esamina la configurazione

  1. Fai clic su Esamina e finalizza.
  2. Rivedi le impostazioni di configurazione del bilanciatore del carico.
  3. Fai clic su Crea.

gcloud

  1. Crea un controllo di integrità a livello di regione.

    gcloud compute health-checks create tcp producer-health-check \
        --region=us-west1 \
        --port=80
    
  2. Crea il servizio di backend.

    gcloud compute backend-services create producer-backend-service \
        --protocol=UDP \
        --region=us-west1 \
        --health-checks=producer-health-check \
        --health-checks-region=us-west1 \
        --load-balancing-scheme=INTERNAL
    
  3. Crea una regola di forwarding per il servizio di backend.

    gcloud compute forwarding-rules create producer-ilb-fr \
        --backend-service=producer-backend-service \
        --region=us-west1 \
        --network=producer-network \
        --subnet=producer-subnet \
        --ip-protocol=UDP \
        --load-balancing-scheme=INTERNAL \
        --ports=6081
    

Crea un'istanza VM e aggiungila al gruppo di istanze

In questa sezione, creerai un'istanza VM con uno script di avvio che configura un server echo per i pacchetti incapsulati GENEVE.

Prima di creare l'istanza VM, recupera l'indirizzo IP della regola di forwarding e del gateway della subnet del bilanciatore del carico di rete passthrough interno. Devi disporre degli indirizzi IP per lo script di avvio.

Console

Ottieni l'indirizzo IP del bilanciatore del carico di rete passthrough interno

  1. Nella console Google Cloud , vai alla pagina Bilanciamento del carico.

    Vai a Bilanciamento del carico

  2. Fai clic sul bilanciatore del carico producer-ilb.

  3. Nella sezione Frontend, prendi nota dell'indirizzo IP della regola di forwarding dalla colonna IP:porte.

Ottenere l'indirizzo IP del gateway della subnet

  1. Nella console Google Cloud , vai alla pagina Reti VPC.

    Vai a Reti VPC

  2. Fai clic sulla rete VPC producer-network.

  3. Fai clic sulla scheda Subnet.

  4. Nella sezione Subnet, prendi nota dell'indirizzo IP del gateway dalla colonna Gateway.

Crea l'istanza VM

  1. Nella console Google Cloud , vai alla pagina Istanze VM.

    Vai a Istanze VM

    1. Fai clic su Crea istanza.
    2. In Nome, inserisci producer-instance.
    3. In Regione, seleziona us-west1.
    4. In Zona, seleziona us-west1-b.
    5. Fai clic su Networking e configura i seguenti campi:

      Nella sezione Interfacce di rete, fai clic su default e modifica l'interfaccia di rete.

      • Rete: producer-network
      • Subnet: producer-subnet
      • Indirizzo IPv4 esterno: Nessuno
    6. Fai clic su Avanzate e inserisci il seguente script in Script di avvio:

      #!/bin/bash
      # Enable IP forwarding.
      echo 1 > /proc/sys/net/ipv4/ip_forward
      
      # Log incoming packets from the gateway IP and the GENEVE 6081
      # port.
      iptables -t nat -A PREROUTING -p udp -s GATEWAY_IP/32 --dport 6081 -j LOG --log-prefix="[NSI INTERCEPT] "
      
      # Apply DNAT (Destination NAT) on incoming packets from the gateway IP
      # and the GENEVE 6081 port.
      # Set the destination IP to the gateway IP so the packet is rerouted
      # back to the sender.
      iptables -t nat -A PREROUTING -p udp -s GATEWAY_IP/32 --dport 6081 -j DNAT --to-destination GATEWAY_IP
      
      # Apply SNAT (Source NAT) on outgoing packets that have the GENEVE 6081
      # port and source IP that equals the gateway IP.
      # Set the source IP to the internal load balancer IP which
      # effectively swaps the IPs of the original packet.
      iptables -t nat -A POSTROUTING -p udp -s GATEWAY_IP/32 --dport 6081 -j SNAT --to-source LOAD_BALANCER_IP
      
      # Spin up a simple server for health checks on port 80.
      nohup python3 -u -m http.server 80 &
      

      Sostituisci quanto segue:

      • GATEWAY_IP: l'indirizzo IP del gateway della subnet.
      • LOAD_BALANCER_IP: l'indirizzo IP della regola di forwarding del bilanciatore del carico.
    7. Fai clic su Crea.

Aggiungi l'istanza VM al gruppo di istanze

  1. Nella console Google Cloud , vai alla pagina Gruppi di istanze.

    Vai a Gruppi di istanze

  2. Fai clic su producer-instance-group.

  3. Fai clic su Modifica.

  4. Nella sezione Istanze VM, seleziona la VM producer-instance dall'elenco Seleziona VM.

  5. Fai clic su Salva.

gcloud

  1. Ottieni l'indirizzo IP della regola di forwarding del bilanciatore del carico.

    ILB_IP=$(gcloud compute forwarding-rules describe producer-ilb-fr \
        --region=us-west1 \
        --format="get(IPAddress)")
    
  2. Ottieni l'indirizzo IP del gateway della subnet.

    GW_IP=$(gcloud compute networks subnets describe producer-subnet \
        --region=us-west1 \
        --format="get(gatewayAddress)")
    
  3. Crea un'istanza VM.

    gcloud compute instances create producer-instance \
        --image-project=debian-cloud \
        --image-family=debian-11 \
        --machine-type=e2-micro \
        --zone=us-west1-b \
        --network-interface="subnet=producer-subnet,no-address" \
        --metadata=startup-script='#!/bin/bash
        # Enable IP forwarding.
        echo 1 > /proc/sys/net/ipv4/ip_forward
    
        # Log incoming packets from the gateway IP and the GENEVE 6081 port.
        iptables -t nat -A PREROUTING -p udp -s '"$GW_IP"'/32 --dport 6081 -j LOG --log-prefix="[NSI INTERCEPT] "
    
        # Apply DNAT (Destination NAT) on incoming packets from the gateway
        # IP and the GENEVE 6081 port.
        # Set the destination IP to the gateway IP so the packet is rerouted
        # back to the sender.
        iptables -t nat -A PREROUTING -p udp -s '"$GW_IP"'/32 --dport 6081 -j DNAT --to-destination '"$GW_IP"'
    
        # Apply SNAT (Source NAT) on outgoing packets that have the GENEVE
        # 6081 port and source IP that equals the gateway IP.
        # Set the source IP to the internal load balancer IP which
        # effectively swaps the IPs of the original packet.
        iptables -t nat -A POSTROUTING -p udp -s '"$GW_IP"'/32 --dport 6081 -j SNAT --to-source '"$ILB_IP"'
    
        # Spin up a simple server for health checks on port 80.
        nohup python3 -u -m http.server 80 &'
    
  4. Aggiungi l'istanza VM al gruppo di istanze.

    gcloud compute instance-groups unmanaged add-instances producer-instance-group \
        --instances=producer-instance \
        --zone=us-west1-b
    
  5. Aggiungi il gruppo di istanze al servizio di backend.

    gcloud compute backend-services add-backend producer-backend-service \
        --region=us-west1 \
        --instance-group=producer-instance-group \
        --instance-group-zone=us-west1-b
    

Crea una policy del firewall e aggiungi regole firewall

In questa sezione, crei una policy del firewall e aggiungi regole firewall per consentire connessioni UDP, Google Cloud controlli di integrità e connessioni SSH all'istanza VM producer tramite Identity-Aware Proxy (IAP).

Console

  1. Nella console Google Cloud , vai alla pagina Policy del firewall.

    Vai a Criteri firewall

  2. Fai clic su Crea criterio firewall.

  3. Nel campo Nome, inserisci producer-firewall-policy.

  4. In Ambito di deployment, seleziona Globale e fai clic su Continua.

  5. Crea le seguenti regole per la tua policy.

    Consenti la connessione UDP con la porta GENEVE dall'indirizzo IP del gateway VPC

    1. Fai clic su Crea regola firewall e configura i seguenti campi:
      • Priorità: 100
      • Direzione del traffico: in entrata
      • Azione in caso di corrispondenza: Consenti
      • Filtri di origine > Intervalli IP: GATEWAY_IP
      • Protocollo e porte: seleziona Protocollo e porte specificati, seleziona la casella di controllo UDP e specifica 6081 in Porte.
    2. Fai clic su Crea.

    Sostituisci GATEWAY_IP con l'indirizzo IP del gateway della subnet.

    Consenti i Google Cloud controlli di integrità

    1. Fai clic su Crea regola firewall e configura i seguenti campi:
      • Priorità: 101
      • Direzione del traffico: in entrata
      • Azione in caso di corrispondenza: Consenti
      • Intervalli IP: 35.191.0.0/16 e 130.211.0.0/22
      • Protocollo e porte: seleziona Protocollo e porte specificati, seleziona la casella di controllo TCP e specifica 80 in Porte.
    2. Fai clic su Crea.

    Consenti la connessione SSH all'istanza VM del produttore tramite Identity-Aware Proxy

    1. Fai clic su Crea regola firewall e configura i seguenti campi:
      • Priorità: 102
      • Direzione del traffico: in entrata
      • Azione in caso di corrispondenza: Consenti
      • Intervalli IP: 35.235.240.0/20
      • Protocollo e porte: seleziona Protocollo e porte specificati, seleziona la casella di controllo TCP e specifica 22 in Porte.
    2. Fai clic su Crea.
  6. Per associare il criterio a un'emittente, fai clic su Continua, poi su Associa.

  7. Seleziona la casella di controllo producer-network.

  8. Fai clic su Continua.

  9. Fai clic su Crea.

gcloud

  1. Crea una policy del firewall di rete globale.

    gcloud compute network-firewall-policies create producer-firewall-policy \
        --global
    
  2. Associa la policy del firewall alla rete del produttore.

    gcloud compute network-firewall-policies associations create \
        --name=producer-firewall-policy-assoc \
        --firewall-policy=producer-firewall-policy \
        --global-firewall-policy \
        --network=producer-network
    
  3. Crea una regola firewall per consentire la connessione UDP con la porta GENEVE dall'indirizzo IP del gateway VPC.

    gcloud compute network-firewall-policies rules create 100 \
        --firewall-policy=producer-firewall-policy \
        --global-firewall-policy \
        --action=allow \
        --direction=INGRESS \
        --layer4-configs=udp:6081 \
        --src-ip-ranges=$GW_IP/32
    
  4. Crea una regola firewall per consentire i controlli di integrità Google Cloud .

    gcloud compute network-firewall-policies rules create 101 \
        --firewall-policy=producer-firewall-policy \
        --global-firewall-policy \
        --action=allow \
        --direction=INGRESS \
        --layer4-configs=tcp:80 \
        --src-ip-ranges=35.191.0.0/16,130.211.0.0/22
    
  5. Crea una regola firewall per consentire la connessione SSH all'istanza VM producer tramite Identity-Aware Proxy.

    gcloud compute network-firewall-policies rules create 102 \
        --firewall-policy=producer-firewall-policy \
        --global-firewall-policy \
        --action=allow \
        --direction=INGRESS \
        --layer4-configs=tcp:22 \
        --src-ip-ranges=35.235.240.0/20
    

Crea risorse di intercettazione del produttore

In questa sezione, crei un gruppo di deployment di intercettazione e un deployment di intercettazione.

Console

  1. Nella console Google Cloud , vai alla pagina Gruppi di deployment.

    Vai a Gruppi di deployment

  2. Fai clic su Crea gruppo di deployment.

  3. In Nome, inserisci producer-deployment-group.

  4. In Rete, seleziona producer-network.

  5. Per Scopo, seleziona NSI in banda.

  6. Nella sezione Intercetta deployment, fai clic su Crea deployment di intercettazione, specifica i seguenti campi e fai clic su Crea:

    • Nome: producer-deployment
    • Regione: us-west1.
    • Zona: us-west1-b.
    • Bilanciatore del carico interno: producer-ilb.
  7. Fai clic su Crea.

gcloud

  1. Crea un gruppo di deployment di intercettazione.

    gcloud network-security intercept-deployment-groups create producer-deployment-group \
        --location=global \
        --network=projects/PROJECT_ID/global/networks/producer-network \
        --no-async
    

    Sostituisci PROJECT_ID con l'ID del tuo progetto.

  2. Crea un deployment di intercettazione.

    gcloud network-security intercept-deployments create producer-deployment \
        --location=us-west1-b \
        --forwarding-rule=producer-ilb-fr \
        --forwarding-rule-location=us-west1 \
        --intercept-deployment-group=projects/PROJECT_ID/locations/global/interceptDeploymentGroups/producer-deployment-group \
        --no-async
    

    Sostituisci PROJECT_ID con l'ID del tuo progetto.

Creare risorse consumer

In questa sezione, crei le seguenti risorse per il consumer:

  • Una rete VPC personalizzata con una subnet.
  • Una VM server e una VM client.
  • Una policy del firewall e una regola per intercettare il traffico.
  • Un gruppo di endpoint di intercettazione e un'associazione del gruppo di endpoint di intercettazione.
  • Un profilo di sicurezza e un gruppo di profili di sicurezza.

Crea una rete VPC personalizzata

In questa sezione crei una rete VPC con una subnet.

Console

  1. Nella console Google Cloud , vai alla pagina Reti VPC.

    Vai a Reti VPC

  2. Fai clic su Crea rete VPC.

  3. In Nome, inserisci consumer-network.

  4. In Descrizione, inserisci Consumer VPC network.

  5. Nella sezione Subnet, segui questi passaggi:

    1. Imposta Modalità di creazione subnet su Personalizzata.
    2. Nella sezione Nuova subnet, inserisci le seguenti informazioni:
      • Nome: consumer-subnet
      • Regione: us-west1
      • Tipo di stack IP: IPv4 (stack singolo)
      • Intervallo IPv4: 10.10.0.0/16
    3. Fai clic su Fine.
  6. Fai clic su Crea.

gcloud

  1. Crea una rete VPC consumer.

    gcloud compute networks create consumer-network \
        --subnet-mode=custom \
        --description="Consumer VPC network"
    
  2. Nella rete VPC, crea una subnet.

    gcloud compute networks subnets create consumer-subnet \
        --network=consumer-network \
        --region=us-west1 \
        --range=10.10.0.0/16
    

Crea VM server e client

In questa sezione, crei una VM server e una VM client.

Console

Crea una VM server

  1. Nella console Google Cloud , vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Fai clic su Crea istanza.

  3. Imposta Nome su consumer-server-vm.

  4. Imposta Regione su us-west1.

  5. Imposta Zona su us-west1-b.

  6. Imposta Tipo di macchina su e2-micro.

  7. Fai clic su Networking e configura i seguenti campi:

  8. Nella sezione Interfacce di rete, fai clic su default e modifica l'interfaccia di rete:

    • Rete: consumer-network
    • Subnet: consumer-subnet
    • Indirizzo IPv4 esterno: Nessuno
  9. Fai clic su Avanzate e inserisci il seguente script in Script di avvio:

    echo success > /tmp/connection_test && nohup python3 -u -m http.server --directory /tmp 8000
    
  10. Fai clic su Crea.

Crea una VM client

  1. Nella console Google Cloud , vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Fai clic su Crea istanza.

  3. Imposta Nome su consumer-client-vm.

  4. Imposta Regione su us-west1.

  5. Imposta Zona su us-west1-b.

  6. Imposta Tipo di macchina su e2-micro.

  7. Fai clic su Networking e configura i seguenti campi:

  8. Nella sezione Interfacce di rete, fai clic su default e modifica l'interfaccia di rete:

    • Rete: consumer-network
    • Subnet: consumer-subnet
    • Indirizzo IPv4 esterno: Nessuno
  9. Fai clic su Crea.

gcloud

  1. Creare la VM server.

    gcloud compute instances create consumer-server-vm \
        --image-project=debian-cloud \
        --image-family=debian-11 \
        --machine-type=e2-micro \
        --zone=us-west1-b \
        --network-interface="subnet=consumer-subnet,no-address" \
        --metadata=startup-script="echo success > /tmp/connection_test && nohup python3 -u -m http.server --directory /tmp 8000"
    
  2. Creare la VM client.

    gcloud compute instances create consumer-client-vm \
        --image-project=debian-cloud \
        --image-family=debian-11 \
        --machine-type=e2-micro \
        --zone=us-west1-b \
        --network-interface="subnet=consumer-subnet,no-address"
    

Crea una policy del firewall per consentire l'accesso SSH

In questa sezione, crei una policy del firewall e aggiungi una regola firewall per consentire l'accesso SSH alle VM consumer.

Console

  1. Nella console Google Cloud , vai alla pagina Policy del firewall.

    Vai a Criteri firewall

  2. Fai clic su Crea criterio firewall.

  3. Nel campo Nome, inserisci consumer-firewall-policy.

  4. In Ambito di deployment, seleziona Globale e fai clic su Continua.

  5. Fai clic su Crea regola firewall, configura i seguenti campi e fai clic su Crea:

    • Priorità: 100
    • Direzione del traffico: in entrata
    • Azione in caso di corrispondenza: Consenti
    • Filtri di origine > Intervalli IP: 35.235.240.0/20
    • Protocollo e porte: seleziona Protocollo e porte specificati, seleziona la casella di controllo TCP e specifica 22 in Porte.

    L'intervallo IPv4 35.235.240.0/20 contiene tutti gli indirizzi IP che Identity-Aware Proxy utilizza per l'inoltro TCP. Per saperne di più, consulta Preparare il progetto per l'inoltro TCP.

  6. Per associare il criterio a un'emittente, fai clic su Continua, poi su Associa.

  7. Seleziona la casella di controllo consumer-network.

  8. Fai clic su Continua.

  9. Fai clic su Crea.

gcloud

  1. Crea una policy del firewall di rete globale.

    gcloud compute network-firewall-policies create consumer-firewall-policy \
        --global
    
  2. Associa la policy del firewall alla rete consumer.

    gcloud compute network-firewall-policies associations create \
        --name=consumer-firewall-policy-assoc \
        --firewall-policy=consumer-firewall-policy \
        --global-firewall-policy \
        --network=consumer-network
    
  3. Crea una regola di autorizzazione SSH per consentire la connessione SSH all'istanza VM client tramite Identity-Aware Proxy.

    gcloud compute network-firewall-policies rules create 101 \
        --firewall-policy=consumer-firewall-policy \
        --global-firewall-policy \
        --action=allow \
        --direction=INGRESS \
        --layer4-configs=tcp:22 \
        --src-ip-ranges=35.235.240.0/20
    

    L'intervallo IPv4 35.235.240.0/20 contiene tutti gli indirizzi IP che Identity-Aware Proxy (IAP) utilizza per l'inoltro TCP. Per saperne di più, consulta Preparare il progetto per l'inoltro TCP.

Crea gruppo di endpoint consumer

In questa sezione, crea un gruppo di endpoint di intercettazione e un'associazione di gruppi di endpoint di intercettazione.

Console

  1. Nella console Google Cloud , vai alla pagina Gruppi di endpoint.

    Vai a Gruppi di endpoint

  2. Fai clic su Crea gruppo di endpoint.

  3. In Nome, inserisci consumer-endpoint-group.

  4. Per Gruppo di deployment, seleziona Seleziona progetto attuale dal menu Seleziona progetto.

  5. Per Intercept deployment group (Gruppo di deployment di intercettazione), seleziona producer-deployment-group.

  6. Fai clic su Continua.

  7. Fai clic su Aggiungi associazione di gruppo di endpoint.

  8. Per Progetto, seleziona il progetto corrente.

  9. In Rete, seleziona consumer-network.

  10. Fai clic su Crea.

gcloud

  1. Crea il gruppo di endpoint di intercettazione.

    gcloud network-security intercept-endpoint-groups create consumer-endpoint-group \
        --location=global \
        --intercept-deployment-group=projects/PROJECT_ID/locations/global/interceptDeploymentGroups/producer-deployment-group \
        --no-async
    

    Sostituisci PROJECT_ID con l'ID del tuo progetto.

  2. Crea l'associazione del gruppo di endpoint di intercettazione.

    gcloud network-security intercept-endpoint-group-associations create consumer-endpoint-group-association \
        --location=global \
        --intercept-endpoint-group=projects/PROJECT_ID/locations/global/interceptEndpointGroups/consumer-endpoint-group \
        --network=consumer-network \
        --no-async
    

    Sostituisci PROJECT_ID con l'ID del tuo progetto.

Creare un profilo di sicurezza e un gruppo di profili di sicurezza

Crea un gruppo di profili di sicurezza e un profilo di sicurezza personalizzato per intercettare il traffico.

Console

Creare un profilo di sicurezza

  1. Nella console Google Cloud , vai alla pagina Profili di sicurezza.

    Vai a Profili di sicurezza

  2. Nel selettore di progetti, seleziona la tua organizzazione.

  3. Nella scheda Profili di sicurezza, fai clic su Crea profilo.

  4. In Nome, inserisci consumer-security-profile.

  5. In Scopo del profilo di sicurezza, seleziona NSI in banda.

  6. Per Progetto, seleziona il progetto corrente.

  7. Per Gruppo di endpoint di intercettazione, seleziona consumer-endpoint-group.

  8. Fai clic su Crea.

Creare un gruppo di profili di sicurezza

  1. Nella console Google Cloud , vai alla pagina Gruppi di profili di sicurezza.

    Vai a Gruppi di profili di sicurezza

  2. Nel selettore di progetti, seleziona la tua organizzazione.

  3. Nella scheda Gruppi di profili di sicurezza, fai clic su Crea gruppo di profili.

  4. In Nome, inserisci consumer-security-profile-group.

  5. In Scopo del gruppo di profili di sicurezza, seleziona NSI in banda.

  6. In Profilo di intercettazione personalizzato, seleziona consumer-security-profile.

  7. Fai clic su Crea.

gcloud

  1. Crea un profilo di sicurezza di intercettazione.

    gcloud network-security security-profiles custom-intercept create consumer-security-profile \
        --location=global \
        --organization=ORG_ID \
        --intercept-endpoint-group=projects/PROJECT_ID/locations/global/interceptEndpointGroups/consumer-endpoint-group \
        --no-async
    

    Sostituisci quanto segue:

    • ORG_ID: l'ID della tua organizzazione. I profili di sicurezza sono risorse a livello di organizzazione. Per crearli, devi disporre del ruolo Amministratore profilo di sicurezza (networksecurity.securityProfileAdmin) a livello di organizzazione.
    • PROJECT_ID: l'ID progetto.
  2. Crea un gruppo di profili di sicurezza di intercettazione.

    gcloud network-security security-profile-groups create consumer-security-profile-group \
        --location=global \
        --organization=ORG_ID \
        --custom-intercept-profile=consumer-security-profile \
        --billing-project=PROJECT_ID \
        --no-async
    

    Sostituisci quanto segue:

    • ORG_ID: l'ID della tua organizzazione. I gruppi di profili di sicurezza sono risorse a livello di organizzazione. Per crearli, devi disporre del ruolo Amministratore profilo di sicurezza (networksecurity.securityProfileAdmin) a livello di organizzazione.
    • PROJECT_ID: l'ID progetto.

Crea una policy del firewall per intercettare il traffico

In questa sezione, crei una policy del firewall e una regola firewall per intercettare il traffico.

Console

  1. Nella console Google Cloud , vai alla pagina Policy del firewall.

    Vai a Criteri firewall

  2. Fai clic su consumer-firewall-policy.

  3. Fai clic su Crea regola firewall e configura i seguenti campi:

    • Priorità: 100
    • Direzione del traffico: in entrata
    • Azione in caso di corrispondenza: Procedi all'ispezione L7
    • Scopo: NSI in-band
    • Gruppo di profili di sicurezza: consumer-security-profile-group
    • Intervalli IP: 10.10.0.0/16
    • Protocollo e porte: seleziona Protocollo e porte specificati, seleziona la casella di controllo TCP e specifica 8000 in Porte.
  4. Fai clic su Crea.

gcloud

  1. Aggiungi una regola firewall per intercettare il traffico sulla porta TCP 8000 sulla VM server.

    gcloud compute network-firewall-policies rules create 100 \
        --firewall-policy=consumer-firewall-policy \
        --global-firewall-policy \
        --action=apply_security_profile_group \
        --security-profile-group=organizations/ORG_ID/locations/global/securityProfileGroups/consumer-security-profile-group \
        --direction=INGRESS \
        --layer4-configs=tcp:8000 \
        --src-ip-ranges=10.10.0.0/16
    

    Sostituisci ORG_ID con l'ID della tua organizzazione.

Testa la connessione

In questa sezione, invii un po' di traffico di rete dall'istanza VM client consumer all'istanza VM server consumer, quindi controlli i log dell'istanza VM producer per verificare l'intercettazione.

  1. Esegui questo comando per connetterti all'istanza VM client consumer tramite SSH e invia una richiesta all'istanza VM server consumer.

    gcloud compute ssh consumer-client-vm \
        --tunnel-through-iap \
        --zone=us-west1-b \
        --command="curl -m 3 -s http://consumer-server-vm:8000/connection_test || echo fail"
    

    Quando esegui il comando precedente, viene visualizzato il messaggio success. Indica che il traffico viene inviato dal client al server.

  2. Esegui questo comando per controllare i log dell'istanza VM del produttore.

    gcloud compute ssh producer-instance \
        --tunnel-through-iap \
        --zone=us-west1-b \
        --command="cat /var/log/syslog | grep 'NSI INTERCEPT'"
    

    Viene visualizzato un messaggio simile a [NSI INTERCEPT] IN=ens4 OUT= MAC=xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx SRC=10.10.0.1 DST=10.10.0.2 LEN=136 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=UDP SPT=45554 DPT=6081 LEN=116. Indica che il traffico client-server viene intercettato dall'istanza VM producer.

Esegui la pulizia

Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial, elimina il progetto che contiene le risorse oppure mantieni il progetto ed elimina le singole risorse.

Elimina le risorse consumer

  1. Dissocia la policy del firewall dalla rete consumer ed elimina la policy del firewall.

    Console

    1. Nella console Google Cloud , vai alla pagina Policy firewall.

      Vai a Criteri firewall

    2. Fai clic sul criterio consumer-firewall-policy.

    3. Fai clic sulla scheda Associazioni.

    4. Seleziona la casella di controllo dell'associazione consumer-network.

    5. Fai clic su Rimuovi associazione.

    6. Fai clic su Rimuovi.

    7. Nella parte superiore della pagina, fai clic su Elimina.

    8. Fai di nuovo clic su Elimina per confermare.

    gcloud

    1. Rimuovi l'associazione.

      gcloud compute network-firewall-policies associations delete \
          --name=consumer-firewall-policy-assoc \
          --firewall-policy=consumer-firewall-policy \
          --global-firewall-policy
      
    2. Elimina la policy del firewall.

      gcloud compute network-firewall-policies delete consumer-firewall-policy \
          --global
      
  2. Elimina il gruppo di profili di sicurezza.

    Console

    1. Nella console Google Cloud , vai alla pagina Profili di sicurezza.

      Vai a Profili di sicurezza

    2. Nel selettore di progetti, seleziona la tua organizzazione.

    3. Nella scheda Gruppi di profili di sicurezza, seleziona il gruppo di profili di sicurezza consumer-security-profile-group, quindi fai clic su Elimina.

    4. Fai di nuovo clic su Elimina per confermare.

    gcloud

    gcloud network-security security-profile-groups delete consumer-security-profile-group \
        --location=global \
        --organization=ORG_ID \
        --billing-project=PROJECT_ID \
        --quiet
    

    Sostituisci quanto segue:

    • ORG_ID: l'ID della tua organizzazione
    • PROJECT_ID: l'ID del progetto
  3. Elimina il profilo di sicurezza.

    Console

    1. Nella console Google Cloud , vai alla pagina Profili di sicurezza.

      Vai a Profili di sicurezza

    2. Nel selettore di progetti, seleziona la tua organizzazione.

    3. Nella scheda Profili di sicurezza, seleziona il profilo di sicurezza consumer-security-profile e poi fai clic su Elimina.

    4. Fai di nuovo clic su Elimina per confermare.

    gcloud

    gcloud network-security security-profiles custom-intercept delete consumer-security-profile \
        --location=global \
        --organization=ORG_ID \
        --billing-project=PROJECT_ID \
        --quiet
    

    Sostituisci quanto segue:

    • ORG_ID: l'ID della tua organizzazione
    • PROJECT_ID: l'ID del progetto
  4. Elimina l'associazione del gruppo di endpoint di intercettazione.

    Console

    1. Nella console Google Cloud , vai alla pagina Gruppi di endpoint.

      Vai a Gruppi di endpoint

    2. Fai clic su consumer-endpoint-group.

    3. Seleziona l'associazione consumer-network e fai clic su Elimina.

    4. Fai di nuovo clic su Elimina per confermare.

    gcloud

    gcloud network-security intercept-endpoint-group-associations delete consumer-endpoint-group-association \
        --location=global \
        --no-async
    
  5. Elimina il gruppo di endpoint di intercettazione.

    Console

    1. Nella console Google Cloud , vai alla pagina Gruppi di endpoint.

      Vai a Gruppi di endpoint

    2. Seleziona consumer-endpoint-group e fai clic su Elimina.

    3. Fai di nuovo clic su Elimina per confermare.

    gcloud

    gcloud network-security intercept-endpoint-groups delete consumer-endpoint-group \
        --location=global \
        --no-async
    
  6. Elimina le VM server e client.

    Console

    1. Nella console Google Cloud , vai alla pagina Istanze VM.

      Vai a Istanze VM

    2. Seleziona le caselle di controllo di consumer-client-vm e consumer-server-vm e fai clic su Elimina.

    3. Fai di nuovo clic su Elimina per confermare.

    gcloud

    1. Elimina la VM client.

      gcloud compute instances delete consumer-client-vm \
          --zone=us-west1-b \
          --quiet
      
    2. Elimina la VM server.

      gcloud compute instances delete consumer-server-vm \
          --zone=us-west1-b \
          --quiet
      
  7. Elimina la rete e la subnet consumer.

    Console

    1. Nella console Google Cloud , vai alla pagina Reti VPC.

      Vai a Reti VPC

    2. Fai clic su consumer-network.

    3. Nella scheda Subnet, seleziona la casella di controllo di consumer-subnet e fai clic su Elimina.

    4. Fai di nuovo clic su Elimina per confermare.

    5. Fai clic su Elimina rete VPC.

    6. Nel campo di testo, inserisci consumer-network e fai clic su Elimina.

    gcloud

    1. Elimina la subnet.

      gcloud compute networks subnets delete consumer-subnet \
          --region=us-west1 \
          --quiet
      
    2. Elimina la rete VPC.

      gcloud compute networks delete consumer-network \
          --quiet
      

Elimina le risorse del produttore

  1. Dissocia la policy del firewall dalla rete del produttore ed elimina la policy del firewall.

    Console

    1. Nella console Google Cloud , vai alla pagina Policy firewall.

      Vai a Criteri firewall

    2. Fai clic sul criterio producer-firewall-policy.

    3. Fai clic sulla scheda Associazioni.

    4. Seleziona la casella di controllo dell'associazione producer-network.

    5. Fai clic su Rimuovi associazione.

    6. Fai clic su Rimuovi.

    7. Nella parte superiore della pagina, fai clic su Elimina.

    8. Fai di nuovo clic su Elimina per confermare.

    gcloud

    1. Rimuovi l'associazione.

      gcloud compute network-firewall-policies associations delete \
          --name=producer-firewall-policy-assoc \
          --firewall-policy=producer-firewall-policy \
          --global-firewall-policy
      
    2. Elimina la policy del firewall.

      gcloud compute network-firewall-policies delete producer-firewall-policy \
          --global
      
  2. Elimina il deployment di intercettazione e il gruppo di deployment di intercettazione.

    Console

    1. Nella console Google Cloud , vai alla pagina Gruppi di deployment.

      Vai a Gruppi di deployment

    2. Fai clic su producer-deployment-group.

    3. Elimina producer-deployment.

      1. Seleziona la casella di controllo producer-deployment e fai clic su Elimina.
      2. Fai di nuovo clic su Elimina per confermare.
    4. Fai clic sul pulsante Elimina in alto nella pagina.

    5. Fai di nuovo clic su Elimina per confermare.

    gcloud

    1. Elimina il deployment di intercettazione.

      gcloud network-security intercept-deployments delete producer-deployment \
          --location=us-west1-b \
          --no-async
      
    2. Elimina il gruppo di deployment di intercettazione.

      gcloud network-security intercept-deployment-groups delete producer-deployment-group \
          --location=global \
          --no-async
      
  3. Elimina le risorse del bilanciatore del carico.

    Console

    1. Nella console Google Cloud , vai alla pagina Bilanciamento del carico.

      Vai a Bilanciamento del carico

    2. Seleziona la casella di controllo producer-ilb.

    3. Fai clic sul pulsante Elimina in alto nella pagina.

    4. Seleziona la casella di controllo producer-health-check e fai clic su Elimina il bilanciatore del carico e le risorse selezionate.

    gcloud

    1. Elimina la regola di forwarding.

      gcloud compute forwarding-rules delete producer-ilb-fr \
          --region=us-west1 \
          --quiet
      
    2. Rimuovi il servizio di backend.

      gcloud compute backend-services delete producer-backend-service \
          --region=us-west1 \
          --quiet
      
    3. Elimina il controllo di integrità.

      gcloud compute health-checks delete producer-health-check \
          --region=us-west1 \
          --quiet
      
  4. Elimina l'istanza VM del produttore.

    Console

    1. Nella console Google Cloud , vai alla pagina Istanze VM.

      Vai a Istanze VM

    2. Seleziona la casella di controllo di producer-instance e fai clic su Elimina.

    3. Fai di nuovo clic su Elimina per confermare.

    gcloud

    gcloud compute instances delete producer-instance \
        --zone=us-west1-b \
        --quiet
    
  5. Elimina il gruppo di istanze.

    Console

    1. Nella console Google Cloud , vai alla pagina Gruppi di istanze.

      Vai a Gruppi di istanze

    2. Seleziona la casella di controllo producer-instance-group.

    3. Fai clic su Elimina.

    4. Nella finestra di conferma, fai clic su Delete (Elimina).

    gcloud

    gcloud compute instance-groups unmanaged delete producer-instance-group \
        --zone=us-west1-b \
        --quiet
    
  6. Elimina la rete e la subnet del producer.

    Console

    1. Nella console Google Cloud , vai alla pagina Reti VPC.

      Vai a Reti VPC

    2. Fai clic su producer-network.

    3. Nella scheda Subnet, seleziona la casella di controllo di producer-subnet e fai clic su Elimina.

    4. Fai di nuovo clic su Elimina per confermare.

    5. Fai clic su Elimina rete VPC.

    6. Nel campo di testo, inserisci producer-network e fai clic su Elimina.

    gcloud

    1. Elimina la subnet.

      gcloud compute networks subnets delete producer-subnet \
          --region=us-west1 \
          --quiet
      
    2. Elimina la rete.

      gcloud compute networks delete producer-network \
          --quiet
      

Passaggi successivi