Registro, trazas y auditoría

Gestión, gobierno y colaboración en Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

El problema de auditoría

  • ¿Quién accedió a credit scores en los últimos 90 días?
  • ¿Qué procedimientos almacenados se ejecutaron de madrugada un día concreto?
  • ¿Hubo inicios de sesión fuera de la red corporativa?
  • El registro debe existir antes de hacer la pregunta

audit_icon.png

Gestión, gobierno y colaboración en Snowflake

¿Qué son las Event Tables?

  • Captura logs y trazas emitidos por objetos de Snowflake: procedimientos, funciones Snowpark, UDFs
  • Se crea como una tabla normal y se activa con ALTER_ACCOUNT
  • Desde entonces los mensajes de log y traza se escriben automáticamente
  • Consulta con SQL estándar: no hacen falta herramientas externas

event_table_simple.png

Gestión, gobierno y colaboración en Snowflake

Niveles de log

 

Nivel Descripción
TRACE Cada entrada y salida de función: lo más granular
DEBUG Detalle de diagnóstico
INFO Hitos de ejecución normal: recomendado en producción
WARN Condiciones inesperadas que no detienen la ejecución
ERROR Fallos
FATAL Fallos críticos que detienen la ejecución
Gestión, gobierno y colaboración en Snowflake

Trazas

  • Captura el recorrido de ejecución en un proceso por pasos
  • Muestra cómo se conectan los pasos, no solo mensajes sueltos
  • Registra duración y orden de cada paso
  • Las trazas se escriben en la misma event table que los logs

tracing_v2.png

Gestión, gobierno y colaboración en Snowflake

Usar LOGIN_HISTORY para auditoría

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;
Gestión, gobierno y colaboración en Snowflake

QUERY_HISTORY para auditoría

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;
Gestión, gobierno y colaboración en Snowflake

La pista de auditoría completa

 

Fuente Qué captura Pregunta de auditoría
Event table Logs y trazas de procedimientos almacenados y funciones Snowpark ¿Qué hizo la plataforma?
LOGIN_HISTORY Cada intento de inicio de sesión: usuario, IP, método, errores ¿Quién se conectó, desde dónde, falló algo?
QUERY_HISTORY Cada sentencia SQL: usuario, rol, warehouse, texto de consulta ¿Qué datos se tocaron y por quién?
Gestión, gobierno y colaboración en Snowflake

¡Vamos a practicar!

Gestión, gobierno y colaboración en Snowflake

Preparing Video For Download...