Journalisation, traçage et audit

Gestion, gouvernance et collaboration avec Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

Le problème d’audit

  • Qui a consulté les cotes de crédit dans les 90 derniers jours?
  • Quelles procédures stockées ont tourné aux petites heures d’un matin précis?
  • Des connexions provenaient-elles de l’extérieur du réseau d’entreprise?
  • L’enregistrement doit exister avant de poser la question

Icône d’audit

Gestion, gouvernance et collaboration avec Snowflake

Qu’est-ce qu’une Event Table?

  • Capture les journaux et traces émis par les objets Snowflake — procédures stockées, fonctions Snowpark, UDF
  • Créée comme une table normale, puis activée avec ALTER_ACCOUNT
  • Les messages de journaux et de traces s’écrivent automatiquement après activation
  • Interrogez avec du SQL standard — aucun outil externe requis

table_evenements_simple.png

Gestion, gouvernance et collaboration avec Snowflake

Niveaux de journal

 

Niveau Description
TRACE Entrée et sortie de chaque fonction — plus granulaire
DEBUG Détails de diagnostic
INFO Jalons d’exécution normaux — recommandé en production
WARN Anomalies sans arrêt d’exécution
ERROR Échecs
FATAL Échecs critiques arrêtant l’exécution
Gestion, gouvernance et collaboration avec Snowflake

Traçage

  • Capture le chemin d’exécution d’un processus multi-étapes
  • Montre le lien entre les étapes, pas seulement des messages isolés
  • Enregistre la durée et l’ordre de chaque étape
  • Les traces s’écrivent dans la même Event Table que les journaux

traçage_v2.png

Gestion, gouvernance et collaboration avec Snowflake

Utiliser LOGIN_HISTORY pour l’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;
Gestion, gouvernance et collaboration avec Snowflake

QUERY_HISTORY pour l’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;
Gestion, gouvernance et collaboration avec Snowflake

La piste d’audit complète

 

Source Ce qui est capturé Question d’audit couverte
Event table Journaux et traces des procédures stockées, fonctions Snowpark Qu’a fait la plateforme?
LOGIN_HISTORY Chaque tentative de connexion : utilisateur, IP, méthode, erreurs Qui s’est connecté, d’où, échecs?
QUERY_HISTORY Chaque requête SQL : utilisateur, rôle, entrepôt, texte Quelles données consultées, et par qui?
Gestion, gouvernance et collaboration avec Snowflake

Passons à la pratique !

Gestion, gouvernance et collaboration avec Snowflake

Preparing Video For Download...