Brume: seudonimización segura para claves foráneas en copias de PostgreSQL destinadas a pruebas y depuración
Ya está disponible Brume 2.1, una herramienta de código abierto con licencia Apache 2.0 que permite crear copias seudonimizadas de bases de datos PostgreSQL de forma determinista, manteniendo la integridad de las claves foráneas. Está diseñada para entornos de pruebas, depuración y demostraciones.
¿Por qué elegir Brume?
Los equipos de desarrollo necesitan con frecuencia datos realistas para reproducir errores, realizar pruebas o preparar demostraciones. Sin embargo, copiar una base de datos de producción puede exponer datos personales reales. Además, los scripts tradicionales de enmascaramiento suelen afectar la integridad referencial, lo que obliga a desactivar triggers, suspender restricciones o corregir manualmente las relaciones entre tablas.
Brume permite copiar un subconjunto seleccionado de una base de datos de origen a otra de destino o a un archivo .sql, transformando los datos personales durante el proceso, antes de escribirlos. De esta manera, las claves foráneas mantienen su validez en toda la base de datos de destino. Además, Brume solo realiza operaciones de lectura sobre la base de datos de origen.
Características principales
- Estrategias a nivel de columna:
FAKEpermite generar datos sintéticos realistas,MASKoculta parcialmente los valores,HASHaplica un hash unidireccional,NULLIFYelimina la información sensible,FPE_ID/FPE_UUIDcifra los identificadores sin alterar su formato, yDATE_SHIFTmodifica las fechas conservando su distribución original. - Resultados deterministas: las transformaciones se basan en claves secretas definidas por el usuario. Esto garantiza que una misma entrada, procesada con la misma clave, genere siempre el mismo resultado, incluso entre distintas versiones menores de una misma versión principal. Así, los datos utilizados en las pruebas y las sesiones de depuración se mantienen consistentes de una ejecución a otra.
- Integridad referencial: el cifrado que conserva el formato permite transformar de manera coherente las claves primarias y todas las claves foráneas que las referencian. Además, mediante
linked_columns, los valores compartidos entre tablas sin una relación formal de clave foránea (como una dirección de correo electrónico almacenada tanto enuserscomo enaudit_logs) reciben siempre el mismo seudónimo, independientemente de dónde aparezcan. - Extracción de subconjuntos: permite definir filtros por registro en cualquier tabla (
created_at >= '2025-01-01',tenant_id = 42…). Brume recorre las relaciones establecidas mediante claves foráneas, tanto hacia las tablas principales como hacia las dependientes, hasta alcanzar una profundidad configurable. De esta manera, genera un conjunto reducido de datos, independiente y con coherencia referencial. - Configuración declarativa: toda la estrategia de procesamiento de tablas y columnas se define en un único archivo
brume.ym. Este permite especificar tipos semánticos (EMAIL,PHONE,IBAN,ADDRESS…) y rutas JSONB para identificar campos dentro de estructuras anidadas. Además, puede gestionarse mediante un sistema de control de versiones y someterse a revisiones de código antes de cada ejecución.
RGPD
Los artículos 25 y 32 del Reglamento General de Protección de Datos (RGPD) contemplan la seudonimización como una de las medidas de protección de datos personales. Brume permite a los delegados de protección de datos (DPO) y a los equipos de seguridad disponer de una descripción clara, verificable y auditable de las transformaciones aplicadas a los datos personales antes de que abandonen el entorno de producción.
Compatibilidad e instalación
Brume ofrece compatibilidad con las versiones 12 a 18 de PostgreSQL. Dispone de paquetes de instalación para Debian y Ubuntu mediante apt, RHEL y Fedora mediante dnf, y macOS a través de Homebrew.

