Journalisation, traçage et audit

Gestion, gouvernance et collaboration sur Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

Le problème d’audit

  • Qui a consulté les scores de crédit sur les 90 derniers jours ?
  • Quelles procédures stockées ont tourné tôt un matin donné ?
  • Des connexions venaient-elles hors réseau de l’entreprise ?
  • L’enregistrement doit exister avant de poser la question

Icône d’audit

Gestion, gouvernance et collaboration sur Snowflake

Qu’est-ce qu’une Event Table ?

  • Capture les logs et traces émis par les objets Snowflake : procédures stockées, fonctions Snowpark, UDF
  • Créée comme une table classique, puis activée avec ALTER_ACCOUNT
  • Les messages de log/trace sont écrits automatiquement ensuite
  • Interrogez-la en SQL standard — pas d’outils externes requis

table_evenements_simple.png

Gestion, gouvernance et collaboration sur Snowflake

Niveaux de log

 

Niveau Description
TRACE Chaque entrée/sortie de fonction — le 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 ayant interrompu l’exécution
Gestion, gouvernance et collaboration sur Snowflake

Traçage

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

traçage_v2.png

Gestion, gouvernance et collaboration sur 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 sur 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 sur Snowflake

La piste d’audit complète

 

Source Ce qui est capturé Question d’audit traitée
Event table Logs 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 et par qui ?
Gestion, gouvernance et collaboration sur Snowflake

Passons à la pratique !

Gestion, gouvernance et collaboration sur Snowflake

Preparing Video For Download...