Jurnalizare, trasare și audit

Administrare, Guvernanță și Colaborare în Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

Problema auditului

  • Cine a accesat scorurile de credit în ultimele 90 de zile?
  • Ce proceduri stocate au rulat în primele ore ale unei dimineți anume?
  • Au existat autentificări din afara rețelei corporative?
  • Înregistrarea trebuie să existe înainte ca întrebarea să fie pusă

Pictogramă audit

Administrare, Guvernanță și Colaborare în Snowflake

Ce sunt tabelele de evenimente?

  • Captează date de jurnal și trasare emise de obiecte Snowflake: proceduri stocate, funcții Snowpark, UDF-uri
  • Se creează ca un tabel obișnuit, apoi se activează cu ALTER_ACCOUNT
  • Mesajele de jurnal și trasare se înregistrează automat de la acel moment
  • Se interogă cu SQL standard — nu sunt necesare instrumente externe

Tabelă de evenimente simplificată

Administrare, Guvernanță și Colaborare în Snowflake

Niveluri de jurnalizare

 

Nivel Descriere
TRACE Fiecare intrare și ieșire din funcție — cel mai detaliat
DEBUG Detalii de diagnosticare
INFO Etape normale de execuție — recomandat în producție
WARN Condiții neașteptate care nu au oprit execuția
ERROR Eșecuri
FATAL Eșecuri critice care au oprit execuția
Administrare, Guvernanță și Colaborare în Snowflake

Trasarea

  • Captează calea de execuție printr-un proces cu mai mulți pași
  • Arată cum se conectează pașii, nu doar mesajele individuale
  • Înregistrează durata și ordinea fiecărui pas
  • Datele de trasare se scriu în aceeași tabelă de evenimente ca datele de jurnal

Diagrama de trasare

Administrare, Guvernanță și Colaborare în Snowflake

Utilizarea LOGIN_HISTORY pentru 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;
Administrare, Guvernanță și Colaborare în Snowflake

QUERY_HISTORY pentru 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;
Administrare, Guvernanță și Colaborare în Snowflake

Traseul complet de audit

 

Sursă Ce înregistrează Întrebarea de audit la care răspunde
Tabelă de evenimente Jurnale și date de trasare din proceduri stocate, funcții Snowpark Ce a făcut platforma?
LOGIN_HISTORY Fiecare tentativă de autentificare: utilizator, IP, metodă, erori Cine s-a conectat, de unde, a apărut vreo eroare?
QUERY_HISTORY Fiecare instrucțiune SQL: utilizator, rol, warehouse, text interogare Ce date au fost accesate și de cine?
Administrare, Guvernanță și Colaborare în Snowflake

Să exersăm!

Administrare, Guvernanță și Colaborare în Snowflake

Preparing Video For Download...