Skip to main content
SecuritySnowflake

Data Access Policies en Snowflake: control granular del acceso a los datos

By octubre 26, 2023septiembre 8th, 2026No Comments

A medida que las organizaciones almacenan grandes volúmenes de información en plataformas cloud, controlar quién puede acceder a qué datos se convierte en un desafío crítico. Los datasets modernos suelen contener información sensible que no debe estar disponible para todos los usuarios.

En Snowflake, las Data Access Policies permiten implementar controles avanzados de acceso directamente a nivel de datos, ayudando a las organizaciones a mantener la seguridad y el cumplimiento normativo sin limitar la capacidad analítica.

Estas políticas permiten definir reglas dinámicas que determinan qué datos puede ver cada usuario dependiendo de su rol o contexto.

El desafío del control de acceso en plataformas de datos

En sistemas tradicionales, el acceso a datos suele gestionarse a nivel de:

  • Base de datos
  • Esquema
  • Tabla

Sin embargo, este enfoque puede ser demasiado amplio cuando se trabaja con datasets que contienen información sensible.

Por ejemplo:

  • Un analista puede necesitar acceder a una tabla de clientes, pero no debería ver datos personales completos.
  • Un gerente regional puede necesitar ver únicamente información de su región.

En estos casos, se requieren mecanismos de control más granulares.

Qué son las Data Access Policies

Las Data Access Policies permiten aplicar reglas dinámicas que controlan el acceso a datos específicos dentro de una tabla.

Estas políticas pueden determinar:

  • Qué filas puede ver un usuario
  • Qué columnas pueden mostrarse
  • Cómo se presentan los datos según el rol

Esto permite adaptar la visibilidad de los datos sin duplicar datasets ni crear múltiples versiones de la misma tabla.

Row Access Policies

Uno de los mecanismos más comunes son las Row Access Policies, que restringen el acceso a filas específicas de una tabla.

Por ejemplo, un usuario puede ver solo registros relacionados con su región o departamento.

Ejemplo de creación de política:

CREATE ROW ACCESS POLICY region_policy

AS (region STRING)

RETURNS BOOLEAN ->

CURRENT_ROLE() = ‘ADMIN’

OR region = CURRENT_ROLE();

Esta política permite que un usuario vea únicamente datos asociados a su región.

Aplicar la política a una tabla

Una vez creada la política, se puede aplicar a una tabla específica.

ALTER TABLE sales

ADD ROW ACCESS POLICY region_policy

ON (region);

A partir de ese momento, la visibilidad de las filas dependerá de la política definida.

Masking Policies

Otra herramienta importante son las Masking Policies, que permiten proteger valores sensibles sin eliminarlos del dataset.

Esto es especialmente útil cuando diferentes usuarios necesitan distintos niveles de acceso a la misma información.

Ejemplo:

CREATE MASKING POLICY mask_phone AS (val STRING)

RETURNS STRING ->

CASE

    WHEN CURRENT_ROLE() IN (‘ADMIN’) THEN val

    ELSE ‘XXX-XXX-XXXX’

END;

Esto permite ocultar información sensible para usuarios no autorizados.

Control de acceso basado en roles

Las Access Policies funcionan en conjunto con el modelo RBAC (Role-Based Access Control) de Snowflake.

Esto permite definir permisos basados en roles como:

  • Administradores
  • Ingenieros de datos
  • Analistas
  • Usuarios de negocio

El acceso se gestiona mediante la asignación de roles y la aplicación de políticas.

Ventajas de las Access Policies

Implementar políticas de acceso dinámicas ofrece varias ventajas.

Mayor seguridad

Permite proteger información sensible sin crear datasets duplicados.

Gobernanza centralizada

Las reglas de acceso se gestionan desde un único punto.

Flexibilidad

Los datos pueden adaptarse a distintos perfiles de usuario.

Cumplimiento regulatorio

Facilita cumplir con normativas como GDPR o HIPAA.

Casos de uso comunes

Las Data Access Policies son especialmente útiles en escenarios como:

  • Control de acceso por región
  • Protección de datos personales
  • Acceso diferenciado entre equipos
  • Gobernanza de datos financieros
  • Seguridad en entornos multiusuario

Estas políticas permiten mantener datasets compartidos sin comprometer la seguridad.

Buenas prácticas

Al implementar políticas de acceso en Snowflake, es recomendable:

  • Utilizar el principio de mínimo privilegio
  • Diseñar roles claros y bien definidos
  • Documentar políticas de acceso
  • Revisar regularmente los permisos
  • Monitorizar el uso de los datos

Una estrategia de gobernanza bien diseñada mejora la seguridad y reduce riesgos.

Monitorización y auditoría

Snowflake ofrece herramientas para monitorizar el uso de los datos y revisar el comportamiento de los usuarios.

Esto incluye:

  • Historial de consultas
  • Registro de accesos
  • Auditoría de roles y permisos
  • Seguimiento de cambios en políticas

Estas capacidades permiten detectar accesos inesperados o posibles riesgos de seguridad.

Conclusión

Las Data Access Policies en Snowflake permiten implementar controles de acceso avanzados que protegen datos sensibles sin limitar el análisis. Mediante el uso de Row Access Policies, Masking Policies y control basado en roles, las organizaciones pueden construir arquitecturas de datos seguras y gobernadas.

A medida que los datos se convierten en un activo estratégico para las empresas, disponer de mecanismos flexibles de control de acceso resulta fundamental para mantener la confianza, la seguridad y el cumplimiento normativo.

Leave a Reply