PostgreSQL Anonymizer 1.1: Privacidad por defecto para Postgres
Tour, Francia, 28 de septiembre de 2022
PostgreSQL Anonymizer
es una extensión que oculta o reemplaza información personal identificable (PII) o datos comercialmente sensibles de una base de datos PostgreSQL.
La extensión cuenta con 3 estrategias de anonimización diferentes: Enmascaramiento dinámico, enmascaramiento estático y volcados anónimos. También ofrece una gran variedad de funciones de enmascaramiento, como sustitución, aleatorización, falsificación, seudonimización, codificación parcial, barajado de datos, adición de ruido y generalización.
Privacidad por defecto
La normativa del GDPR (así como otras leyes de privacidad) introduce el concepto de protección de datos por defecto. En pocas palabras, significa que, de forma predeterminada, las organizaciones deben garantizar que los datos se procesen con el máximo nivel de protección de privacidad, de modo que, por defecto, los datos personales no sean accesibles a un número indeterminado de personas.
Aplicando este principio a la anonimización, obtenemos la idea de privacy by default
(privacidad por defecto), que básicamente significa que todas las columnas de todas las tablas deben ser ocultadas por defecto, sin tener que declarar una regla de enmascaramiento para cada una de ellas.
Para activar esta función, es suficiente con establecer la opción anon.privacy_by_default
en on
.
ALTER DATABASE foo SET anon.privacy_by_default = True;
Ahora todas las columnas de la base de datos foo
serán anonimizadas con el valor por defecto de la columna (si se ha definido) o con NULL.
Advertencia: Si existen columnas declaradas como NOT NULL
, deberá definirse un valor por defecto, de lo contrario se producirá una violación de la restricción al anonimizar la base de datos.
Para más detalles sobre esta función, haga clic en el siguiente enlace:
https://postgresql-anonymizer.readthedocs.io/en/latest/privacy_by_default/
Volcados anónimos consistentes
Antes de la versión 1.0, pg_dump_anon era un script bash. Aunque se trataba de un script funcional y sencillo, en ciertas condiciones los respaldos anónimos no eran consistentes.
Ahora se ha creado una nueva versión de pg_dump_anon (reescrita en Golang) que siempre generará exportaciones consistentes.
El script anterior ha sido renombrado a pg_dump_anon.sh y aún está disponible por razones de compatibilidad con versiones anteriores. Sin embargo, desaparecerá en la versión 2.0.
https://postgresql-anonymizer.readthedocs.io/en/latest/anonymous_dumps/
Instalación
Esta extensión está oficialmente soportada en PostgreSQL 9.6 y versiones posteriores.
En los sistemas Red Hat, CentOS y Rocky Linux, puede instalarse directamente desde el repositorio RPM oficial de PostgreSQL:
dnf install postgresql_anonymizer14
A continuación, deberán cargar la extensión con:
ALTER DATABASE foo SET session_preload_libraries = 'anon';
Crear la extensión en la base de datos:
CREATE EXTENSION anon CASCADE;
Y por último, inicializar la extensión:
SELECT anon.init();
Para otros sistemas, consulten la documentación de instalación:
https://postgresql-anonymizer.readthedocs.io/en/latest/INSTALL/
Agradecimientos
Este proyecto incluye código, correcciones de errores, documentación, revisiones de código e ideas de Michel Pelletier, Gergő Rubint, Mahesh Moturu, Greg Pringle, Christophe Courtois y otros contribuidores.
Agradecemos a todos ellos su ayuda y comentarios.
Cómo contribuir
PostgreSQL Anonymizer es parte de una iniciativa de Dalibo Labs. Está desarrollado principalmente por Damien Clochard.
Este es un proyecto abierto, por lo que se agradecen las contribuciones. Necesitamos sus comentarios e ideas. Hágannos saber lo que piensan de esta herramienta, cómo se ajusta a sus necesidades y qué características faltan.
Si desean colaborar, pueden consultar aquí una lista de trabajos menores:
https://gitlab.com/dalibo/postgresql_anonymizer/issues?label_name%5B%5D=Junior+Jobs