VPC-Firewallregeln, die Netzwerk-Tags und Dienstkonten nutzen, migrieren

Ihre VPC-Firewallregeln (Virtual Private Cloud) können Netzwerk-Tags und Quelldienstkonten enthalten. Führen Sie die folgenden Aufgaben aus, um Ihre VPC-Firewallregeln, die Netzwerk-Tags und Quelldienstkonten enthalten, zu einer globalen Netzwerk-Firewallrichtlinie zu migrieren:

  1. Umgebung bewerten
  2. Vorhandene Netzwerk-Tags und Dienstkonten auflisten
  3. Tags für jedes Netzwerk-Tag und jedes Quelldienstkonto erstellen
  4. Netzwerk-Tags und Dienstkonten den von Ihnen erstellten Tags zuordnen
  5. Tags an VM-Instanzen binden
  6. VPC-Firewallregeln zu einer globalen Netzwerk-Firewallrichtlinie migrieren
  7. Neue Richtlinie für Netzwerkfirewalls prüfen
  8. Nach der Migration erforderliche Aufgaben ausführen

Vorbereitung

  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. Sie benötigen die Rolle „Compute Security Admin“ (roles/compute.securityAdmin).

Umgebung bewerten

Bevor Sie Ihre VPC-Firewallregeln zu einer globalen Netzwerk-Firewallrichtlinie migrieren, sollten Sie Ihre vorhandene Umgebung sowie die IAM-Rollen und ‑Berechtigungen (Identity and Access Management) prüfen:

  1. Ermitteln Sie die Anzahl der VPC-Firewallregeln in Ihrem VPC-Netzwerk.
  2. Notieren Sie sich die Prioritäten für jede einzelne VPC-Firewallregel.
  3. Sie benötigen die erforderlichen IAM-Rollen und -Berechtigungen, um globale Netzwerk-Firewallrichtlinien zu erstellen, zu verknüpfen, zu ändern und aufzurufen.
  4. Sie benötigen die erforderlichen IAM-Rollen und -Berechtigungen, um sichere Tagdefinitionen erstellen, aktualisieren und löschen zu können.

    In der folgenden Tabelle sind die verschiedenen Rollen aufgeführt, die zum Erstellen und Verwalten von Tags erforderlich sind:

    Rollenname Ausgeführte Aufgaben
    Rolle „Tag-Administrator“ (roles/resourcemanager.tagAdmin) Tagdefinitionen erstellen, aktualisieren und löschen. Weitere Informationen finden Sie unter Tags verwalten.
    Rolle „Tag-Betrachter“ (roles/resourcemanager.tagViewer) Tag-Definitionen und Tags aufrufen, die an Ressourcen angehängt sind.
    Rolle „Tag-Nutzer“ (roles/resourcemanager.tagUser) An Ressourcen angehängt Tags hinzufügen und entfernen.

Vorhandene Netzwerk-Tags und Dienstkonten auflisten

Prüfen Sie, ob Ihre VPC-Firewallregeln Netzwerk-Tags oder Dienstkonten verwenden, und erstellen Sie eine JSON-Datei, um die Details der vorhandenen Netzwerk-Tags und Dienstkonten zu speichern.

Verwenden Sie den compute firewall-rules migrate-Befehl mit dem Flag --export-tag-mapping, um die Netzwerk-Tags und Dienstkonten in Ihrem Netzwerk in eine JSON-Zuordnungsdatei zu exportieren.

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

Ersetzen Sie dabei Folgendes:

  • NETWORK_NAME: Name Ihres VPC-Netzwerks, das die VPC-Firewallregeln enthält, die Sie migrieren möchten.
  • TAG_MAPPING_FILE: Name der JSON-Datei für die Zuordnung.

Wenn Ihre VPC-Firewallregeln nur Dienstkonten enthalten, enthält die generierte JSON-Datei nur Dienstkonten. Wenn Ihre VPC-Firewallregeln nur Netzwerk-Tags enthalten, enthält die generierte JSON-Datei ebenfalls nur Netzwerk-Tags. Dienstkonten haben das Präfix sa, Netzwerk-Tags haben kein Präfix.

Die folgende generierte JSON-Datei enthält beispielsweise ein Netzwerk-Tag sql-server und ein Dienstkonto example@example.com.

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

Tags erstellen

Anhand der in der Zuordnungsdatei aufgeführten Netzwerk-Tags und Quelldienstkonten müssen Sie die entsprechenden sicheren Tags in Ihrem Netzwerk erstellen.

Die neuen sicheren Tags ersetzen die Netzwerk-Tags und Dienstkonten und bewahren die ursprüngliche Netzwerkkonfiguration nach der Migration auf.

Als Hauptkonto mit der Rolle „Tag-Administrator“ müssen Sie für jedes Netzwerk-Tag und jedes Dienstkonto das entsprechende Schlüssel/Wert-Paar für sichere Tags erstellen.

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

Ersetzen Sie dabei Folgendes:

  • TAG_KEY: Name des Tag-Schlüssels.
  • ORGANIZATION_ID: ID Ihrer Organisation.
  • PROJECT_ID: die Projekt-ID.
  • NETWORK_NAME: der Name des VPC-Netzwerks.
  • TAG_VALUE: der Wert, der dem Tag-Schlüssel zugewiesen werden soll

Wenn Sie beispielsweise eine VPC-Firewallregel mit dem Netzwerk-Tag sql-server haben, erstellen Sie ein entsprechendes sicheres Tag-Schlüssel/Wert-Paar für 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

Netzwerk-Tags und Dienstkonten Tags zuordnen

Nachdem Sie IAM-gesteuerte sichere Tags für alle von Ihren VPC-Firewallregeln verwendeten Netzwerk-Tags und Dienstkonten erstellt haben, müssen Sie die Tags den entsprechenden Netzwerk-Tags und Dienstkonten in der Zuordnungs-JSON-Datei zuordnen.

Bearbeiten Sie die JSON-Datei, um die Netzwerk-Tags und die Dienstkonten den entsprechenden sicheren Tags zuzuordnen.

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

Die folgende JSON-Datei ordnet beispielsweise das Netzwerk-Tag sql-server zum Tag-Wert des Schlüsselssql-server und das Dienstkontoexample@example.com zum Tag-Wert des Schlüsselsexample@example.com zu:

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

Tags an VMs binden

Binden Sie die neu erstellten sicheren Tags anhand der JSON-Datei für die Tagzuordnung an die VMs, an die die vorhandenen Netzwerk-Tags angehängt sind:

  1. So gehen Sie vor, wenn Sie die Rolle „Tag-Administrator“ haben:

    1. Beachten Sie die erforderlichen Berechtigungen an, um sichere Tags an Google Cloud -Ressourcen anzuhängen.
    2. Weisen Sie dem Hauptkonto, das die sicheren Tags verwendet und die Tags an VMs bindet, die Rolle „Tag-Nutzer“ zu.
  2. Verwenden Sie als Hauptkonto mit der Rolle „Tag-Nutzer“ den compute firewall-rules migrate-Befehl mit dem 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
    

    Ersetzen Sie dabei Folgendes:

    • NETWORK_NAME: der Name des VPC-Netzwerks.
    • TAG_MAPPING_FILE: Name der JSON-Datei für die Zuordnung.

VPC-Firewallregeln zu einer globalen Netzwerk-Firewallrichtlinie migrieren

Migrieren Sie Ihre VPC-Firewallregeln zu einer globalen Netzwerk-Firewallrichtlinie. Führen Sie den Befehl compute-firewall-rules migrate aus.

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

Ersetzen Sie dabei Folgendes:

  • NETWORK_NAME: Name Ihres VPC-Netzwerks, das die VPC-Firewallregeln enthält, die Sie migrieren möchten.
  • POLICY_NAME: Name der globalen Richtlinie für Netzwerkfirewalls, die während der Migration erstellt werden soll.

Firewallregeln von der Migration ausschließen

Wenn Sie bestimmte Firewallregeln von der Migration ausschließen möchten, verwenden Sie den Befehl gcloud beta compute firewall-rules migrate mit dem 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

Ersetzen Sie Folgendes:

  • NETWORK_NAME: Name Ihres VPC-Netzwerks, das die VPC-Firewallregeln enthält, die Sie migrieren möchten.
  • POLICY_NAME: Name der globalen Richtlinie für Netzwerkfirewalls, die während der Migration erstellt werden soll.
  • EXCLUSION_PATTERNS_FILE: der Name der Datei, die reguläre Ausdrücke enthält, mit denen Benennungsmuster für VPC-Firewalls definiert werden, die von der Migration ausgeschlossen werden sollen. Geben Sie den vollständigen Pfad der Datei an. Firewallregeln, die den angegebenen Mustern entsprechen, werden übersprungen.

    Berücksichtigen Sie beim Definieren der Ausschlüsse Folgendes:

    • Jeder reguläre Ausdruck muss in einer eigenen Zeile stehen und ein einzelnes Firewall-Benennungsmuster darstellen.
    • Die regulären Ausdrücke dürfen keine führenden oder nachgestellten Leerzeichen enthalten.

Ausgeschlossene Firewallregeln ansehen

Aufgrund der ausgenommenen Benennungsmuster für Firewallregeln migriert das Migrationstool einige Firewallregeln nicht, z. B. Firewallregeln der Google Kubernetes Engine (GKE). Verwenden Sie den Befehl gcloud beta compute firewall-rules migrate mit den Flags --export-exclusion-patterns und --exclusion-patterns-file, um die Liste der ausgeschlossenen Benennungsmuster für Firewallregeln zu exportieren.

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

Ersetzen Sie Folgendes:

  • NETWORK_NAME: Name Ihres VPC-Netzwerks, das die VPC-Firewallregeln enthält, die Sie migrieren möchten.
  • POLICY_NAME: Name der globalen Richtlinie für Netzwerkfirewalls, die während der Migration erstellt werden soll.
  • EXCLUSION_PATTERNS_FILE: der Pfad zur Datei, in die die folgenden auszuschließenden Benennungsmuster für Firewallregeln exportiert werden.

    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-(.+)-(.+)
    

Wenn Sie ausgeschlossene Firewallregeln migrieren möchten, die einem bestimmten Muster entsprechen, entfernen Sie das Muster aus der exportierten Liste und führen Sie den Befehl gcloud beta compute firewall-rules migrate mit dem Flag --exclusion-patterns-file aus.

Migration erzwingen und Bewertungsreihenfolge beibehalten

Wenn während der Migration die Auswertungsreihenfolge einer ausgeschlossenen Firewallregel zwischen den Auswertungsreihenfolgen von vom Nutzer angegebenen Firewallregeln liegt, schlägt die Migration fehl.Das liegt daran, dass die ausgeschlossenen Firewallregeln nicht migriert werden und das Migrationstool die ursprüngliche Auswertungsreihenfolge benutzerdefinierter Regeln in der neuen Netzwerk-Firewallrichtlinie nicht beibehalten kann.

Wenn Ihre Firewallregeln beispielsweise die folgenden Prioritäten haben, schlägt die Migration fehl.

  • Eine vom Nutzer angegebene Regel mit der Priorität 100
  • Eine ausgeschlossene Regel mit der Priorität 200
  • Eine vom Nutzer angegebene Regel mit der Priorität 300

Wenn Sie das Migrationstool dazu zwingen möchten, die vom Nutzer angegebenen Regeln zu migrieren, wobei die ursprüngliche Auswertungsreihenfolge beibehalten und ausgeschlossene Firewallregeln ignoriert werden, verwenden Sie den Befehl gcloud beta compute firewall-rules migrate mit dem Flag --force.

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

Ersetzen Sie Folgendes:

  • NETWORK_NAME: Name Ihres VPC-Netzwerks, das die VPC-Firewallregeln enthält, die Sie migrieren möchten.
  • POLICY_NAME: Name der globalen Richtlinie für Netzwerkfirewalls, die während der Migration erstellt werden soll.

Neue globale Richtlinie für Netzwerkfirewalls prüfen

Bevor Sie die neu erstellte Richtlinie einem VPC-Netzwerk zuordnen, empfiehlt Google, dass Sie die Richtlinie prüfen, um sicherzustellen, dass die Migration korrekt abgeschlossen wurde.

Gehen Sie so vor:

  • Die Konfiguration der Firewallrichtlinienregeln ist korrekt und die folgenden Regelkomponenten wurden für jede Regel korrekt migriert:

    • Relative Priorität
    • Traffic-Richtung
    • Aktion bei Übereinstimmung
    • Log-Einstellungen
    • Zielparameter
    • Quellparameter (für Eingangsregeln)
    • Zielparameter (für Ausgangsregeln)
    • Protokoll- und Porteinschränkungen
  • Prüfen Sie, ob die sicheren Tags an der richtigen VM angehängt sind. Führen Sie den Befehl resource-manager tags bindings list aus.

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

    Ersetzen Sie dabei Folgendes:

    • ZONE_ID: die Zone Ihrer VM.
    • PROJECT_ID: die Projekt-ID.
    • INSTANCE_NAME ist der Name Ihrer VM.

Nach der Migration erforderliche Aufgaben

Führen Sie die Aufgaben aus, die nach der Migration erforderlich sind, um die neue globale Netzwerk-Firewallrichtlinie zu aktivieren und zu verwenden. Weitere Informationen finden Sie unter Aufgaben nach der Migration.

Nächste Schritte