sql >> データベース >  >> RDS >> Database

DBアプリケーションでのデータマスキング

    保存中および移動中のデータの保護

    テーブルを更新およびクエリするデータベースアプリケーションは、それらのテーブルに入るデータ、またはそれらのテーブルから取得されるデータを保護する必要がある場合があります。機密データは、テーブルに入る途中、テーブルに入るとき、またはテーブルから出るときに保護する必要があります。いずれの場合も、目的は、権限のない人が機密と見なされる特定の行または列の値にアクセスしないようにすることです。

    リレーショナルデータベースの通常の形式(構造化)データの場合、IRI FieldShieldスタンドアロンデータマスキングユーティリティ、または呼び出し可能なマスキング関数の互換性のあるライブラリは、上記のシナリオに対応でき、静的(永続的、休止中)と動的( -transit)データマスキングオプション。半構造化および非構造化RDB列(テキスト、C / BLOB、XML / JSONなど)内でランダムに変動するPII / PHI値もある場合は、IRIDarkShieldアプローチに関するこの記事を参照してください。

    ただし、ほとんどのRDBユーザーは固定列値の検索とマスキングに関心があるため、この記事ではFieldShieldオプションについて説明します。 FieldShieldユーザーは、DBテーブル内のデータを分類、検索、およびマスクできます。アプリケーションユーザーの場合は、次の方法で実行できます。

    • 本番テーブルでの静的データマスキング、および承認されたアプリユーザーによる動的アンマスキング
    • メタデータ互換の変換、クレンジング、またはレポートジョブに埋め込まれたマスキング機能
    • プロキシベースの動的データ編集システム
    • SDK APIまたはシステムを介して、プログラムから呼び出します
    • その場で、カスタムライブラリを使用したSQLプロシージャを介して

    データがMongoDB、Cassandra、Elasticsearch、MarkLogicなどのNoSQLデータベースにある場合、FieldShieldは構造化コレクションを処理し、DarkShieldは構造化コレクションと非構造化コレクションの両方を処理します。

    デフォルトでは、IRI Workbench GUIがFieldShieldをエンドユーザーとDBAに提示する方法で、1つ以上の完全なテーブルは通常、ビジネスルールに従って静的データマスキング機能(暗号化、編集、仮名化など)で保護されます。各「フィールド(列)シールド」の選択は、セキュリティ、リアリズム、可逆性、そしておそらくCPUまたはストレージの考慮事項に基づいて行う必要があります。

    静的アプローチは、データが保存されているときに正常に機能します。ソーステーブルを保護するか、保護が適用された新しいターゲットテーブルまたはファイルを作成できます。保護されたデータをフェッチするアプリケーションは、データソースが事前に保護されているため、セキュリティについて心配する必要はありません。保存データを保護するように設計されたFieldShieldプログラムは、定期的な更新のためにスケジュールしたり、バッチジョブに呼び出したりすることもできます。

    ただし、更新された行を動的に保護する必要があるリアルタイム環境では、FieldShield機能をアプリケーションのデータフローに統合する必要があります。考慮すべきいくつかのアプローチがあります:

    1)プログラムがFieldShieldを呼び出す
    新しいデータや変更されたデータをテーブルからフェッチしたり、テーブルに送信したりするデータベースやその他のプログラムは、C、Java、または.NETのFieldShield暗号化、ハッシュ、エンコーディング、または編集API関数にデータを渡すことができます。パイプまたは入力プロシージャを介して、移動中のデータをスタンドアロンのFieldShieldプログラムに渡すこともできます。これらの方法はいずれも、列レベルの保護(または公開)機能が適用されたターゲットを設定できます。

    2)FieldShieldは更新のみを保護します
    FieldShieldプログラムは、/QUERY関数と/UPDATE関数を使用してカスタマイズしたり、保護する行が新しさなどの特定の基準を満たす新しいレコードのみを条件付きでフィルタリングしたりすることもできます。 API呼び出しにより、さらにきめ細かいビジネスロジックが可能になり、より多くのデータの「速度」(またはレイテンシ)条件(たとえば、よりリアルタイムのデータマスキング)が容易になります。これは、これらのニーズをアプリケーションを通じて表現し、そのロジックで定義できるためです。トリガーに基づくリアルタイムマスキングのこのPL/SQLの例を参照してください。

    3)CoSort(FieldShield Parent)でデルタをキャプチャして保護する
    データキャプチャの変更(CDC)ジョブは、CoSortの並べ替え制御言語(SortCL)でプログラムすることもできます。これにより、選択した挿入、更新、削除、または変更されていない行のみが、列保護が適用されたテーブルまたはファイルに渡されます。 CoSortユーザーは、すべてのFieldShield保護機能を自由に使用できるため、この一括レポートパラダイムでは変更されたデータのみをマスクすることができます。

    4)プロキシベースのクエリインターセプト
    IRIは、アプリケーションが使用する特別な「JDBC SQL Trail」ドライバーを提供するようになりました。このドライバーは、許可されたユーザーおよび特定のテーブルと列のDBクエリをフィルター処理します。 DDMポリシー定義が免除されていない場合は、データベースから特別に接続されたアプリケーションに送信中の完全または部分的に編集された値のみが表示され、保存時にマスクされないままになります。

    5)カスタム統合
    IRIは、DBAまたはアプリケーションプログラマーと連携して、上記の要素を含む特注のソリューションを設計したり、SQLプロシージャがこのようなin-situで呼び出してクエリを保護または公開(暗号化または復号化)できるFieldShieldライブラリを提供したりできます。結果、クエリテーブル、マテリアライズドビューなど。

    墨消しやフォーマット保存暗号化などの動的データマスキング機能をアプリケーションに統合する方法については、お問い合わせください。


    1. OracleODP.NetおよびEFCodeFirstと連携するようにDbContextを構成するにはどうすればよいですか。

    2. データベースの削除中にエラーが発生しました(rmdir'.test \'ができません、errno:17)

    3. IntelXeonスケーラブルプロセッサとSQLServer2017

    4. MySQLドロップビュー