sql >> Database >  >> NoSQL >> MongoDB

PII-maskering in MongoDB en andere NoSQL-DB's via ...

Opmerking van de redactie:dit voorbeeld toont onze vroegste, minst directe (hoewel nog steeds beschikbaar) methode om IRI FieldShield te gebruiken om gegevens in MongoDB-tabellen te beschermen. Zoals u zult lezen, extraheert het MongoDB-exporthulpprogramma in dit geval gegevens en maakt het een CSV-bestand dat door FieldShield extern wordt gemaskeerd, voordat de nieuw beveiligde gegevens weer in MongoDB worden geladen. U kunt dezelfde aanpak gebruiken voor gegevens in andere NoSQL-databases zoals Cassandra en ElasticSearch.

IRI biedt ook meer directe methoden om gegevens te verplaatsen tussen MongoDB-verzamelingen en IRI-gegevensmaskeringsengines zoals FieldShield of Voracity. Hier vindt u een artikel met instructies over het rechtstreeks maskeren van gegevens van gestructureerde MongoDB-gegevens via ODBC uit2016 , en via MongoDB's native driver die wordt ondersteund in CoSort v10 (voor FieldShield en Voracity) in 2018 is hier. De nieuwste (vierde methode) methode — die PII kan vinden en maskeren in zowel gestructureerde als ongestructureerde MongoDB-verzamelingen met IRI DarkShield — in de GUI sinds 2019 is hier, en in de API sinds 2021 is hier.

MongoDB is een krachtige NoSQL-database die grote hoeveelheden gegevens kan opslaan in pakketten die verzamelingen worden genoemd (vergelijkbaar met tabellen in relationele databases). Hoewel het horizontaal schaalt (voeg kracht toe aan de database door machines toe te voegen), heeft MongoDB geen interne manier om gegevens te maskeren nadat deze zijn ingevoerd, behalve het handmatig bijwerken van elke record.

Het onderstaande voorbeeld beschermt MongoDB-waarden extern. Ik leg uit hoe je een collectie exporteert naar een CSV-bestand, IRI FieldShield gebruikt om een ​​veld in dat bestand te maskeren en dat bestand weer importeert in Mongo, zodat de collectie op de juiste manier wordt beschermd. Merk op dat u een willekeurig aantal velden op 14 verschillende manieren kunt maskeren met FieldShield.

Het is ook mogelijk om automatisch data te ontdekken en te maskeren in meerdere gestructureerde, semi-gestructureerde, ongestructureerde bronnen op basis van centraal gedefinieerde dataklassen, die in andere artikelen in deze blog (zoals deze) gedetailleerd worden beschreven. Dit voorbeeld toont echter alleen de maskeeraspecten, gebaseerd op geëxporteerde selecties.

Gegevens vóór maskering

Dit zijn de records in de brontabel, getoond met MongoVUE.


De tabelgegevens exporteren

Gebruik het hulpprogramma MongoDB Export (mongoexport) om de opdracht uit te voeren:

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


De FieldShield GUI gebruiken om de gegevensmaskeringstaak te maken

  • Open de IRI-werkbank en start de wizard Nieuwe beveiliging (masking) maken voor FieldShield.
  • Kies de naam die u aan de taak wilt geven en klik op volgende.
  • Klik in het scherm Gegevensbronnen op Gegevensbron toevoegen en zoek het CSV-bestand dat u hebt gemaakt.
  • Klik op Bronopties bewerken en, onder Opties, verander het Formaattype in CSV en klik op OK.
  • Klik op Metadata ontdekken en volg de wizard. Het moet de scheidingsteken detecteren als ',' en de veldgegevens kunnen genereren. Het zal hoogstwaarschijnlijk ASCII kiezen voor het gegevenstype. Om dit te wijzigen, klikt u op het veldgegevenstype dat u wilt wijzigen en selecteert u vervolgens het gegevenstype dat u wilt gebruiken. Als u tevreden bent met uw gegevenstypen, klikt u op Voltooien .

  • Klik op Volgende om naar het scherm Gegevensdoelen te gaan en klik op Gegevensdoel toevoegen . Geef vervolgens een CSV-bestand dat u wilt maken een naam en klik op OK .
  • Klik op Opmaak doelveld om het scherm te openen waar u het masker gaat toepassen:

  • In de onderste tabel ziet u alle velden die in uw doelbestand voorkomen. Selecteer de veldnaam die u wilt maskeren, klik op de menupijl Veldbeveiliging en kies de gewenste maskeerfunctie in de vervolgkeuzelijst.
  • Vul de parameters van het dialoogvenster in, klik op OK (tweemaal) en Voltooien   om de taakwizard te voltooien.
  • Uw FieldShield-taak moet dan voor u worden gegenereerd:

Bekijk, en indien nodig, wijzig en sla uw gegevensmaskeringstaak opnieuw op. Voer het uit vanuit de GUI, de opdrachtregel of vanuit een app om het bestand te genereren dat u weer naar MongoDB uploadt.


De gemaskeerde tabel importeren

Gebruik het MongoDB Import-hulpprogramma (mongoimport) om de opdrachten uit te voeren:

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

*Om alles weer in de oude collectie te importeren, moet u aangeven welke van de velden u invoert om te zoeken naar de bestaande records. Een voorbeeld is e-mail; het zou alle importrecords vergelijken met hun bestaande e-mailadres en het record bijwerken.


Gegevens na maskering

Hieronder staan ​​de records in de doeltabel; getoond met MongoVUE. Merk op dat alleen de creditcardnummers zijn geredigeerd in het FieldShield-proces; andere velden hadden tegelijkertijd met vergelijkbare of verschillende functies kunnen worden beveiligd.

Naast de relatief eenvoudige definitie en uitvoering van FieldShield-taken, zijn er nog andere voordelen aan het gebruik ervan met Mongo, waaronder:

  • snelheid in volume — zowel IRI als Mongo's prestatiearchitecturen zijn ontworpen om lineair te schalen
  • platformoverschrijdende compatibiliteit:kies uit deze ondersteunde bronnen
  • gelijktijdige gegevensintegratie, migratie, replicatie, federatie en rapportagemogelijkheden in hetzelfde CoSort (SortCL-programma, FieldShield's bovenliggende) taakscript en I/O-pas

Neem contact op met  als je vragen hebt over dit proces of hieronder een opmerking maakt.


  1. MongoDB $atan2

  2. Hoe mangoest findOne te gebruiken

  3. MongoDB ontspant meerdere arrays

  4. Gesorteerde set van vaste maat in Redis?