„Snowflake-Protokolle“ bedeutet zwei Dinge, und der Export funktioniert bei beiden gleich. Es kann sich um Sicherheitsdaten handeln, die Ihr Team in Snowflake-Tabellen speichert. Oder es kann Snowflakes eigene Prüfspur sein, die SNOWFLAKE.ACCOUNT_USAGE-Ansichten wie LOGIN_HISTORY und QUERY_HISTORY. Für kleinere Abrufe führen Sie die Abfrage in SnowSQL mit JSON-Ausgabe aus. Für alles Größere, entladen Sie mit COPY INTO eine Bühne unter Verwendung von FILE_FORMAT = (TYPE = JSON), und laden Sie die Dateien mit GET herunter.
Snowflakes eigene Protokolle erregten 2024 viel Aufmerksamkeit, als Angreifer gestohlene Anmeldeinformationen nutzten, um sich in Kundenkonten anzumelden, die keine MFA durchsetzten. Login- und Abfragehistorien sind mittlerweile standardmäßige Anforderungen in einer Untersuchung. Prime Core verfügt über mehr als 24.000 einzigartige Erkennungsregeln, die 676 MITRE ATT&CK-Techniken zugeordnet sind. Unten steht, wie Sie die Daten extrahieren, bereinigen und kostenlos in LogTotal untersuchen können.
Bevor Sie beginnen
Zugang zu ACCOUNT_USAGE. Standardmäßig kann nur ACCOUNTADMIN diese Ansichten lesen. Andere Rollen benötigen das IMPORTED PRIVILEGES-Privileg in der SNOWFLAKE-Datenbank oder eine ihrer Datenbankrollen.
Latenz und Aufbewahrung. ACCOUNT_USAGE-Ansichten halten ein Jahr Geschichte, aber haben eine Verzögerung von bis zu einigen Stunden. Für die letzten sieben Tage ohne Verzögerung ist die INFORMATION_SCHEMA.LOGIN_HISTORY Tabellenfunktion eine Alternative.
Ein Warehouse. Abfragen und Entladen erfordern ein laufendes Warehouse und verbrauchen Credits. Filtern Sie nach Zeit.
Option 1: SnowSQL mit JSON-Ausgabe (kleine Abrufe)
snowsql -q "SELECT * VON SNOWFLAKE.ACCOUNT_USAGE.LOGIN_HISTORY
WO EVENT_TIMESTAMP >= '2026-10-19' UND EVENT_TIMESTAMP < '2026-10-20'"
-o output_format=json -o friendly=false -o timing=false > sf_logins_1019.json
jq -c '.[]' sf_logins_1019.json > sf_logins_1019.jsonl
Option 2: In eine Stage entladen (größere Exporte)
COPY INTO @~/exports/login_history_1019/
FROM (
SELECT OBJECT_CONSTRUCT(*)
VON SNOWFLAKE.ACCOUNT_USAGE.LOGIN_HISTORY
WO EVENT_TIMESTAMP >= '2026-10-19' UND EVENT_TIMESTAMP < '2026-10-20'
)
FILE_FORMAT = (TYPE = JSON COMPRESSION = NONE)
OVERWRITE = TRUE;
JSON-Entladungen benötigen eine einzelne Spalte, weshalb die Abfrage jede Zeile in OBJECT_CONSTRUCT(*) einwickelt. Diese Funktion lässt NULL-Felder aus. Laden Sie dann von Ihrer Benutzerstufe (@~) herunter:
GET @~/exports/login_history_1019/ file:///tmp/sf_export/;
und kombinieren Sie die Dateien mit cat /tmp/sf_export/* > sf_logins_1019.jsonl. Dasselbe Muster funktioniert für Ihre eigenen Sicherheitstabellen. Ersetzen Sie den Tabellennamen und dessen Zeitstempelspalte.
Wonach in der Login-Historie zu suchen ist
Suchen Sie nach fehlgeschlagenen Anmeldungen (IS_SUCCESS = ‚NO‘) in Schüben und Passwortanmeldungen ohne zweiten Faktor (SECOND_AUTHENTICATION_FACTOR leer). Beachten Sie Anmeldungen von Client-IP-Adressen und Client-Typen, die Sie nicht erkennen. Verfolgen Sie diese Sitzungen dann in QUERY_HISTORY, um zu sehen, was gelesen wurde.
Hochladen, bereinigen und in LogTotal überprüfen
- Hochladen. Öffnen logtotal.com und legen Sie die .jsonl Datei ab.
- Bereinigen.
- Überprüfen.
Wenn es schief geht
| Symptom | Wahrscheinlich Ursache | Fix |
|---|---|---|
| Objekt existiert nicht oder nicht autorisiert auf ACCOUNT_USAGE | Rolle hat keinen Zugang zur SNOWFLAKE-Datenbank | Fordern Sie IMPORTED PRIVILEGES oder eine Datenbankrolle an |
| Heute fehlen Anmeldungen | ACCOUNT_USAGE Latenz | Verwenden Sie INFORMATION_SCHEMA.LOGIN_HISTORY für aktuelle Ereignisse |
| COPY INTO Fehler bezüglich Spalten | JSON-Entladung benötigt eine Spalte | Zeilen in OBJECT_CONSTRUCT(*) einwickeln |
| Felder im JSON fehlen | OBJECT_CONSTRUCT lässt NULL-Werte aus | Erwartet; abwesend bedeutet NULL |
| GET fehlgeschlagen | Nicht von SnowSQL oder der Snowflake-CLI ausgeführt | GET wird von einem Client ausgeführt, nicht über die Weboberfläche |
FAQ
Kann ich das in der Weboberfläche machen?
Abfragen, ja. Downloads von der Weboberfläche sind nicht JSON. Der oben beschriebene Client-Weg gibt Ihnen JSON-Zeilen.
Was ist mit Snowflake-Ereignistabellen?
Ereignistabellen enthalten Protokolle und Spuren Ihrer eigenen Funktionen und Apps. Exportieren Sie sie auf dieselbe Weise wie jede andere Tabelle.