sql >> Base de Datos >  >> RDS >> Database

Cómo enmascarar a Cassandra con IRI FieldShield

ACTUALIZACIÓN:2T'17 :Los controladores JDBC y ODBC incluidos, y el manejo de JSON nativo pendiente pueden hacer que las conexiones sean más rápidas y fluidas que el enfoque que se muestra a continuación. tu También puede usar la edición Hadoop de IRI Voracity para enmascarar datos en HDFS directamente. Los datos exportados de la manera siguiente a un archivo plano en HDFS se pueden enmascarar a nivel de campo desde el módulo Voracity de FieldShield de la misma manera que se muestra a continuación a través de MapReduce2, Spark, Spark Stream, Storm o Tez sin codificación adicional.

ACTUALIZACIÓN:tercer trimestre de 2019 :ahora están disponibles en IRI DarkShield conectores nativos listos para usar para Cassandra y MongoDB que no requieren pasos de exportación/máscara/importación, y pueden manejar datos de recopilación semiestructurados y no estructurados. Al igual que FieldShield, DarkShield también está disponible (incluido) en suscripciones a la plataforma Voracity. Consulte este artículo de procedimientos para encontrar y enmascarar PII flotante en bases de datos Cassandra NoSQL. Si está interesado en completar Cassandra con datos de prueba sintéticos, consulte este artículo.

DataStax / Cassandra no puede enmascarar columnas específicas para evitar que los usuarios no autorizados vean información de identificación personal (PII). En este artículo, mostraremos cómo exportar datos de una base de datos de Cassandra a un archivo CSV y usaremos el producto IRI FieldShield (también disponible en la plataforma IRI Voracity) para aleatorizar, enmascarar y cifrar los datos en ese archivo CSV. Luego importaremos esos datos nuevamente a Cassandra, actualizados y protegidos. Se planea otro artículo sobre el lanzamiento de la conexión más directa de IRI a la base de datos.

En nuestro ejemplo, tenemos una tabla con la información de los estudiantes en DataStax. Las columnas son:id_num (la clave principal), honores, semestre_horas, socsecnum (número de seguro social) e id_usuario.

Para desidentificar a cada estudiante, aleatorizaremos sus semestre_horas, enmascararemos su socsecnum y cifraremos el valor de id_usuario para que la PII de cada estudiante esté protegida.

Datos desprotegidos en Cassandra

Para nuestros ejemplos de línea de comandos, estamos usando el shell CQL de DataStax Cassandra.

Exportar una tabla de Cassandra a un archivo CSV

Para exportar una tabla de Cassandra a un archivo CSV, ejecute el siguiente comando desde el shell de Cassandra CQL:

COPY <Exporting Table> TO '<File Path to the CSV you exporting to>' WITH HEADER=TRUE;

Apertura y definición de la fuente CSV

  1. Desde la barra de herramientas superior de la GUI de IRI Workbench para FieldShield (construido en Eclipse), busque el icono de FieldShield y seleccione 'Nuevo trabajo de protección' para ejecutar el asistente. Asigne un nombre a su archivo de trabajo, "CassShieldJob.fcl" y haga clic en 'Siguiente'.
  2. Haga clic en "Agregar fuente de datos" y luego en "Examinar" hasta el archivo CSV que creó con su exportación. Luego haga clic en 'Aceptar'.
  3. Haga clic en "Descubrir metadatos" y nombre el (archivo de definición de datos reutilizable) "StudentsMeta.ddf" y haga clic en "Siguiente". Haga clic en "Sí" para detectar automáticamente y "Obtener nombres de campo de la fila del encabezado" antes de hacer clic en "Aceptar" y luego en "Finalizar".
  4. Ahora debería ver sus campos en la lista Fuentes de datos. Haga clic en 'Siguiente'.

Aplicación de las protecciones

  1. Haga clic en 'Agregar destino de datos' y busque para crear un nuevo destino de archivo CSV para almacenar la versión protegida de los datos (o para sobrescribir la fuente, use la misma ruta/archivo). Luego haga clic en 'Campo de destino Diseño', para revisar el diseño y aplicar las protecciones a los campos de salida. Hay dos cuadros de lista:el superior muestra los campos de origen y el inferior muestra los campos de destino a los que aplicará los "protectores" de campo.
  2. Aleatorizar semestre_horas: Seleccione el nombre del campo semestre_horas en el panel de destino y haga clic en "Protección de campo". Seleccione Generación de valores aleatorios y, para el tipo, seleccione Dígito. Establezca los tamaños mínimo y máximo aleatorios en 2 y haga clic en Aceptar.
  3. Máscara socsecnum:seleccione el campo socsecnum y haga clic en 'Protección de campo' nuevamente. Seleccione Enmascaramiento y elija la opción predeterminada de SSN de EE. UU. para exponer solo los últimos cuatro dígitos de los SSN. Haga clic en 'Aceptar'.
  4. Cifrar user_id:seleccione user_id y haga clic en "Protección de campo" nuevamente. Seleccione Cifrado y descifrado y elija enc_fp_aes256_alphanum para el cifrado que conserva el formato. Ingrese una frase de contraseña (la clave de descifrado) y en el cuadro Excluir escriba "Usuario_" para evitar que la parte Usuario_ de nuestro nombre de usuario se cifre. Luego haga clic en "Finalizar".
  5. Los campos a proteger deben aparecer de la siguiente manera:

Haga clic en 'Aceptar' y luego en 'Finalizar' para ver el script real (trabajo ejecutable) creado para usted:

Ejecute el trabajo en IRI Workbench o en la línea de comando,

fieldshield /spec=CassShieldJob.fcl

El archivo CSV que creó contendrá los nuevos datos enmascarados y cifrados.

Importar los datos protegidos a Cassandra

Para volver a importar los datos modificados a Cassandra, use el siguiente comando en el shell de Cassandra CQL:

COPY <Table you are importing data to> (field1fromCSV, field2fromCSV, ...) FROM '<Path to CSV>';

Datos protegidos en Cassandra

Para obtener detalles sobre las capacidades de FieldShield, consulte http://www.iri.com/products/fieldshield/technical-details.