sql >> Databáze >  >> NoSQL >> MongoDB

Maskování PII v MongoDB a dalších NoSQL DB přes…

Poznámka editora:Tento příklad ukazuje naše nejstarší, nejméně přímé (ačkoli je stále k dispozici) způsob použití IRI FieldShield k ochraně dat nalezených v tabulkách MongoDB. Jak se dočtete, nástroj MongoDB Export Utility v tomto případě extrahuje data a vytvoří soubor CSV, který FieldShield externě maskuje, před načtením nově zabezpečených dat zpět do MongoDB. Stejný přístup můžete použít pro data v jiných NoSQL databázích, jako je Cassandra a ElasticSearch.

IRI také nabízí přímější metody pro přesun dat mezi kolekcemi MongoDB a IRI maskovacími nástroji jako FieldShield nebo Voracity. Článek s návodem na přímé maskování dat strukturovaných dat MongoDB prostřednictvím ODBC z2016 je zde a prostřednictvím nativního ovladače MongoDB podporovaného v CoSort v10 (pohánějící FieldShield a Voracity) v 2018 je tady. Nejnovější (čtvrtá metoda) metoda – která dokáže najít a maskovat PII ve strukturovaných i nestrukturovaných sbírkách MongoDB pomocí IRI DarkShield — v GUI od 2019 je zde a v rozhraní API od 2021 je tady.

MongoDB je výkonná NoSQL databáze, která dokáže ukládat velké množství dat v paketech zvaných kolekce (podobně jako tabulky v relačních databázích). Přestože se škáluje horizontálně (přidává energii do databáze přidáním počítačů), MongoDB nemá žádný interní způsob, jak maskovat data po jejich zadání, kromě ruční aktualizace každého záznamu.

Níže uvedený příklad chrání hodnoty MongoDB externě. Vysvětlím, jak exportovat sbírku do souboru CSV, použít IRI FieldShield k maskování pole v tomto souboru a importovat tento soubor zpět do Mongo, aby byla sbírka náležitě chráněna. Všimněte si, že pomocí FieldShield můžete maskovat libovolný počet polí 14 různými způsoby.

Je také možné automaticky zjišťovat a maskovat data ve více strukturovaných, polostrukturovaných, nestrukturovaných zdrojích na základě centrálně definovaných datových tříd, o kterých se podrobně uvádějí další články tohoto blogu (jako je tento). Tento příklad však ukazuje pouze aspekty maskování na základě exportovaných eolekcí.

Údaje před maskováním

Zde jsou záznamy ve zdrojové tabulce zobrazené s MongoVUE.


Export dat tabulky

Pomocí nástroje Export MongoDB (mongoexport) spusťte příkaz:

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


Použití grafického uživatelského rozhraní FieldShield k vytvoření úlohy maskování dat

  • Otevřete pracovní plochu IRI a spusťte průvodce vytvořením nové úlohy ochrany (maskování) pro FieldShield.
  • Vyberte jakékoli jméno, které chcete práci dát, a klikněte na tlačítko Další.
  • Na obrazovce Zdroje dat klikněte na Přidat zdroj dat a vyhledejte soubor CSV, který jste vytvořili.
  • Klikněte na Upravit možnosti zdroje a v části Možnosti změňte typ formátu na CSV a klikněte na OK.
  • Klikněte na možnost Objevit metadata a postupujte podle průvodce. Měl by detekovat separátor jako „,“ a být schopen generovat data pole. S největší pravděpodobností vybere jako datový typ ASCII. Chcete-li to změnit, klikněte na typ dat pole, který chcete změnit, a poté vyberte typ dat, který chcete použít. Až budete s typy dat spokojeni, klikněte na Dokončit .

  • Klikněte na Další přejděte na obrazovku Datové cíle a klikněte na Přidat datový cíl . Poté pojmenujte soubor CSV, který chcete vytvořit, a klikněte na OK .
  • Klikněte na Cílové rozložení pole vyvolejte obrazovku, na kterou budete masku aplikovat:

  • V dolní tabulce se zobrazí všechna pole, která budou ve vašem cílovém souboru. Vyberte název pole, které chcete maskovat, klikněte na šipku nabídky Ochrana pole a z rozbalovací nabídky vyberte požadovanou funkci maskování.
  • Dokončete parametry dialogového okna a klikněte na tlačítko OK (dvakrát) a Dokončit   k dokončení průvodce úlohou.
  • Vaše úloha FieldShield by pak měla být vygenerována za vás:

Zkontrolujte a v případě potřeby upravte a znovu uložte svou úlohu maskování dat. Spusťte jej z GUI, příkazového řádku nebo z aplikace a vygenerujte soubor, který nahrajete zpět do MongoDB.


Import maskovaného stolu

Pomocí nástroje MongoDB Import (mongoimport) spusťte příkazy:

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

*Chcete-li vše importovat zpět do staré kolekce, musíte jí sdělit, která z polí zadáváte pro dotaz na existující záznamy. Příkladem může být e-mail; porovná všechny importované záznamy s jejich stávajícím e-mailem a aktualizuje záznam.


Data po maskování

Níže jsou záznamy v cílové tabulce; zobrazeno s MongoVUE. Všimněte si, že v procesu FieldShield byla redigována pouze čísla kreditních karet; jiná pole mohla být chráněna podobnými nebo odlišnými funkcemi současně.

Kromě relativně snadné definice a provádění úloh FieldShield existují další výhody jeho použití s ​​Mongo, včetně:

  • rychlost v objemu – výkonové architektury IRI i Mongo jsou navrženy tak, aby se lineárně škálovaly
  • kompatibilita napříč platformami – vyberte si z těchto podporovaných zdrojů
  • současná integrace dat, migrace, replikace, federace a možnosti vytváření sestav ve stejném skriptu úlohy CoSort (program SortCL, nadřazený program FieldShield) a průchodu I/O

Pokud máte nějaké dotazy k tomuto procesu nebo komentář, kontaktujte níže.


  1. Cesta zápisu Apache HBase

  2. Jak implementujete automaticky se zvyšující primární ID v MongoDB?

  3. Jak provést hromadnou aktualizaci dokumentů v MongoDB pomocí Javy?

  4. Výjimka časového limitu po asynchronních příkazech a Task.WhenAny čeká v StackExchange.Redis