Esegui la migrazione delle regole firewall VPC che utilizzano tag di rete e account di servizio

Le regole firewall Virtual Private Cloud (VPC) possono contenere tag di rete e account servizio di origine. Per eseguire la migrazione delle regole firewall VPC che contengono tag di rete e account di servizio di origine a un criterio firewall di rete globale, svolgi le seguenti attività:

  1. Valuta il tuo ambiente.
  2. Elenca i tag di rete e gli account di servizio esistenti.
  3. Crea tag per ogni tag di rete e account di servizio di origine.
  4. Mappa i tag di rete e gli account di servizio ai tag che crei.
  5. Associa i tag alle istanze di macchine virtuali (VM).
  6. Esegui la migrazione delle regole firewall VPC a un criterio firewall di rete globale.
  7. Esamina il nuovo criterio firewall di rete.
  8. Completa le attività di post-migrazione.

Prima di iniziare

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Compute Engine API.

    Enable the API

  5. Install the Google Cloud CLI.
  6. To initialize the gcloud CLI, run the following command:

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  8. Make sure that billing is enabled for your Google Cloud project.

  9. Enable the Compute Engine API.

    Enable the API

  10. Install the Google Cloud CLI.
  11. To initialize the gcloud CLI, run the following command:

    gcloud init
  12. Assicurati di disporre del ruolo Amministratore sicurezza Compute (roles/compute.securityAdmin).

Valutare il tuo ambiente

Prima di eseguire la migrazione delle regole firewall VPC a un criterio firewall di rete globale, valuta l'ambiente esistente e i ruoli e le autorizzazioni IAM (Identity and Access Management):

  1. Identifica il numero di regole firewall VPC nella rete VPC.
  2. Prendi nota delle priorità associate a ogni regola del firewall VPC.
  3. Assicurati di disporre dei ruoli e delle autorizzazioni IAM necessari per creare, associare, modificare e visualizzare i criteri firewall di rete globali.
  4. Assicurati di disporre dei ruoli e delle autorizzazioni IAM necessari per creare, aggiornare ed eliminare definizioni di tag sicure.

    La tabella seguente fornisce un riepilogo dei vari ruoli necessari per creare e gestire i tag:

    Nome ruolo Attività eseguite
    Ruolo Amministratore del tag (roles/resourcemanager.tagAdmin) Crea, aggiorna ed elimina le definizioni dei tag. Per saperne di più, consulta Gestire i tag.
    Ruolo Visualizzatore dei tag (roles/resourcemanager.tagViewer) Visualizza le definizioni dei tag e i tag associati alle risorse.
    Tag Ruolo utente (roles/resourcemanager.tagUser) Aggiungi e rimuovi i tag associati alle risorse.

Elenca i tag di rete e gli account di servizio esistenti

Determina se le regole firewall VPC utilizzano tag di rete o account di servizio e crea un file JSON per salvare i dettagli dei tag di rete e degli account di servizio esistenti.

Per esportare i tag di rete e gli account di servizio della tua rete in un file JSON di mappatura, utilizza il comando compute firewall-rules migrate con il flag --export-tag-mapping.

gcloud beta compute firewall-rules migrate \
    --source-network=NETWORK_NAME \
    --export-tag-mapping \
    --tag-mapping-file=TAG_MAPPING_FILE

Sostituisci quanto segue:

  • NETWORK_NAME: il nome della rete VPC contenente le regole firewall VPC di cui vuoi eseguire la migrazione.
  • TAG_MAPPING_FILE: il nome del file JSON di mappatura.

Se le regole del firewall VPC contengono solo account di servizio, il file JSON generato contiene solo account di servizio. Analogamente, se le regole firewall VPC contengono solo tag di rete, il file JSON generato contiene solo tag di rete. Gli account di servizio hanno il prefisso sa e i tag di rete non hanno alcun prefisso.

Ad esempio, il seguente file JSON generato contiene un tag di rete sql-server e un account di servizio example@example.com.

{"sql-server": null, "sa:example@example.com": null}

Creare tag

In base ai tag di rete e agli account di servizio di origine elencati nel file di mappatura, devi creare i tag sicuri corrispondenti nella tua rete.

I nuovi tag sicuri sostituiscono i tag di rete e gli account di servizio e consentono di conservare la configurazione di rete originale dopo la migrazione.

In qualità di entità con il ruolo Amministratore tag, per ogni tag di rete e account di servizio, crea la coppia chiave-valore del tag sicura corrispondente.

gcloud resource-manager tags keys create TAG_KEY \
    --parent organizations/ORGANIZATION_ID \
    --purpose GCE_FIREWALL \
    --purpose-data network=PROJECT_ID/NETWORK_NAME

gcloud resource-manager tags values create TAG_VALUE \
    --parent ORGANIZATION_ID/TAG_KEY

Sostituisci quanto segue:

  • TAG_KEY: il nome della chiave Tag.
  • ORGANIZATION_ID: l'ID della tua organizzazione.
  • PROJECT_ID: l'ID del progetto.
  • NETWORK_NAME: il nome della rete VPC.
  • TAG_VALUE: il valore da assegnare alla chiave Tag.

Ad esempio, se hai una regola firewall VPC con un tag di rete chiamato sql-server, crea una coppia chiave-valore di tag sicuri corrispondente di sql-server:production.

gcloud resource-manager tags keys create sql-server \
    --parent organizations/123456 \
    --purpose GCE_FIREWALL \
    --purpose-data network=test-project/test-network

gcloud resource-manager tags values create production \
   --parent 123456/sql-server

Mappa i tag di rete e gli account di servizio a Tag

Dopo aver creato tag sicuri regolati da IAM per ogni tag di rete e account di servizio utilizzati dalle regole firewall VPC, devi mappare i tag ai tag di rete e agli account di servizio corrispondenti nel file JSON di mappatura.

Modifica il file JSON per mappare i tag di rete e gli account di servizio ai tag sicuri corrispondenti.

{"sql-server": "tagValues/yyyyy", "sa:example@example.com": "tagValues/zzzzz"}

Ad esempio, il seguente file JSON mappa il tag di rete sql-server al valore Tag della chiave sql-server e l'account di servizio example@example.com al valore Tag della chiave example@example.com:

{"sql-server": "tagValues/production", "sa:example@example.com": "tagValues/example"}

Associa i tag alle VM

In base al file JSON di mappatura dei tag, associa i tag sicuri appena creati alle VM a cui sono collegati i tag di rete esistenti:

  1. In qualità di entità con il ruolo Amministratore del tag, svolgi i seguenti passaggi:

    1. Esamina le autorizzazioni richieste per allegare tag sicuri alle risorse. Google Cloud
    2. Assegna il ruolo Utente tag al principale che utilizza i tag sicuri e li associa alle VM.
  2. In qualità di entità con il ruolo Utente tag, utilizza il comando compute firewall-rules migrate con il flag --bind-tags-to-instances:

    gcloud beta compute firewall-rules migrate \
       --source-network=NETWORK_NAME \
       --bind-tags-to-instances \
       --tag-mapping-file=TAG_MAPPING_FILE
    

    Sostituisci quanto segue:

    • NETWORK_NAME: il nome della rete VPC.
    • TAG_MAPPING_FILE: il nome del file JSON di mappatura.

Esegui la migrazione delle regole firewall VPC a un criterio firewall di rete globale

Esegui la migrazione delle regole firewall VPC a un criterio firewall di rete globale. Utilizza il comando compute-firewall-rules migrate.

gcloud beta compute firewall-rules migrate \
    --source-network=NETWORK_NAME \
    --target-firewall-policy=POLICY_NAME \
    --tag-mapping-file=TAG_MAPPING_FILE

Sostituisci quanto segue:

  • NETWORK_NAME: il nome della rete VPC contenente le regole firewall VPC di cui vuoi eseguire la migrazione.
  • POLICY_NAME: il nome del criterio di firewall di rete globale da creare durante la migrazione.

Escludere le regole firewall dalla migrazione

Per escludere regole firewall specifiche dalla migrazione, utilizza il comando gcloud beta compute firewall-rules migrate con il flag --exclusion-patterns-file:

gcloud beta compute firewall-rules migrate \
    --source-network=NETWORK_NAME \
    --target-firewall-policy=POLICY_NAME \
    --exclusion-patterns-file=EXCLUSION_PATTERNS_FILE

Sostituisci quanto segue:

  • NETWORK_NAME: il nome della rete VPC che contiene le regole del firewall VPC di cui vuoi eseguire la migrazione.
  • POLICY_NAME: il nome della policy del firewall di rete globale da creare durante la migrazione.
  • EXCLUSION_PATTERNS_FILE: il nome del file che contiene le espressioni regolari che definiscono i pattern di denominazione dei firewall VPC da escludere dalla migrazione. Assicurati di specificare il percorso completo del file. Le regole firewall che corrispondono ai pattern specificati vengono ignorate.

    Quando definisci i pattern di esclusione, tieni presente quanto segue:

    • Ogni espressione regolare deve trovarsi su una riga distinta e rappresentare un singolo pattern di denominazione del firewall.
    • Le espressioni regolari non contengono spazi iniziali o finali.

Visualizza le regole firewall escluse

In base ai pattern di denominazione delle regole firewall escluse, lo strumento di migrazione non esegue la migrazione di alcune regole firewall, ad esempio quelle di Google Kubernetes Engine (GKE). Per esportare l'elenco dei pattern di denominazione delle regole firewall escluse, utilizza il comandogcloud beta compute firewall-rules migrate con i flag--export-exclusion-patterns e --exclusion-patterns-file.

gcloud beta compute firewall-rules migrate \
    --source-network=NETWORK_NAME \
    --target-firewall-policy=POLICY_NAME \
    --exclusion-patterns-file=EXCLUSION_PATTERNS_FILE \
    --export-exclusion-patterns

Sostituisci quanto segue:

  • NETWORK_NAME: il nome della rete VPC che contiene le regole del firewall VPC di cui vuoi eseguire la migrazione.
  • POLICY_NAME: il nome della policy del firewall di rete globale da creare durante la migrazione.
  • EXCLUSION_PATTERNS_FILE: il percorso del file in cui vengono esportati i seguenti pattern di denominazione delle regole firewall escluse.

    gke-(.+)-ipv6-all
    gke-(.+)-(.+)-((master)|(vms)|(all)|(inkubelet)|(exkubelet)|(mcsd))
    k8s-fw-(l7-)?(.+)
    k8s-(.+)-((node)|(http)|(node-http))-hc
    (.+)-hc
    k8s2-(.+)-(.+)-(.+)-(.+)(-fw)?
    k8s2-(.+)-l4-shared-hc-fw
    gke((gw)|(mcg))1-l7-(.+)-(.+)
    

Per eseguire la migrazione delle regole del firewall escluse che corrispondono a un pattern specifico,rimuovi il pattern dall'elenco esportato ed esegui il comando gcloud beta compute firewall-rules migrate con il flag --exclusion-patterns-file.

Forzare la migrazione mantenendo l'ordine di valutazione

Durante la migrazione, se l'ordine di valutazione di una regola firewall esclusa rientra tra gli ordini di valutazione delle regole firewall specificate dall'utente, la migrazione non va a buon fine.Questo accade perché non viene eseguita la migrazione delle regole firewall escluse e lo strumento di migrazione non può mantenere l'ordine di valutazione originale delle regole definite dall'utente nel nuovo criterio del firewall di rete.

Ad esempio, se le regole del firewall hanno le seguenti priorità, la migrazione non va a buon fine.

  • Una regola specificata dall'utente con priorità 100
  • Una regola esclusa con priorità 200
  • Una regola specificata dall'utente con priorità 300

Per forzare lo strumento di migrazione a eseguire la migrazione delle regole specificate dall'utente mantenendone l'ordine di valutazione originale e ignorando le regole del firewall escluse, utilizza il comando gcloud beta compute firewall-rules migrate con il flag --force.

gcloud beta compute firewall-rules migrate \
    --source-network=NETWORK_NAME \
    --target-firewall-policy=POLICY_NAME \
    --force

Sostituisci quanto segue:

  • NETWORK_NAME: il nome della rete VPC che contiene le regole del firewall VPC di cui vuoi eseguire la migrazione.
  • POLICY_NAME: il nome della policy del firewall di rete globale da creare durante la migrazione.

Esamina il nuovo criterio firewall di rete globale

Prima di associare il criterio appena creato a una rete VPC, Google consiglia di esaminarlo per assicurarsi che il processo di migrazione sia stato completato correttamente.

Verifica quanto segue:

  • La configurazione delle regole del criterio firewall è corretta e i seguenti componenti della regola sono stati migrati correttamente per ogni regola:

    • Priorità relativa
    • Direzione del traffico
    • Azione in caso di corrispondenza
    • Impostazioni di log
    • Parametri target
    • Parametri di origine (per le regole in entrata)
    • Parametri di destinazione (per le regole in uscita)
    • Vincoli di protocollo e porta
  • Verifica se i tag sicuri sono collegati alla VM corretta. Utilizza il comando resource-manager tags bindings list.

    gcloud resource-manager tags bindings list \
        --location=ZONE_ID \
        --parent //compute.googleapis.com/projects/PROJECT_ID/zones/ZONE_ID/instances/INSTANCE_NAME \
        --effective
    

    Sostituisci quanto segue:

    • ZONE_ID: la zona della VM.
    • PROJECT_ID: l'ID del progetto.
    • INSTANCE_NAME: il nome della VM.

Attività post-migrazione

Per attivare e utilizzare il nuovo criterio di firewall della rete globale, completa le attività di post-migrazione. Per ulteriori informazioni, consulta la sezione Attività post-migrazione.

Passaggi successivi