Google Cloud -VPC-Flusslogs erfassen

Parserversion: 6.0

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie Google Cloud VPC-Flusslogs mit Google Cloud Storage in Google Security Operations aufnehmen.

In VPC-Flusslogs wird eine Stichprobe von Netzwerkflüssen aufgezeichnet, die von VM-Instanzen gesendet und empfangen wurden, einschließlich Instanzen, die als Google Kubernetes Engine-Knoten verwendet werden. Diese Logs können für Netzwerkmonitoring, Forensik, Echtzeit-Sicherheitsanalysen und Kostenoptimierung verwendet werden. Flusslogs werden nach Verbindung in konfigurierbaren Intervallen aggregiert und nahezu in Echtzeit über Cloud Logging exportiert. Eine Logging-Senke leitet die VPC-Flusslogs an einen Cloud Storage-Bucket weiter, aus dem Google SecOps sie aufnimmt.

Hinweis

Folgende Voraussetzungen müssen erfüllt sein:

  • Eine Google SecOps-Instanz
  • Ein Google Cloud -Projekt mit den folgenden aktivierten APIs:
    • Cloud Storage API
    • Cloud Logging API
    • Compute Engine API
  • Berechtigungen für:
    • VPC-Flusslogs in Subnetzen aktivieren
    • Cloud Storage-Buckets erstellen und verwalten,
    • IAM-Richtlinien für Cloud Storage-Buckets verwalten
    • Cloud Logging API-Senken erstellen und verwalten
  • Mindestens ein VPC-Subnetz, in dem Sie VPC-Flusslogs aktivieren möchten

VPC-Flusslogs in Subnetzen aktivieren

Bevor Sie die Aufnahmepipeline konfigurieren, müssen Sie VPC-Flusslogs für die Zielsubnetze aktivieren. Google Cloud unterstützt zwei APIs zum Verwalten von VPC-Flusslogs: die Network Management API (empfohlen) und die Compute Engine API.

Google Cloud Console (Network Management API) verwenden

  1. Rufen Sie in der Google Cloud Console VPC-Netzwerk > VPC-Netzwerke auf.
  2. Klicken Sie auf den Tab Subnetze im aktuellen Projekt.
  3. Wählen Sie das Subnetz aus, für das Sie Flusslogs aktivieren möchten.
  4. Klicken Sie auf Flusslogs verwalten.
  5. Klicken Sie auf Neue Konfiguration hinzufügen.
  6. Geben Sie einen Namen für die Konfiguration ein.
  7. Konfigurieren Sie die folgenden optionalen Einstellungen:
    • Aggregationsintervall: Wählen Sie das Aggregationsintervall aus (Standard: 5 Sekunden). Kürzere Intervalle liefern detailliertere Daten, erhöhen aber das Logvolumen.
    • Metadaten einschließen: Wählen Sie Alle Metadaten einschließen aus, um Details zur VM-Instanz und zur VPC einzuschließen.
    • Sekundäre Abtastrate: Legen Sie die Abtastrate fest (Standardwert: 100 % für die Network Management API). Höhere Raten erfassen mehr Abläufe, erhöhen aber das Logvolumen.
    • Filterausdruck: Optionaler CEL-Filterausdruck,um bestimmte Abläufe ein- oder auszuschließen (maximal 2.048 Zeichen).
  8. Klicken Sie auf Speichern.

gcloud-Befehlszeilentool (Network Management API) verwenden

  • Verwenden Sie die folgende Syntax:

    gcloud network-management vpc-flow-logs-configs create <CONFIG_NAME> \
            --location=global \
            --subnet=projects/<PROJECT_ID>/regions/<REGION>/subnetworks/<SUBNET_NAME> \
            --aggregation-interval=INTERVAL_5_SEC \
            --metadata=INCLUDE_ALL_METADATA \
            --flow-sampling=1.0
    

Ersetzen Sie:

  • <CONFIG_NAME>: Ein aussagekräftiger Konfigurationsname (z. B. vpc-flow-logs-config)
  • <PROJECT_ID>: Ihre Google Cloud -Projekt-ID
  • <REGION>: Die Subnetzregion (z. B. us-central1)
  • <SUBNET_NAME>: Name Ihres Subnetzes

gcloud-Befehlszeilentool (Compute Engine API) verwenden

  • Verwenden Sie die folgende Syntax:

    gcloud compute networks subnets update <SUBNET_NAME> \
            --region=<REGION> \
            --enable-flow-logs \
            --logging-aggregation-interval=interval-5-sec \
            --logging-metadata=include-all \
            --logging-flow-sampling=0.5 \
            --project=<PROJECT_ID>
    

Ersetzen Sie:

  • <SUBNET_NAME>: Name Ihres Subnetzes
  • <REGION>: Die Subnetzregion (z. B. us-central1)
  • <PROJECT_ID>: Ihre Google Cloud -Projekt-ID

Google Cloud Storage-Bucket erstellen

  1. Rufen Sie die Google Cloud Console auf.
  2. Wählen Sie Ihr Projekt aus.
  3. Rufen Sie im Navigationsmenü Cloud Storage > Buckets auf.
  4. Klicken Sie auf Bucket erstellen.
  5. Geben Sie die folgenden Konfigurationsdetails an:

    Einstellung Wert
    Bucket benennen Geben Sie einen global eindeutigen Namen ein (z. B. vpc-flow-logs-bucket).
    Standorttyp Wählen Sie die Option, die am besten zu Ihren Anforderungen passt (Region, Dual-Region, Multi-Region).
    Standort Wählen Sie den Standort aus (z. B. us-central1).
    Speicherklasse Standard (empfohlen für Logs, auf die häufig zugegriffen wird)
    Zugriffssteuerung Einheitlich (empfohlen)
    Schutztools Optional: Objektversionsverwaltung oder Aufbewahrungsrichtlinie aktivieren
  6. Klicken Sie auf Erstellen.

Logging-Senke erstellen, um VPC-Flusslogs nach GCS zu exportieren

Eine Logging-Senke leitet VPC-Flusslogs von Logging an den Cloud Storage-Bucket weiter. Google SecOps nimmt dann die exportierten Objekte aus dem Bucket auf.

Logsenke erstellen

  1. Wechseln Sie in der Google Cloud Console zu Logging > Log Router.
  2. Klicken Sie auf Senke erstellen.
  3. Geben Sie die folgenden Konfigurationsdetails an:
    • Name der Senke: Geben Sie einen aussagekräftigen Namen ein (z. B. vpc-flow-to-gcs).
    • Beschreibung der Senke: Geben Sie Route VPC Flow Logs to Cloud Storage for Google SecOps ingestion ein.
  4. Klicken Sie auf Weiter.
  5. Gehen Sie im Bereich Senkendienst auswählen so vor:
    • Senkendienst: Wählen Sie Cloud Storage-Bucket aus.
    • Cloud Storage-Bucket auswählen: Wählen Sie den Bucket vpc-flow-logs-bucket aus.
  6. Klicken Sie auf Weiter.
  7. Geben Sie im Abschnitt Logs auswählen, die in der Senke enthalten sind den folgenden Filter ein, um VPC-Flusslogs zu erfassen:

    resource.type="gce_subnetwork" AND log_id("compute.googleapis.com/vpc_flows")
    
    resource.type="gce_subnetwork" AND log_id("compute.googleapis.com/vpc_flows") AND resource.labels.subnetwork_name="<SUBNET_NAME>"
    
    • Ersetzen Sie <SUBNET_NAME> durch den Namen des Zielsubnetzes.
  8. Klicken Sie auf Weiter.

  9. Überprüfen Sie die Konfiguration und klicken Sie auf Senke erstellen.

Dem Senkenschreiber die Schreibberechtigung für den Bucket gewähren

Nachdem die Senke erstellt wurde, weist Logging ihr ein Dienstkonto für den Schreibzugriff (die Schreibidentität) zu. Erteilen Sie dieser Identität die Berechtigung, Objekte in den Bucket zu schreiben.

  1. Rufen Sie Logging > Logrouter auf.
  2. Suchen Sie die Senke vpc-flow-to-gcs, klicken Sie auf das Dreipunkt-Menü und wählen Sie Senkendetails ansehen aus.
  3. Kopieren Sie den Wert für Identität des Autors (im Format serviceAccount:p<PROJECT_NUMBER>-<ID>@gcp-sa-logging.iam.gserviceaccount.com).
  4. Rufen Sie Cloud Storage > Buckets auf.
  5. Klicken Sie auf den Bucket vpc-flow-logs-bucket.
  6. Wechseln Sie zum Tab Berechtigungen.
  7. Klicken Sie auf Zugriff erlauben.
  8. Geben Sie die folgenden Konfigurationsdetails an:
    • Hauptkonten hinzufügen: Fügen Sie die Identität des Autors der Senke ein (ohne das Präfix serviceAccount:).
    • Rollen zuweisen: Wählen Sie Storage-Objekt-Ersteller (roles/storage.objectCreator) aus.
  9. Klicken Sie auf Speichern.

Prüfen, ob Logs exportiert werden

  1. Rufen Sie Cloud Storage > Buckets auf.
  2. Klicken Sie auf den Bucket vpc-flow-logs-bucket.
  3. Warten Sie einige Minuten, bis die Senke die ersten Objekte geschrieben hat.
  4. Prüfen Sie, ob ein Ordner mit dem Namen compute.googleapis.com/vpc_flows/ (oder ein Pfad mit Datum) erstellt wurde und exportierte Protokolldateien enthält.

Feed in Google SecOps konfigurieren, um VPC-Flusslogs aufzunehmen

  1. Rufen Sie die Einstellungen > Datenverwaltung > Feeds auf. Wenn Sie eine reine SIEM-Plattform verwenden, rufen Sie die Einstellungen > Feeds auf.
  2. Klicken Sie auf Neuen Feed hinzufügen.
  3. Klicken Sie auf Einzelnen Feed konfigurieren.
  4. Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B. GCP VPC Flow Logs.
  5. Wählen Sie Google Cloud Storage V2 als Quelltyp aus.
  6. Wählen Sie GCP VPC Flow als Logtyp aus.
  7. Klicken Sie auf Dienstkonto abrufen. Eine eindeutige E-Mail-Adresse für das Dienstkonto wird angezeigt, z. B.:

    chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com
    
  8. Kopieren Sie diese E-Mail-Adresse. Sie verwenden es in der nächsten Aufgabe.

  9. Klicken Sie auf Weiter.

  10. Geben Sie Werte für die folgenden Eingabeparameter an:

    • Storage-Bucket-URI: Geben Sie den GCS-Bucket-URI mit dem Präfixpfad ein:

      gs://vpc-flow-logs-bucket/compute.googleapis.com/vpc_flows/
      
      • Ersetzen Sie:
        • vpc-flow-logs-bucket: Der Name Ihres GCS-Buckets.
        • compute.googleapis.com/vpc_flows: Optionaler Präfix-/Ordnerpfad, in den die Senke Logs schreibt (leer lassen für Stammverzeichnis).
    • Option zum Löschen der Quelle: Wählen Sie die gewünschte Löschoption aus:

      • Nie: Nach Übertragungen werden keine Dateien gelöscht (empfohlen für Tests).
      • Übertragene Dateien löschen: Dateien werden nach erfolgreicher Übertragung gelöscht.
      • Übertragene Dateien und leere Verzeichnisse löschen: Dateien und leere Verzeichnisse werden nach erfolgreicher Übertragung gelöscht.
    • Maximales Dateialter (Tage): Dateien einschließen, die in den letzten Tagen geändert wurden. Der Standardwert ist 180 Tage.

    • Asset-Namespace: Der Asset-Namespace.

    • Aufnahmelabels: Das Label, das auf die Ereignisse aus diesem Feed angewendet werden soll.

  11. Klicken Sie auf Weiter.

  12. Prüfen Sie die neue Feedkonfiguration auf dem Bildschirm Abschließen und klicken Sie dann auf Senden.

Dem Google SecOps-Dienstkonto IAM-Berechtigungen gewähren

Das Google SecOps-Dienstkonto benötigt die Rolle Storage-Objekt-Betrachter für Ihren Cloud Storage-Bucket.

  1. Rufen Sie Cloud Storage > Buckets auf.
  2. Klicken Sie auf den Bucket vpc-flow-logs-bucket.
  3. Wechseln Sie zum Tab Berechtigungen.
  4. Klicken Sie auf Zugriff erlauben.
  5. Geben Sie die folgenden Konfigurationsdetails an:
    • Hauptkonten hinzufügen: Fügen Sie die E‑Mail-Adresse des Google SecOps-Dienstkontos ein.
    • Rollen zuweisen: Wählen Sie Storage-Objekt-Betrachter (roles/storage.objectViewer) aus.
  6. Klicken Sie auf Speichern.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
_field additional.fields Zusammengeführt
textpayload_label additional.fields Zusammengeführt
tunnel_id_label additional.fields Zusammengeführt
description metadata.description Direkt zugeordnet
timestamp metadata.event_timestamp Geparst als ISO8601
ts metadata.event_timestamp Geparst als ISO8601
event_type metadata.event_type Direkt zugeordnet
product_event_type metadata.product_event_type Direkt zugeordnet
product_log_id metadata.product_log_id Direkt zugeordnet
product_name metadata.product_name Direkt zugeordnet
product_version metadata.product_version Direkt zugeordnet
vendor_name metadata.vendor_name Direkt zugeordnet
ip_protocol_out network.ip_protocol Direkt zugeordnet
jsonPayload.bytes_sent network.sent_bytes Umbenannt/zugeordnet
jsonPayload.packets_sent network.sent_packets Umbenannt/zugeordnet
principal.ip principal.asset.ip Zusammengeführt
target.ip principal.asset.ip Zusammengeführt
jsonPayload.src_instance.vm_name principal.hostname Direkt zugeordnet
target.hostname principal.hostname Umbenannt/zugeordnet
jsonPayload.connection.src_ip principal.ip Direkt zugeordnet
target.ip principal.ip Zusammengeführt
jsonPayload.src_location.city principal.location.city Direkt zugeordnet
target.location.city principal.location.city Umbenannt/zugeordnet
jsonPayload.src_location.country principal.location.country_or_region Direkt zugeordnet
target.location.country_or_region principal.location.country_or_region Umbenannt/zugeordnet
jsonPayload.src_instance.region principal.location.name Direkt zugeordnet
resource.labels.location principal.location.name Direkt zugeordnet
target.location.name principal.location.name Umbenannt/zugeordnet
jsonPayload.src_location.region principal.location.state Direkt zugeordnet
target.location.state principal.location.state Umbenannt/zugeordnet
jsonPayload.src_vpc.project_id principal.namespace Direkt zugeordnet
jsonPayload.src_vpc.vpc_name principal.namespace Direkt zugeordnet
target.namespace principal.namespace Umbenannt/zugeordnet
jsonPayload.connection.src_port principal.port Direkt zugeordnet
_field principal.resource.attribute.labels Zusammengeführt
key principal.resource.attribute.labels Zugeordnet: jsonPayload_src_google_service_type → _field
src_gke_cluster_location principal.resource.attribute.labels Zusammengeführt
src_gke_cluster_name principal.resource.attribute.labels Zusammengeführt
src_gke_namespace principal.resource.attribute.labels Zusammengeführt
src_gke_pod_name principal.resource.attribute.labels Zusammengeführt
logName security_result.category_details Zusammengeführt
severity security_result.severity Zugeordnet: DEBUG → LOW
principal.ip target.asset.ip Zusammengeführt
target.ip target.asset.ip Zusammengeführt
jsonPayload.dest_instance.vm_name target.hostname Direkt zugeordnet
principal.hostname target.hostname Umbenannt/zugeordnet
jsonPayload.connection.dest_ip target.ip Direkt zugeordnet
principal.ip target.ip Zusammengeführt
jsonPayload.dest_location.city target.location.city Direkt zugeordnet
principal.location.city target.location.city Umbenannt/zugeordnet
jsonPayload.dest_location.country target.location.country_or_region Direkt zugeordnet
principal.location.country_or_region target.location.country_or_region Umbenannt/zugeordnet
jsonPayload.dest_instance.region target.location.name Direkt zugeordnet
principal.location.name target.location.name Umbenannt/zugeordnet
jsonPayload.dest_location.region target.location.state Direkt zugeordnet
principal.location.state target.location.state Umbenannt/zugeordnet
jsonPayload.dest_vpc.project_id target.namespace Direkt zugeordnet
jsonPayload.dest_vpc.vpc_name target.namespace Direkt zugeordnet
principal.namespace target.namespace Umbenannt/zugeordnet
jsonPayload.connection.dest_port target.port Umbenannt/zugeordnet
dest_gke_cluster_location target.resource.attribute.labels Zusammengeführt
dest_gke_cluster_name target.resource.attribute.labels Zusammengeführt
dest_gke_namespace target.resource.attribute.labels Zusammengeführt
dest_gke_pod_name target.resource.attribute.labels Zusammengeführt
service_name_label target.resource.attribute.labels Zusammengeführt
service_namespace_label target.resource.attribute.labels Zusammengeführt
subnetwork_id_field target.user.attribute.labels Zusammengeführt
– network.direction Konstante: OUTBOUND
– network.ip_protocol Konstante: network.ip_protocol
– network.sent_bytes Konstante: network.sent_bytes
– principal.hostname Konstante: target.hostname
– principal.location.city Konstante: target.location.city
– principal.location.country_or_region Konstante: target.location.country_or_region
– principal.location.name Konstante: target.location.name
– principal.location.state Konstante: target.location.state
– principal.namespace Konstante: target.namespace
– principal.port Konstante: principal.port
– security_result.severity Konstante: LOW
– target.hostname Konstante: principal.hostname
– target.location.city Konstante: principal.location.city
– target.location.country_or_region Konstante: principal.location.country_or_re...
– target.location.name Konstante: principal.location.name
– target.location.state Konstante: principal.location.state
– target.namespace Konstante: principal.namespace
– target.port Konstante: -99
resource.labels.subnetwork_id target.user.attribute.labels Aus Änderungsprotokoll zugeordnet

Änderungsprotokoll

Änderungsprotokoll für diesen Parser ansehen

Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten