Fivetran-Logs erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie Fivetran so konfigurieren, dass Logs mithilfe von Webhooks an Google Security Operations gesendet werden.

Fivetran ist eine Datenintegrationsplattform, mit der Datenpipelines aus verschiedenen Quellen in Data Warehouses automatisiert werden. Fivetran generiert Betriebsereignisse, darunter Connector-Synchronisierungsereignisse, Transformationsereignisse und Änderungen des Verbindungsstatus. Diese Ereignisse können über ausgehende Webhooks an externe Endpunkte gesendet werden, um sie zu überwachen, Warnungen zu generieren und Sicherheitsanalysen durchzuführen.

Hinweise

Folgende Voraussetzungen müssen erfüllt sein:

  • Eine Google SecOps-Instanz
  • Ein Fivetran-Konto mit Administrator- oder Kontoberechtigungen
  • Zugriff auf die Google Cloud Console (zum Erstellen von API-Schlüsseln)
  • Fivetran-Konto mit Business Critical- oder Enterprise-Abo (für Webhook-Funktion)

Webhook-Feed in Google SecOps erstellen

Feed erstellen

  1. Rufen Sie die SIEM-Einstellungen > Feeds auf.
  2. Klicken Sie auf Neuen Feed hinzufügen.
  3. Klicken Sie auf der nächsten Seite auf Einen einzelnen Feed konfigurieren.
  4. Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B. Fivetran Events.
  5. Wählen Sie Webhook als Quelltyp aus.
  6. Wählen Sie Fivetran als Logtyp aus.
  7. Klicken Sie auf Weiter.
  8. Geben Sie Werte für die folgenden Eingabeparameter an:
    • Trennzeichen für Aufteilung (optional): Lassen Sie das Feld leer. Jede Webhook-Anfrage enthält ein einzelnes JSON-Ereignis.
    • Asset-Namespace: Der Asset-Namespace
    • Labels für Datenaufnahme: Das Label, das auf die Ereignisse aus diesem Feed angewendet werden soll
  9. Klicken Sie auf Weiter.
  10. Prüfen Sie die neue Feedkonfiguration auf dem Bildschirm Abschließen und klicken Sie dann auf Senden.

Secret-Schlüssel generieren und speichern

Nachdem Sie den Feed erstellt haben, müssen Sie einen geheimen Schlüssel für die Authentifizierung generieren:

  1. Klicken Sie auf der Seite mit den Feeddetails auf Geheimen Schlüssel generieren.
  2. In einem Dialogfeld wird der geheime Schlüssel angezeigt.
  3. Kopieren und speichern Sie den geheimen Schlüssel sicher.

Feed-Endpunkt-URL abrufen

  1. Rufen Sie den Tab Details des Feeds auf.
  2. Kopieren Sie im Abschnitt Endpunktinformationen die Feed-Endpunkt-URL.
  3. Das URL-Format lautet:

    https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate
    

    oder

    https://<REGION>-malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate
    
  4. Speichern Sie diese URL für die nächsten Schritte.

  5. Klicken Sie auf Fertig.

Google Cloud API-Schlüssel erstellen

Für Google SecOps ist ein API-Schlüssel für die Authentifizierung erforderlich. Erstellen Sie in der Google Cloud Console einen eingeschränkten API-Schlüssel.

API-Schlüssel erstellen

  1. Rufen Sie die Seite „Anmeldedaten“ in der Google Cloud Console auf.
  2. Wählen Sie Ihr Projekt aus (das Projekt, das mit Ihrer Google SecOps-Instanz verknüpft ist).
  3. Klicken Sie auf Anmeldedaten erstellen > API-Schlüssel. Ein API-Schlüssel wird erstellt und in einem Dialogfeld angezeigt.
  4. Klicken Sie auf API-Schlüssel bearbeiten, um den Schlüssel einzuschränken.

API-Schlüssel einschränken

  1. Auf der Seite mit den API-Schlüssel-Einstellungen:
    • Name: Geben Sie einen aussagekräftigen Namen ein, z. B. Google SecOps Webhook API Key.
  2. Gehen Sie unter API-Einschränkungen so vor:
    1. Wählen Sie Schlüssel einschränken aus.
    2. Suchen Sie in der Liste APIs auswählen nach Google SecOps API (oder Chronicle API) und wählen Sie die API aus.
  3. Klicken Sie auf Speichern.
  4. Kopieren Sie den API-Schlüsselwert aus dem Feld API-Schlüssel oben auf der Seite.
  5. Speichern Sie den API-Schlüssel sicher.

Fivetran-Webhook konfigurieren

Webhook-URL erstellen

  • Kombinieren Sie die Google SecOps-Endpunkt-URL und den API-Schlüssel:

    <ENDPOINT_URL>?key=<API_KEY>
    

    Beispiel:

    https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate?key=AIzaSyD...
    

Webhook mit der Fivetran REST API erstellen

Fivetran-Webhooks werden über die REST API konfiguriert. Sie können Webhooks auf Kontoebene (alle Gruppen) oder auf Gruppenebene (bestimmte Zielgruppe) erstellen.

Fivetran API-Anmeldedaten abrufen

  1. Melden Sie sich in Ihrem Fivetran-Konto an.
  2. Klicken Sie rechts oben auf Ihren Nutzernamen.
  3. Rufen Sie die Kontoeinstellungen > API-Konfiguration auf.
  4. Wenn Sie keinen API-Schlüssel haben, gehen Sie so vor:
    1. Klicken Sie auf API-Schlüssel generieren.
    2. Kopieren und speichern Sie den API-Schlüssel und das API-Secret sicher.

Webhook auf Kontoebene erstellen

Mit dieser Methode können Sie Ereignisse von allen Connectors in allen Gruppen in Ihrem Konto empfangen.

  1. Öffnen Sie ein Terminal oder einen API-Client.
  2. Erstellen Sie den Webhook mit dem folgenden curl-Befehl:

    curl -X POST https://api.fivetran.com/v1/webhooks/account \
        -u "API_KEY:API_SECRET" \
        -H "Content-Type: application/json" \
        -H "Accept: application/json" \
        -d '{
            "url": "https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate?key=YOUR_SECOPS_API_KEY",
            "events": [
                "sync_start",
                "sync_end",
                "transformation_start",
                "transformation_succeeded",
                "transformation_failed",
                "connection_successful",
                "connection_failure",
                "create_connector",
                "pause_connector",
                "resume_connector",
                "edit_connector",
                "delete_connector",
                "force_update_connector",
                "resync_connector",
                "resync_table"
            ],
            "active": true,
            "secret": "YOUR_SECOPS_SECRET_KEY"
        }'
    
  3. Ersetzen Sie die folgenden Werte:

    • API_KEY: Ihr Fivetran-API-Schlüssel
    • API_SECRET: Ihr Fivetran-API-Secret
    • YOUR_SECOPS_API_KEY: Der zuvor erstellte Google Cloud API-Schlüssel
    • YOUR_SECOPS_SECRET_KEY: Der geheime Google SecOps-Schlüssel aus der Feederstellung
  4. Die Antwort enthält die Webhook-ID:

    {
        "code": "Success",
        "message": "Operation performed.",
        "data": {
            "id": "webhook_abc123",
            "type": "account",
            "url": "https://malachiteingestion-pa.googleapis.com/...",
            "events": ["sync_start", "sync_end", ...],
            "active": true,
            "secret": "******",
            "created_at": "2025-01-15T10:30:00Z",
            "created_by": "user_id"
        }
    }
    
  5. Speichern Sie die Webhook-ID zur späteren Verwendung.

Webhook auf Gruppenebene erstellen (optional)

Mit dieser Methode können Sie Ereignisse von Connectors in einer bestimmten Zielgruppe empfangen.

  1. So rufen Sie Ihre Gruppen-ID ab:

    1. Melden Sie sich in Fivetran an.
    2. Rufen Sie die Zielgruppe auf, die Sie beobachten möchten.
    3. Die Gruppen-ID ist in der URL enthalten: https://fivetran.com/dashboard/groups/GROUP_ID
  2. Erstellen Sie den Webhook mit dem folgenden curl-Befehl:

    curl -X POST https://api.fivetran.com/v1/webhooks/group/GROUP_ID \
        -u "API_KEY:API_SECRET" \
        -H "Content-Type: application/json" \
        -H "Accept: application/json" \
        -d '{
            "url": "https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate?key=YOUR_SECOPS_API_KEY",
            "events": [
                "sync_start",
                "sync_end",
                "transformation_start",
                "transformation_succeeded",
                "transformation_failed",
                "connection_successful",
                "connection_failure"
            ],
            "active": true,
            "secret": "YOUR_SECOPS_SECRET_KEY"
        }'
    
  3. Ersetzen Sie GROUP_ID durch die ID Ihrer Zielgruppe.

Verfügbare Webhook-Ereignisse

Wählen Sie die Ereignisse aus, die Sie beobachten möchten:

Ereignis Beschreibung
sync_start Connector-Synchronisierung gestartet
sync_end Synchronisierung des Connectors abgeschlossen
transformation_start Transformation gestartet
transformation_succeeded Transformation abgeschlossen
transformation_failed Transformation fehlgeschlagen
connection_successful Verbindungstest erfolgreich
connection_failure Verbindungstest fehlgeschlagen
create_connector Neuer Connector erstellt
pause_connector Connector pausiert
resume_connector Connector wurde fortgesetzt
edit_connector Connector-Konfiguration bearbeitet
delete_connector Connector gelöscht
force_update_connector Connector-Update erzwungen
resync_connector Connector-Resynchronisierung ausgelöst
resync_table Tabellensynchronisierung ausgelöst

Webhook testen

  1. Webhook mit der Fivetran API testen:

    curl -X POST https://api.fivetran.com/v1/webhooks/WEBHOOK_ID/test \
        -u "API_KEY:API_SECRET" \
        -H "Accept: application/json"
    
  2. Ersetzen Sie WEBHOOK_ID durch die Webhook-ID aus der Antwort auf die Erstellung.

  3. Fivetran sendet ein Test-Event an Google SecOps.

  4. Ereignis in Google SecOps überprüfen:

    1. Rufen Sie die SIEM-Einstellungen > Feeds auf.
    2. Klicken Sie auf Ihren Fivetran-Feed.
    3. Rufen Sie den Tab Logs auf.
    4. Prüfen Sie, ob ein Testlauf empfangen wurde.

Format der Webhook-Nutzlast

  • Fivetran sendet Webhook-Ereignisse im folgenden JSON-Format:

    {
        "event": "sync_end",
        "created": "2025-01-15T10:30:00.386Z",
        "connector_type": "salesforce",
        "connector_id": "mystified_presiding",
        "connector_name": "Salesforce Production",
        "sync_id": "abc123-def456-ghi789",
        "destination_group_id": "deck_enjoy",
        "data": {
            "status": "SUCCESSFUL"
        }
    }
    

Webhook-Authentifizierung

Fivetran signiert Webhook-Nutzlasten mit HMAC SHA-256 und dem von Ihnen angegebenen Secret. Die Signatur wird im X-Fivetran-Signature-256-Header gesendet.

Google SecOps validiert die Signatur automatisch mit dem Secret-Schlüssel, der bei der Feed-Erstellung konfiguriert wurde.

Wiederholungsverhalten bei Webhooks

Fivetran wiederholt fehlgeschlagene Webhooks automatisch:

Wiederholen Zeit nach dem ersten Versuch
Erster Versuch 0 Minuten
1. Wiederholungsversuch 6 Minuten
2. Wiederholungsversuch 27 Minuten
3. Wiederholungsversuch 1 Stunde und 45 Minuten
4. Wiederholungsversuch 6 Stunden, 25 Minuten
5. Wiederholungsversuch 23 Stunden, 13 Minuten
  • Fivetran versucht es bis zu 24 Stunden lang noch einmal.
  • Webhooks haben ein Zeitlimit von 10 Sekunden.
  • Webhooks werden nach drei Tagen mit durchgehenden Fehlern automatisch deaktiviert.

Webhooks verwalten

Alle Webhooks auflisten

  • bash curl -X GET https://api.fivetran.com/v1/webhooks \ -u "API_KEY:API_SECRET" \ -H "Accept: application/json"

Webhook-Details abrufen

  • bash curl -X GET https://api.fivetran.com/v1/webhooks/WEBHOOK_ID \ -u "API_KEY:API_SECRET" \ -H "Accept: application/json"

Webhook aktualisieren

  • bash curl -X PATCH https://api.fivetran.com/v1/webhooks/WEBHOOK_ID \ -u "API_KEY:API_SECRET" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{ "active": true, "events": ["sync_start", "sync_end"] }'

Webhook löschen

  • bash curl -X DELETE https://api.fivetran.com/v1/webhooks/WEBHOOK_ID \ -u "API_KEY:API_SECRET" \ -H "Accept: application/json"

Referenz zu Authentifizierungsmethoden

Google SecOps-Webhook-Feeds unterstützen mehrere Authentifizierungsmethoden. Wählen Sie die Methode aus, die von Ihrem Anbieter unterstützt wird.

Fivetran unterstützt keine benutzerdefinierten HTTP-Headern für ausgehende Webhooks. Verwenden Sie Abfrageparameter, um Anmeldedaten zu übergeben.

  • URL-Format:

    <ENDPOINT_URL>?key=<API_KEY>
    

    Beispiel:

    https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate?key=AIzaSyD...
    

    Authentifizierung:

    • API-Schlüssel im URL-Suchparameter
    • Geheimer Schlüssel, der über die HMAC-Signatur im X-Fivetran-Signature-256-Header validiert wird

Methode 2: Benutzerdefinierte Header (wird von Fivetran nicht unterstützt)

Benutzerdefinierte HTTP-Header werden für ausgehende Fivetran-Webhooks nicht unterstützt. Verwenden Sie stattdessen Methode 1.

Webhook-Limits und Best Practices

Anfragelimits

Limit Wert
Maximale Anfragengröße 4 MB
Maximale Anzahl von Abfragen pro Sekunde 15.000
Zeitlimit für Anfragen 10 Sekunden (Fivetran) / 30 Sekunden (Google SecOps)
Wiederholungsverhalten Automatisch mit exponentiellem Backoff

Best Practices

  • Abonnieren Sie nur die Ereignisse, die Sie benötigen, um HTTP-Anfragen zu minimieren.
  • Überwachen Sie den Status der Webhook-Übermittlung im Fivetran-Dashboard.
  • Benachrichtigungen für die Deaktivierung von Webhooks einrichten
  • Webhooks auf Kontoebene für das zentralisierte Monitoring verwenden
  • Verwenden Sie Webhooks auf Gruppenebene für das Monitoring bestimmter Ziele.
  • Überprüfen und aktualisieren Sie Ereignisabos regelmäßig.

Fehlerbehebung

Webhook-Erstellung schlägt fehl

Fehler:HTTP 400 Bad Request beim Erstellen des Webhooks.

Ursache:Der Google SecOps-Endpunkt ist nicht erreichbar oder gibt einen Status zurück, der nicht mit „2xx“ beginnt.

Lösung:

  1. Prüfen Sie, ob die Google SecOps-Endpunkt-URL korrekt ist.
  2. Prüfen Sie, ob der API-Schlüssel gültig ist und Zugriff auf die Google SecOps API hat.
  3. Testen Sie den Endpunkt manuell:

    curl -X POST "https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate?key=YOUR_API_KEY" \
        -H "Content-Type: application/json" \
        -H "x-chronicle-auth: YOUR_SECRET_KEY" \
        -d '{"test": "event"}'
    
  4. Erstellen Sie den Webhook mit "active": false, um die erste Validierung zu überspringen, und aktivieren Sie ihn später.

Webhook ist deaktiviert

Ursache:Der Webhook ist seit mehr als drei Tagen immer wieder fehlgeschlagen.

Lösung:

  1. Prüfen Sie, ob der Google SecOps-Feed aktiv und fehlerfrei ist.
  2. Prüfen Sie die Google SecOps-Feedlogs auf Fehler.
  3. Prüfen Sie, ob API-Schlüssel und Secret-Schlüssel noch gültig sind.
  4. Aktivieren Sie den Webhook wieder:

    curl -X PATCH https://api.fivetran.com/v1/webhooks/WEBHOOK_ID \
        -u "API_KEY:API_SECRET" \
        -H "Content-Type: application/json" \
        -d '{"active": true}'
    

Ereignisse werden nicht in Google SecOps angezeigt

Ursache:Ereignisse werden gesendet, aber nicht aufgenommen.

Lösung:

  1. Rufen Sie in Google SecOps die SIEM-Einstellungen > Feeds auf.
  2. Klicken Sie auf Ihren Fivetran-Feed.
  3. Rufen Sie den Tab Logs auf.
  4. Auf Aufnahmefehler prüfen
  5. Prüfen Sie, ob der Protokolltyp auf Fivetran festgelegt ist.
  6. Prüfen Sie, ob der geheime Schlüssel mit dem im Webhook konfigurierten Schlüssel übereinstimmt.

HMAC-Signaturprüfung fehlgeschlagen

Ursache: Der geheime Schlüssel stimmt nicht überein.

Lösung:

  1. Prüfen Sie, ob der geheime Schlüssel im Google SecOps-Feed mit dem beim Erstellen des Webhooks verwendeten Schlüssel übereinstimmt.
  2. Generieren Sie den Google SecOps-Secret-Schlüssel bei Bedarf neu.
  3. Aktualisieren Sie den Fivetran-Webhook mit dem neuen Secret:

    curl -X PATCH https://api.fivetran.com/v1/webhooks/WEBHOOK_ID \
        -u "API_KEY:API_SECRET" \
        -H "Content-Type: application/json" \
        -d '{"secret": "NEW_SECOPS_SECRET_KEY"}'
    

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
jsonPayload.connector_id additional.connector_id Wert direkt kopiert
jsonPayload.connector_type additional.connector_type Wert direkt kopiert
jsonPayload.data.executionTime additional.executionTime In String umgewandelt
insertId additional.insertId Wert kopiert, wenn er nicht leer ist
labels.levelName additional.levelName Wert kopiert, wenn er nicht leer ist
labels.levelValue additional.levelValue Wert kopiert, wenn er nicht leer ist
jsonPayload.data.number additional.number In String umgewandelt
jsonPayload.data.query additional.query Wert direkt kopiert
resource.type additional.type Wert kopiert, wenn er nicht leer ist
metadata.event_type Auf „RESOURCE_READ“ festgelegt, wenn has_principal_user == „true“ und has_target == „true“. Andernfalls „USER_COMMUNICATION“, wenn has_principal_user == „true“. Andernfalls „STATUS_UPDATE“, wenn has_principal == „true“. Andernfalls „GENERIC_EVENT“.
jsonPayload.event metadata.product_event_type Wert direkt kopiert
jsonPayload.sync_id metadata.product_log_id Wert direkt kopiert
jsonPayload.connector_name principal.asset.hostname Wert direkt kopiert
jsonPayload.connector_name principal.hostname Wert direkt kopiert
resource.labels.email_id principal.user.email_addresses Wird zusammengeführt, wenn „^.+@.+$“ übereinstimmt.
resource.labels.project_id principal.user.product_object_id Wert kopiert, wenn er nicht leer ist
resource.labels.unique_id principal.user.userid Der Wert wird kopiert, wenn er nicht in ["", "null", " "] enthalten ist.
die Ausprägung security_result.severity Auf „INFORMATIONAL“ festlegen, wenn „INFO“ zutrifft
logName target.resource.name Wert kopiert, wenn er nicht leer ist
target.resource.type Auf „DATABASE“ festgelegt
metadata.product_name Auf „FIVETRAN“ festgelegt
metadata.vendor_name Auf „FIVETRAN“ festgelegt

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