sql >> Base de Datos >  >> NoSQL >> MongoDB

Enmascaramiento de PII en MongoDB y otras bases de datos NoSQL a través de...

Nota del editor:este ejemplo demuestra nuestro primero, menos directo (aunque todavía disponible) método de usar IRI FieldShield para proteger los datos que se encuentran en las tablas de MongoDB. Como leerá, la Utilidad de exportación de MongoDB en este caso extrae datos y crea un archivo CSV que FieldShield enmascara externamente, antes de volver a cargar los datos recién protegidos en MongoDB. Puede usar este mismo enfoque para datos en otras bases de datos NoSQL como Cassandra y ElasticSearch.

IRI también ofrece métodos más directos para mover datos entre colecciones MongoDB y motores de enmascaramiento de datos IRI como FieldShield o Voracity. Un artículo de instrucciones sobre el enmascaramiento directo de datos de datos MongoDB estructurados a través de ODBC de 2016 está aquí , y a través del controlador nativo de MongoDB compatible con CoSort v10 (que impulsa FieldShield y Voracity) en 2018 ya está aquí. El método más reciente (cuarto método), que puede encontrar y enmascarar PII en recopilaciones estructuradas y no estructuradas de MongoDB utilizando IRI DarkShield :en la GUI desde 2019 es aquí y en la API desde 2021 está aquí.

MongoDB es una poderosa base de datos NoSQL que puede almacenar grandes cantidades de datos en paquetes llamados colecciones (similares a las tablas en las bases de datos relacionales). Aunque escala horizontalmente (añade potencia a la base de datos agregando máquinas), MongoDB no tiene una forma interna de enmascarar los datos una vez que se han ingresado, aparte de actualizar manualmente cada registro.

El ejemplo a continuación protege los valores de MongoDB externamente. Explico cómo exportar una colección a un archivo CSV, usar IRI FieldShield para enmascarar un campo en ese archivo e importar ese archivo nuevamente a Mongo para que la colección esté protegida adecuadamente. Tenga en cuenta que puede enmascarar cualquier cantidad de campos de 14 maneras diferentes usando FieldShield.

También es posible descubrir y enmascarar automáticamente datos en múltiples fuentes estructuradas, semiestructuradas y no estructuradas sobre la base de clases de datos definidas centralmente, que se detallan en otros artículos de este blog (como este). Sin embargo, este ejemplo solo muestra los aspectos de enmascaramiento, según las colecciones exportadas.

Datos antes de enmascarar

Estos son los registros en la tabla de origen, que se muestran con MongoVUE.


Exportar los datos de la tabla

Utilice la utilidad de exportación de MongoDB (mongoexport) para ejecutar el comando:

--db <Database Name> --collection <Collection Name> --csv --fields <field1,field2,...> --out <Output Path>


Uso de la GUI de FieldShield para crear el trabajo de enmascaramiento de datos

  • Abra el IRI Workbench e inicie el asistente Crear nuevo trabajo de protección (enmascaramiento) para FieldShield.
  • Elija el nombre que le gustaría dar al trabajo y haga clic en siguiente.
  • En la pantalla Fuentes de datos, haga clic en Agregar fuente de datos y busque el archivo CSV que creó.
  • Haga clic en Editar opciones de fuente y, en Opciones, cambie el Tipo de formato a CSV y haga clic en Aceptar.
  • Haga clic en Descubrir metadatos y siga a través del asistente. Debería detectar el separador como ',' y poder generar los datos de campo. Lo más probable es que elija ASCII para el tipo de datos. Para cambiar esto, haga clic en el tipo de datos de campo que desea cambiar y luego seleccione el tipo de datos que desea usar. Una vez que esté satisfecho con sus tipos de datos, haga clic en Finalizar .

  • Haga clic en Siguiente para acceder a la pantalla Destinos de datos y haga clic en Añadir destino de datos. . A continuación, asigne un nombre al archivo CSV que desee crear y haga clic en Aceptar. .
  • Haga clic en Diseño de campo objetivo para abrir la pantalla donde aplicará la máscara:

  • La tabla inferior le mostrará todos los campos que estarán en su archivo de destino. Seleccione el nombre del campo que desea enmascarar, haga clic en la flecha del menú Protección de campo y elija la función de enmascaramiento deseada en el cuadro desplegable.
  • Complete los parámetros del cuadro de diálogo, haga clic en Aceptar (dos veces) y Finalizar para completar el asistente de trabajo.
  • Su trabajo de FieldShield debería generarse para usted:

Revise y, si es necesario, modifique y vuelva a guardar su trabajo de enmascaramiento de datos. Ejecútelo desde la GUI, la línea de comandos o desde una aplicación para generar el archivo que volverá a cargar en MongoDB.


Importación de la tabla enmascarada

Use la utilidad de importación de MongoDB (mongoimport) para ejecutar los comandos:

--db <Database Name> --collection <Collection Name> --type csv --fields <field1,field2,...> --upsert --upsertFields <Field to match to old database*> --file <File Path of the file to import (The file created by the Mask Script)>

*Para importar todo de nuevo a la colección anterior, debe indicarle cuál de los campos está ingresando para consultar los registros existentes. Un ejemplo sería el correo electrónico; compararía todos los registros de importación con su correo electrónico existente y actualizaría el registro.


Datos después del enmascaramiento

A continuación se encuentran los registros en la tabla de destino; mostrado con MongoVUE. Tenga en cuenta que solo se redactaron los números de tarjeta de crédito en el proceso de FieldShield; otros campos podrían haber sido protegidos con funciones similares o diferentes al mismo tiempo.

Además de la definición y ejecución relativamente fáciles de los trabajos de FieldShield, hay otras ventajas de usarlo con Mongo, que incluyen:

  • velocidad en volumen:las arquitecturas de rendimiento de IRI y Mongo están diseñadas para escalar linealmente
  • compatibilidad multiplataforma :elija entre estas fuentes admitidas
  • capacidades simultáneas de integración, migración, replicación, federación e informes de datos en el mismo script de trabajo CoSort (programa SortCL, padre de FieldShield) y paso de E/S

Comuníquese con  si tiene alguna pregunta sobre este proceso o comente a continuación.