Logging, Tracing, dan Audit

Manajemen, Tata Kelola, & Kolaborasi Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

Masalah Audit

  • Siapa yang mengakses credit scores dalam 90 hari terakhir?
  • Prosedur tersimpan mana yang berjalan dini hari pada pagi tertentu?
  • Adakah login dari luar jaringan perusahaan?
  • Catatan harus ada sebelum pertanyaannya diajukan

ikon audit.png

Manajemen, Tata Kelola, & Kolaborasi Snowflake

Apa itu Event Table?

  • Menangkap data log dan trace yang dipancarkan objek Snowflake — dari stored procedure, fungsi Snowpark, UDF
  • Dibuat seperti tabel biasa, lalu diaktifkan dengan ALTER_ACCOUNT
  • Pesan log dan trace otomatis ditulis setelah itu
  • Query dengan SQL standar — tanpa alat logging eksternal

event_table_simple.png

Manajemen, Tata Kelola, & Kolaborasi Snowflake

Level Log

 

Level Deskripsi
TRACE Tiap masuk/keluar fungsi — paling rinci
DEBUG Detail diagnostik
INFO Tonggak eksekusi normal — direkomendasikan untuk produksi
WARN Kondisi tak terduga yang tidak menghentikan eksekusi
ERROR Kegagalan
FATAL Kegagalan kritis yang menghentikan eksekusi
Manajemen, Tata Kelola, & Kolaborasi Snowflake

Tracing

  • Menangkap jalur eksekusi melalui proses multi-langkah
  • Menunjukkan keterkaitan langkah, bukan hanya pesan terpisah
  • Mencatat durasi dan urutan tiap langkah
  • Data trace ditulis ke event table yang sama dengan data log

tracing_v2.png

Manajemen, Tata Kelola, & Kolaborasi Snowflake

Menggunakan LOGIN_HISTORY untuk 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;
Manajemen, Tata Kelola, & Kolaborasi Snowflake

QUERY_HISTORY untuk 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;
Manajemen, Tata Kelola, & Kolaborasi Snowflake

Jejak Audit Lengkap

 

Sumber Apa yang ditangkap Pertanyaan audit yang dijawab
Event table Log dan trace dari stored procedure, fungsi Snowpark Apa yang dilakukan platform?
LOGIN_HISTORY Tiap upaya login: user, IP, metode, error Siapa terhubung, dari mana, ada kegagalan?
QUERY_HISTORY Tiap pernyataan SQL: user, role, warehouse, teks query Data apa yang diakses, oleh siapa?
Manajemen, Tata Kelola, & Kolaborasi Snowflake

Ayo berlatih!

Manajemen, Tata Kelola, & Kolaborasi Snowflake

Preparing Video For Download...