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

テーブルをマスクして参照整合性を維持する方法

    「新しいマルチテーブル保護ジョブ…」 この記事で説明するIRIWorkbenchのウィザードは、IRI FieldShield製品(またはIRI Voracityプラットフォーム)のユーザーが、外部キー関係の一部であるデータベース列の個人情報(PII)を自動的にマスクして、参照整合性を維持する方法の1つです。テーブルの間。これにより、匿名化された後もレコードがリンクされたままになります。

    2018年以降、これと同じ結果を達成するためのより新しく、より堅牢な方法が、複数のデータベーステーブルの分類、検出、およびマスキングに関する記事で公開されていることに注意してください。 こちらのYoutubeビデオ1、2、3、5、7で紹介されています。

    ただし、この元の人気のあるウィザードでは、ユーザーは、同じ名前の列に自動的かつ一貫して適用されるフィールドレベルのマスキングルールを定義することにより、参照整合性を維持します。 FieldShieldユーザーが利用できる14ほどのカテゴリのデータマスキング機能(暗号化、仮名化、編集など)は、このようなルールに基づいて適用できます。

    このウィザードは、すべてがPIIを含まないスキーマ内の複数のテーブルをマスクおよびマッピングするユーザーに最適です。 たとえば、50個のテーブルがあり、それらすべてを下位環境に移動する必要があるが、一貫してマスクするためにPIIを含むテーブルは20個しかない場合(他の30個にはPIIがない)、IRIはこのウィザードをお勧めします。

    この例では、Departments、Employees、およびJob_Historyの3つのOracleテーブルのみを使用して、このウィザードがどのように機能するかを示しています。テーブルが最初に設計されたとき、従業員の社会保障番号がIDに使用されていました。これにより、IDフィールドを表示するレポートを実行するときにセキュリティリスクが発生します。

    上記のこれらのテーブルのE-Rダイアグラム、およびSQLクエリとその結果はすべて、FieldShieldビューのさまざまなIRIWorkbenchGUIに表示されます。この記事re:IRIWorkbenchでのERDの作成を参照してください。クエリは、従業員、マネージャー、および部門に関する情報を結合しましたが、従業員SIDおよびマネージャーSID列の社会保障番号(SSN)値を公開します。 IRIWorkbenchでのSQLジョブのコーディングと実行に関するこの記事を参照してください。

    FieldShieldマルチテーブル保護ジョブの使用 ウィザードでは、これらのフィールドを暗号化(または匿名化)して、実際のSSNがテーブルと後続のクエリでマスクされるようにすることができます。 1つのルールを使用してすべてのテーブルに同じ暗号化が適用されるため、参照整合性が維持されます。

    ウィザードのセットアップページで、ローダーとしてODBCが選択されています。前述の3つのテーブルは、[データ抽出]ページで選択されています。次のページは、フィールド変更ルールページです。このページでは、選択したすべての抽出テーブルに適用するルールを設計できます。

    [作成]をクリックします フィールドルールマッチャーページが開きます。ここにマッチャーの詳細が入力されます。マッチャー名を入力することから始めます。

    作成をクリックした後 ルール名の横 、[新しい保護フィールドルールウィザードの選択]ページが表示されます。 暗号化または復号化機能を選択します 。この選択により、同じ保護アルゴリズムがすべてのデータに適用され、参照整合性が保証されます。

    次のページでは、暗号化のタイプを選択します。この場合、 enc_fp_aes256_ascii 使用されている。このフォーマット保存暗号化アルゴリズムは、ASCII文字セットを使用して実際のデータを置き換えます。このデモンストレーションでは、暗号化が出力で目立つように使用されます。より現実的な選択は、通常、英数字です。 バージョン。SSNの実際の外観も保持されます(この場合は9つの数字)。

    この例では埋め込みパスフレーズを使用していますが、環境変数と同様に、パスワードファイルを暗号化キーに使用することもできます。

    [完了]をクリックします このルールをマッチャーに入力します。次に、マッチャー自体を作成する必要があります。 [追加]をクリックします マッチャー セクション。これにより、[フィールドルールマッチャーの詳細]ページが開きます。ここでは、パターンまたはデータクラスのいずれかを使用できます。 2番目のオプションの詳細については、「分類を使用したフィールドルールの適用」の記事を参照してください。

    この例では、パターン が選択され、詳細に。*SIDが入力されます。この正規表現は、SIDで終わるすべての列名と一致します。

    マッチャーは、以下に表示される詳細で終了します。 テスト ボタンを使用してマッチャーをテストし、目的のすべての列に一致していることを確認できます。複数のマッチャーの詳細を入力でき、AND/ORロジックを使用してきめ細かいマッチャーを作成できます。たとえば、 VP_SSNという名前の追加の列があります 。上記の同じマッチャーは、パターンが。* SSNの別のマッチャーで使用できます。 および演算子AND この追加の列に一致しますが、同じルールを使用します。

    [ OK]をクリックします ここで、各ルールマッチャーが表示される[ルール]ページに戻ります。さまざまなフィールドにさまざまなマッチャーを使用できるため、ルールがさまざまな列をさまざまな方法でマスクする場合でも、必要な変換パスは1つだけです。

    [次へ]をクリックします データ読み込みステージページが表示されます。ここで、出力テーブルとオプションが選択されます。この例では、入力テーブルと同じテーブルが選択されています。さらに、出力モードが作成に変更されます 一意のキーに違反しないように、ロードする前にテーブルを切り捨てます。

    [完了]をクリックした後 、フォルダは、含まれているバッチファイルで実行される複数のスクリプトで作成されます。

    ルールがフィールドをどのように変換するかを確認し、手動で変更する機会を与えるには、 SCOTT_EMPLOYEES.fcl スクリプトは、Workbenchエディターで確認できます。出力では、両方の EMPLOYEE_SID およびMANAGER_SID 適用された暗号化アルゴリズムを表示します。

    バッチファイルを実行した後、同じSQLクエリは同じ結合結果を表示しますが、 Employee_SID およびManager_SID 暗号化されました。さらに、参照整合性が維持されます。元の従業員とマネージャーの関係は維持され、2行目のマネージャーと26行目の従業員のIDは同じです。

    この例は、参照整合性を維持しながら、複数のテーブルの複数の列で1つの暗号化ルールを使用する方法を示しています。ジョブウィザード中に作成されたルールはすべて、ルールライブラリに保存されます。これにより、それらを再利用したり、同僚と共有したりできるため、同じデータで同じ結果が保証されます。

    FieldShieldデータマスキングルールについて質問がある場合、またはデータ検出またはマスキングウィザードの使用についてサポートが必要な場合は、IRI担当者にお問い合わせください。


    1. Oracleディクショナリ・ビューを使用してPL/SQLパッケージレベルのタイプを検出

    2. ダウンタイムなしでPostgreSQL11をPostgreSQL12にアップグレードする方法

    3. Rails 3.1:時間範囲内のレコードのPostgresへのクエリ

    4. Oracle/TOADでのコンパイルエラーに関する情報を取得する方法