sql >> Database teknologi >  >> NoSQL >> MongoDB

PII-maskering i MongoDB og andre NoSQL DB'er via...

Redaktører Bemærk:Dette eksempel viser vores tidligste, mindst direkte (men stadig tilgængelig) metode til at bruge IRI FieldShield til at beskytte data fundet i MongoDB-tabeller. Som du vil læse, udtrækker MongoDB Export Utility i dette tilfælde data og opretter en CSV-fil, som FieldShield maskerer eksternt, før de nysikrede data indlæses tilbage i MongoDB. Du kan bruge samme tilgang til data i andre NoSQL-databaser som Cassandra og ElasticSearch.

IRI tilbyder også mere direkte metoder til at flytte data mellem MongoDB-samlinger og IRI-datamaskeringsmaskiner som FieldShield eller Voracity. En how-to-artikel om direkte datamaskering af strukturerede MongoDB-data gennem ODBC fra2016 er her , og gennem MongoDBs oprindelige driver understøttet i CoSort v10 (der driver FieldShield og Voracity) i2018 er her. Den seneste (fjerde metode) metode — som kan finde og maskere PII i både strukturerede og ustrukturerede MongoDB-samlinger ved hjælp af IRI DarkShield — i GUI siden 2019 er her og i API'en siden 2021 er her.

MongoDB er en kraftfuld NoSQL-database, der kan gemme store mængder data i pakker kaldet samlinger (svarende til tabeller i relationelle databaser). Selvom det skalerer vandret (tilføj kraft til databasen ved at tilføje maskiner), har MongoDB ingen intern måde at maskere data på, når de først er blevet indtastet, udover manuelt at opdatere hver post.

Eksemplet nedenfor beskytter MongoDB-værdier eksternt. Jeg forklarer, hvordan du eksporterer en samling til en CSV-fil, bruger IRI FieldShield til at maskere et felt i den fil, og importerer denne fil tilbage til Mongo, så samlingen er beskyttet korrekt. Bemærk, at du kan maskere et vilkårligt antal felter på 14 forskellige måder ved at bruge FieldShield.

Det er også muligt automatisk at opdage og maskere data i flere strukturerede, semi-strukturerede, ustrukturerede kilder på basis af centralt definerede dataklasser, som andre artikler i denne blog (som denne) beskriver. Dette eksempel viser dog kun maskeringsaspekterne baseret på eksporterede valg.

Data før maskering

Her er posterne i kildetabellen, vist med MongoVUE.


Eksport af tabeldata

Brug MongoDB Export-værktøjet (mongoexport) til at køre kommandoen:

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


Brug af FieldShield GUI til at oprette datamaskeringsjobbet

  • Åbn IRI Workbench, og start guiden Create New Protection (Masking) Job for FieldShield.
  • Vælg det navn, du gerne vil give jobbet, og klik på Næste.
  • Klik på Tilføj datakilde på skærmen Datakilder og find den CSV-fil, du oprettede.
  • Klik på Rediger kildeindstillinger og under Indstillinger skal du ændre formattypen til CSV og klikke på OK.
  • Klik på Opdag metadata og følg guiden. Den skal detektere separatoren som ',' og være i stand til at generere feltdata. Det vil højst sandsynligt vælge ASCII for datatypen. For at ændre dette skal du klikke på den feltdatatype, du ønsker at ændre, og derefter vælge den datatype, du ønsker at bruge. Når du er tilfreds med dine datatyper, skal du klikke på Udfør .

  • Klik Næste for at komme til skærmen Datamål, og klik på Tilføj datamål . Navngiv derefter en CSV-fil, du vil oprette, og klik på OK .
  • Klik på Target Field Layout for at få vist skærmen, hvor du vil anvende masken:

  • Den nederste tabel viser dig alle de felter, der vil være i din målfil. Vælg det feltnavn, du vil maskere, klik på menupilen Feltbeskyttelse, og vælg den ønskede maskeringsfunktion fra rullemenuen.
  • Fuldfør dialogens parametre, klik på OK (to gange) og Afslut   for at fuldføre jobguiden.
  • Dit FieldShield-job bør derefter genereres for dig:

Gennemgå, og om nødvendigt, modificer og gem dit datamaskeringsjob igen. Kør den fra GUI'en, kommandolinjen eller fra en applikation for at generere den fil, du vil uploade tilbage til MongoDB.


Importering af det maskerede bord

Brug MongoDB Import-værktøjet (mongoimport) til at køre kommandoerne:

--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)>

*For at importere alt tilbage til den gamle samling, skal du fortælle den, hvilke af felterne du indtaster for at forespørge mod de eksisterende poster. Et eksempel ville være e-mail; det ville matche alle importregistreringer med deres eksisterende e-mail og opdatere posten.


Data efter maskering

Nedenfor er posterne i måltabellen; vist med MongoVUE. Bemærk, at kun kreditkortnumrene blev redigeret i FieldShield-processen; andre felter kunne have været beskyttet med lignende eller forskellige funktioner på samme tid.

Ud over den relativt nemme definition og udførelse af FieldShield-job er der andre fordele ved at bruge det med Mongo, herunder:

  • hastighed i volumen – både IRI og Mongos præstationsarkitektur er designet til at skalere lineært
  • kompatibilitet på tværs af platforme — vælg blandt disse understøttede kilder
  • samtidig dataintegration, migrering, replikering, føderation og rapportering i samme CoSort (SortCL-program, FieldShields overordnede) jobscript og I/O-pas

Kontakt  hvis du har spørgsmål om denne proces eller kommentarer nedenfor.


  1. Redis pipelinet ordre for udførelse

  2. Hvordan listes alle Redis-databaser?

  3. 3 måder at vælge rækken med den maksimale værdi i SQL

  4. MongoDB:tæl antallet af elementer i et array