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

Um die Verwaltung zu zentralisieren und Sicherheitsrichtlinien in Ihren VPC-Netzwerken (Virtual Private Cloud) einheitlich zu erzwingen, migrieren Sie Ihre VPC-Firewallregeln, die Netzwerk-Tags und Quell-Dienstkonten verwenden, zu einer globalen Netzwerk-Firewallrichtlinie. So können Sie Ihre Angriffsfläche verringern, Ihre Firewallkonfigurationen optimieren und Sicherheitsgrenzen verschärfen, indem Sie zu moderate Regeln identifizieren und beheben.

Dieses Dokument richtet sich an Netzwerkadministratoren, Sicherheitsexperten und Sicherheitsarchitekten, die Netzwerksicherheitsrichtlinien konfigurieren und verwalten.

Informationen zum Migrieren von Regeln, die keine Netzwerk-Tags oder Dienstkonten verwenden, finden Sie unter VPC-Firewallregeln migrieren, die weder Netzwerk-Tags noch Dienstkonten verwenden.

Führen Sie die folgenden Aufgaben aus, um die Migration abzuschließen:

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

Hinweis

  1. Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie einfach ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
  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. Enable the Compute Engine API, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  5. Install the Google Cloud CLI.

  6. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  7. To initialize the gcloud CLI, run the following command:

    gcloud init
  8. 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

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

  10. Enable the Compute Engine API, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  11. Install the Google Cloud CLI.

  12. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  13. To initialize the gcloud CLI, run the following command:

    gcloud init
  14. 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 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. Prüfen Sie, ob Sie die erforderlichen IAM-Rollen und ‑Berechtigungen zum Erstellen, Zuordnen, Ändern und Aufrufen globaler Netzwerk-Firewallrichtlinien haben.
  4. Prüfen Sie, ob Sie die erforderlichen IAM-Rollen und -Berechtigungen zum Erstellen, Aktualisieren und Löschen von Definitionen für sichere Tags haben.

    In der folgenden Tabelle sind die verschiedenen Rollen zusammengefasst, die zum Erstellen und Verwalten von sicheren 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 Netzwerktags und Dienstkonten auflisten

Ermitteln 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 gcloud beta 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 Folgendes:

  • NETWORK_NAME: der Name des 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 Netzwerktags enthalten, enthält die generierte JSON-Datei ebenfalls nur Netzwerktags. Dienstkonten haben das Präfix sa, Netzwerk-Tags nicht.

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}

Sichere Tags erstellen

Basierend auf den in der Zuordnungsdatei aufgeführten Netzwerk-Tags und Quell-Dienstkonten müssen Sie die entsprechenden sicheren Tags in Ihrem Netzwerk erstellen.

Diese ersetzen die Netzwerk-Tags und Dienstkonten und bewahren die ursprüngliche Netzwerkkonfiguration nach der Migration.

Erstellen Sie als Hauptkonto mit der Rolle „Tag-Administrator“ für jedes Netzwerk-Tag und jedes Dienstkonto das entsprechende sichere Tag-Schlüssel/Wert-Paar.

Verwenden Sie den Befehl gcloud resource-manager tags keys create und den Befehl gcloud resource-manager tags values create, um einen sicheren Tag-Schlüssel und -Wert für jedes Netzwerk-Tag und Dienstkonto zu 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 Folgendes:

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

Wenn Sie beispielsweise eine VPC-Firewallregel mit einem Netzwerk-Tag namens sql-server haben, erstellen Sie ein entsprechendes Schlüssel/Wert-Paar für das sichere Tag mit 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 sicheren 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 sicheren Tags den entsprechenden Netzwerk-Tags und Dienstkonten in der Zuordnungs-JSON-Datei zuordnen.

Bearbeiten Sie die JSON-Datei, um die Netzwerk-Tags und 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 sicheren Tag-Wert des Schlüsselssql-server und das Dienstkontoexample@example.com zum sicheren Tag-Wert des Schlüsselsexample@example.com zu:

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

Sichere Tags an VMs binden

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

  1. Gehen Sie als Hauptkonto mit der Rolle „Tag-Administrator“ so vor:

    1. Beachten Sie die erforderlichen Berechtigungen, um sichere Tags an Google Cloud Ressourcen anzuhängen.
    2. Weisen Sie dem Hauptkonto, das die sicheren Tags verwendet und die sicheren Tags an VMs bindet, die Rolle „Tag-Nutzer“ zu.
  2. Binden Sie als Hauptkonto mit der Rolle „Tag-Nutzer“ die sicheren Tags mit dem gcloud beta compute firewall-rules migrate-Befehl mit dem Flag --bind-tags-to-instances an VM-Instanzen:

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

    Ersetzen Sie 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

Verwenden Sie zum Migrieren von VPC-Firewallregeln zu einer globalen Netzwerk-Firewallrichtlinie den Befehl gcloud beta 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

Ersetzen Sie Folgendes:

  • NETWORK_NAME: der Name des 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.
  • TAG_MAPPING_FILE: Name der JSON-Datei für die Zuordnung.

Firewallregeln von der Migration ausschließen

Verwenden Sie den Befehl gcloud beta compute firewall-rules migrate mit dem Flag --exclusion-patterns-file, um bestimmte Firewallregeln von der Migration auszuschließen:

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-Netzwerk, 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, die VPC-Firewall-Benennungsmuster definieren, die von der Migration ausgeschlossen werden sollen. Geben Sie den vollständigen Pfad der Datei an. Firewallregeln, die den angegebenen Mustern entsprechen, werden übersprungen.

    Beachten Sie beim Definieren der Ausschlussmuster Folgendes:

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

Ausgeschlossene Firewallregeln ansehen

Basierend auf den ausgeschlossenen Benennungsmustern für Firewallregeln werden einige Firewallregeln, z. B. Google Kubernetes Engine-Firewallregeln (GKE), vom Migrationstool nicht migriert. 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-Netzwerk, 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 der Datei, in die die folgenden ausgeschlossenen 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 gleichzeitig die Reihenfolge der Auswertung beibehalten

Wenn die Auswertungsreihenfolge einer ausgeschlossenen Firewallregel während der Migration zwischen die Auswertungsreihenfolgen der vom Nutzer angegebenen Firewallregeln fällt, schlägt die Migration fehl.Das liegt daran, dass die ausgeschlossenen Firewallregeln nicht migriert werden und das Migrationstool die ursprüngliche Auswertungsreihenfolge der nutzerdefinierten 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 Priorität 200
  • Eine vom Nutzer angegebene Regel mit der Priorität 300

Wenn Sie erzwingen möchten, dass das Migrationstool die vom Nutzer angegebenen Regeln migriert, während 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-Netzwerk, 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 Firewallrichtlinie für Netzwerke 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 Regeln für ausgehenden Traffic)
    • Einschränkungen für Protokolle und Ports
  • Prüfen Sie, ob die sicheren Tags an die richtige VM angehängt sind. Verwenden Sie den Befehl gcloud resource-manager tags bindings list, um dies zu prüfen:

    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 Folgendes:

    • ZONE_ID ist die Zone der VM.
    • PROJECT_ID: die ID des Projekts.
    • INSTANCE_NAME: der Name der VM.

Nach der Migration erforderliche Aufgaben

Um die neue globale Netzwerk-Firewallrichtlinie zu aktivieren und zu verwenden, müssen Sie die Aufgaben ausführen, die nach der Migration erforderlich sind. Weitere Informationen finden Sie unter Aufgaben nach der Migration.

Nächste Schritte