sql >> データベース >  >> NoSQL >> MongoDB

MongoDBおよびその他のNoSQLDBでのPIIマスキング…

    編集者注:この例は、最も早く、最も直接的ではないことを示しています。 (まだ利用可能ですが)IRIFieldShieldを使用してMongoDBテーブル内で見つかったデータを保護する方法。後で説明するように、この場合のMongoDBエクスポートユーティリティは、データを抽出し、FieldShieldが外部でマスクするCSVファイルを作成してから、新しく保護されたデータをMongoDBにロードし直します。これと同じアプローチを、CassandraやElasticSearchなどの他のNoSQLデータベースのデータに使用できます。

    IRIは、MongoDBコレクションとFieldShieldやVoracityなどのIRIデータマスキングエンジンとの間でデータを移動するためのより直接的な方法も提供します。 2016年のODBCを介した構造化MongoDBデータの直接データマスキングに関するハウツー記事はこちら 、および2018のCoSortv10(FieldShieldとVoracityに電力を供給する)でサポートされているMongoDBのネイティブドライバーを介してここにあります。 最新の(4番目の方法)方法— IRI DarkShieldを使用して、構造化されたMongoDBコレクションと構造化されていないMongoDBコレクションの両方でPIIを検索してマスクできます 2019以降のGUIで です ここで、 2021以降のAPIで ここにあります。

    MongoDBは、コレクションと呼ばれるパケットに大量のデータを格納できる強力なNoSQLデータベースです(リレーショナルデータベースのテーブルと同様)。水平方向にスケーリングしますが(マシンを追加してデータベースに電力を追加します)、MongoDBには、各レコードを手動で更新する以外に、入力後にデータをマスクする内部的な方法はありません。

    以下の例では、MongoDBの値を外部から保護しています。コレクションをCSVファイルにエクスポートし、IRI FieldShieldを使用してそのファイルのフィールドをマスクし、そのファイルをMongoにインポートして、コレクションが適切に保護されるようにする方法を説明します。 FieldShieldを使用して、14の異なる方法で任意の数のフィールドをマスクできることに注意してください。

    中央で定義されたデータクラスに基づいて、複数の構造化、半構造化、非構造化ソースのデータを自動的に検出してマスクすることもできます。このブログの他の記事(この記事など)で詳しく説明しています。ただし、この例では、エクスポートされたeollectionsに基づいて、マスキングの側面のみを示しています。

    マスキング前のデータ

    これが、MongoVUEで表示されるソーステーブルのレコードです。


    テーブルデータのエクスポート

    MongoDBエクスポートユーティリティ(mongoexport)を使用して、次のコマンドを実行します:

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


    FieldShieldGUIを使用したデータマスキングジョブの作成

    • IRIワークベンチを開き、FieldShieldの新しい保護(マスキング)ジョブの作成ウィザードを開始します。
    • 仕事に付ける名前を選択して、[次へ]をクリックします。 データソース画面で、データソースの追加をクリックします 作成したCSVファイルを見つけます。 [ソースオプションの編集]をクリックします [オプション]で、[形式の種類]を[CSV]に変更し、[OK]をクリックします。 [メタデータの検出]をクリックします ウィザードを実行します。セパレータを「、」として検出し、フィールドデータを生成できる必要があります。ほとんどの場合、データ型としてASCIIが選択されます。これを変更するには、変更するフィールドデータ型をクリックしてから、使用するデータ型を選択します。データ型に満足したら、[完了]をクリックします 。

      [次へ]をクリックします [データターゲット]画面に移動し、[データターゲットの追加]をクリックします 。次に、作成するCSVファイルに名前を付けて、[ OK]をクリックします。 [ターゲットフィールドレイアウト]をクリックします マスクを適用する画面を表示するには:

    • 下の表には、ターゲットファイルに含まれるすべてのフィールドが表示されます。マスクするフィールド名を選択し、[フィールド保護]メニューの矢印をクリックして、ドロップダウンボックスから目的のマスク機能を選択します。
    • ダイアログのパラメータを完了し、 OKをクリックします (2回)および終了 ジョブウィザードを完了します。
    • 次に、FieldShieldジョブを生成する必要があります:

    データマスキングジョブを確認し、必要に応じて変更して再保存します。 GUI、コマンドライン、またはアプリケーション内から実行して、MongoDBにアップロードするファイルを生成します。


    マスクされたテーブルのインポート

    MongoDBインポートユーティリティ(mongoimport)を使用して、次のコマンドを実行します。

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

    *すべてを古いコレクションにインポートして戻すには、既存のレコードに対してクエリを実行するために入力しているフィールドを指定する必要があります。例は電子メールです。インポートするすべてのレコードを既存のメールと照合し、レコードを更新します。


    マスキング後のデータ

    以下は、ターゲットテーブルのレコードです。 MongoVUEで表示されます。 FieldShieldプロセスで編集されたのはクレジットカード番号のみであることに注意してください。他のフィールドは、同様の機能または異なる機能で同時に保護されている可能性があります。

    FieldShieldジョブの定義と実行が比較的簡単であることに加えて、Mongoで使用することには次のような他の利点があります。

      ボリュームの速度—IRIとMongoのパフォーマンスアーキテクチャはどちらも線形に拡張するように設計されています クロスプラットフォームの互換性—これらのサポートされているソースから選択してください
    • 同じCoSort(SortCLプログラム、FieldShieldの親)ジョブスクリプトとI / Oパスでの同時データ統合、移行、レプリケーション、フェデレーション、およびレポート機能

    このプロセスについて質問がある場合、または以下にコメントする場合は、お問い合わせください。


    1. phpredisMACOSXをインストールします

    2. Redis-cli --csvオプション(csvへのエクスポート)

    3. オープンスタンダードの作成:ApacheAtlasを使用した機械学習ガバナンス

    4. Mongoose、Express、NodeJSでモデルを更新