Protokolování, trasování a audit

Správa, správa dat a spolupráce ve Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

Problém s auditem

  • Kdo přistupoval ke kreditním skóre za posledních 90 dní?
  • Které uložené procedury běžely v ranních hodinách konkrétního dne?
  • Pocházela některá přihlášení ze sítě mimo firemní síť?
  • Záznam musí existovat dříve, než je otázka položena

Ikona auditu

Správa, správa dat a spolupráce ve Snowflake

Co jsou tabulky událostí?

  • Zachycuje data logů a trasování emitovaná objekty Snowflake – z uložených procedur, funkcí Snowpark, UDF
  • Vytvoří se jako běžná tabulka a aktivuje se pomocí ALTER_ACCOUNT
  • Logy a trasovací zprávy se od té chvíle zapisují automaticky
  • Dotazování standardním SQL — bez externích nástrojů pro protokolování

Schéma tabulky událostí

Správa, správa dat a spolupráce ve Snowflake

Úrovně logování

 

Úroveň Popis
TRACE Každý vstup a výstup funkce — nejpodrobnější úroveň
DEBUG Diagnostické podrobnosti
INFO Milníky normálního provádění — doporučeno pro produkci
WARN Neočekávané stavy, které nepřerušily provádění
ERROR Selhání
FATAL Kritická selhání, která zastavila provádění
Správa, správa dat a spolupráce ve Snowflake

Trasování

  • Zachycuje cestu provádění víceúrovňovým procesem
  • Ukazuje, jak kroky navazují, nejen jednotlivé zprávy
  • Zaznamenává dobu trvání a pořadí každého kroku
  • Trasovací data se zapisují do stejné tabulky událostí jako logy

Diagram trasování

Správa, správa dat a spolupráce ve Snowflake

Použití LOGIN_HISTORY pro audit

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;
Správa, správa dat a spolupráce ve Snowflake

QUERY_HISTORY pro 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;
Správa, správa dat a spolupráce ve Snowflake

Kompletní auditní stopa

 

Zdroj Co zaznamenává Zodpovězená auditní otázka
Tabulka událostí Logy a trasování z uložených procedur, funkcí Snowpark Co platforma provedla?
LOGIN_HISTORY Každý pokus o přihlášení: uživatel, IP, metoda, chyby Kdo se připojil, odkud a zda něco selhalo?
QUERY_HISTORY Každý SQL příkaz: uživatel, role, warehouse, text dotazu Jaká data byla zpřístupněna a kým?
Správa, správa dat a spolupráce ve Snowflake

Pojďme procvičovat!

Správa, správa dat a spolupráce ve Snowflake

Preparing Video For Download...