Logging, Tracing und Audit

Snowflake-Management, Governance & Zusammenarbeit

Emily Melhuish

Technical Curriculum Developer, Snowflake

Das Audit-Problem

  • Wer griff in den letzten 90 Tagen auf Credit Scores zu?
  • Welche Stored Procedures liefen früh morgens an einem bestimmten Tag?
  • Kam ein Login von außerhalb des Firmennetzes?
  • Der Nachweis muss vor der Frage existieren

Audit-Symbol

Snowflake-Management, Governance & Zusammenarbeit

Was sind Eventtabellen?

  • Erfasst Log- und Trace-Daten aus Snowflake-Objekten – aus Stored Procedures, Snowpark-Funktionen, UDFs
  • Wie eine normale Tabelle erstellt, dann mit ALTER_ACCOUNT aktiviert
  • Ab dann werden Log- und Trace-Meldungen automatisch geschrieben
  • Mit normalem SQL abfragen – keine externen Logging-Tools nötig

einfache Eventtabelle

Snowflake-Management, Governance & Zusammenarbeit

Log-Levels

 

Level Beschreibung
TRACE Jeder Funktions-Ein-/Austritt – am feinsten
DEBUG Diagnosedetails
INFO Normale Meilensteine – empfohlen für Produktion
WARN Unerwartet, stoppte Ausführung nicht
ERROR Fehler
FATAL Kritische Fehler, Ausführung gestoppt
Snowflake-Management, Governance & Zusammenarbeit

Tracing

  • Zeichnet den Ausführungspfad durch einen mehrstufigen Prozess auf
  • Zeigt Verknüpfungen der Schritte, nicht nur einzelne Meldungen
  • Hält Dauer und Reihenfolge jedes Schritts fest
  • Trace-Daten landen in derselben Eventtabelle wie Logs

Tracing

Snowflake-Management, Governance & Zusammenarbeit

LOGIN_HISTORY fürs Audit nutzen

SELECT user_name,
       event_timestamp,
       client_ip,
       authentication_method,
       error_code,
       error_message
FROM SNOWFLAKE.ACCOUNT_USAGE.LOGIN_HISTORY
WHERE event_timestamp >= DATEADD('day', -90, CURRENT_TIMESTAMP())
  AND client_ip NOT LIKE '203.0.113.%'
ORDER BY event_timestamp DESC;
Snowflake-Management, Governance & Zusammenarbeit

QUERY_HISTORY fürs Audit

SELECT user_name,
       role_name,
       warehouse_name,
       query_text,
       start_time,
       end_time
FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_HISTORY
WHERE start_time >= DATEADD('day', -90, CURRENT_TIMESTAMP())
  AND query_text ILIKE '%credit_scores%'
ORDER BY start_time DESC;
Snowflake-Management, Governance & Zusammenarbeit

Die komplette Audit-Spur

 

Quelle Was erfasst wird Beantwortete Auditfrage
Eventtabelle Logs und Traces aus Stored Procedures, Snowpark-Funktionen Was hat die Plattform getan?
LOGIN_HISTORY Jeder Login-Versuch: User, IP, Methode, Fehler Wer hat sich von wo verbunden, gab es Fehler?
QUERY_HISTORY Jeder SQL-Query: User, Rolle, Warehouse, Query-Text Welche Daten wurden von wem berührt?
Snowflake-Management, Governance & Zusammenarbeit

Lass uns üben!

Snowflake-Management, Governance & Zusammenarbeit

Preparing Video For Download...