データマスキングを使用して機密情報を非表示にする - AWS Database Migration Service

データマスキングを使用して機密情報を非表示にする

移行するテーブルの 1 つ以上の列に保存されている機密データを非表示にする場合、データマスキングの変換ルールアクションを活用できます。バージョン 3.5.4 以降、AWS DMS はテーブルマッピングでデータマスキングの変換ルールアクションが使用できるようになっているため、移行プロセス中に 1 つ以上の列の内容を変更できます。AWS DMS は、この変更されたデータをターゲットテーブルにロードします。

AWS Database Migration Service では、データマスキングの変換ルールアクションに 3 つのオプションを提供しています。

  • データマスキング: 数字マスク

  • データマスキング: 数字のランダム化

  • データマスキング: ハッシュマスク

これらのデータマスキング変換ルールアクションは、他の変換ルールと同様に、レプリケーションタスクのテーブルマッピングで設定できます。ルールターゲットは列レベルに設定する必要があります。

マスキング文字を使用して列データの数値をマスキングする

「データマスキング: 数字マスク」変換ルールアクションでは、数字を指定した 1 つの ASCII 印刷可能文字 (空の文字または空白文字を除く) に置き換えることで、1 つ以上の列の数値データをマスクできます。

customer_master テーブルの cust_passport_no 列内のすべての桁をマスキング文字 '#' でマスクし、マスクされたデータをターゲットテーブルにロードする例を次に示します。

{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "cust_schema", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-target": "column", "object-locator": { "schema-name": "cust_schema", "table-name": "customer_master", "column-name": "cust_passport_no" }, "rule-action": "data-masking-digits-mask", "value": "#" } ] }

例えば、ソーステーブルの列 cust_passport_no にレコード「C6BGJ566669K」が含まれている場合、AWS DMS タスクはこのデータをターゲットテーブルに "C#BGJ######K" として書き込みます。

列内の数字を乱数に置き換える

変換ルール「データマスキング: 数字のランダム化」では、1 つ以上の列の各数値を乱数に置き換えることができます。次の例では、AWS DMS はソーステーブルの cust_passport_no 列のすべての桁を乱数に置き換え、変更されたデータをターゲットテーブル customer_master に書き込みます。

{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "cust_schema", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-target": "column", "object-locator": { "schema-name": "cust_schema", "table-name": "customer_master", "column-name": "cust_passport_no" }, "rule-action": "data-masking-digits-randomize" } ] }

例えば、AWS DMS タスクはソーステーブルの cust_passport_no 列の値 "C6BGJ566669K""C1BGJ842170K" に変換し、ターゲットデータベースに書き込みます。

列データをハッシュ値に置き換える

変換ルール「データマスキング: ハッシュマスク」では、列データを SHA256 アルゴリズムを使用して生成されたハッシュに置き換えることができます。ハッシュの長さは常に 64 文字です。したがって、ターゲットテーブルの列の長さは 64 文字以上とする必要があります。または、change-data-type 変換ルールアクションを列に追加して、ターゲットテーブルの列の幅を拡大することもできます。

次の例では、ソーステーブル customer_mastercust_passport_no 列のデータに長さ 64 文字のハッシュ値を生成し、列の長さを拡大した後、変換されたデータをターゲットテーブルにロードします。

{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "cust_schema", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-target": "column", "object-locator": { "schema-name": "cust_schema", "table-name": "customer_master", "column-name": "cust_passport_no" }, "rule-action": "change-data-type", "data-type": { "type": "string", "length": "100", "scale": "" } }, { "rule-type": "transformation", "rule-id": "3", "rule-name": "3", "rule-target": "column", "object-locator": { "schema-name": "cust_schema", "table-name": "customer_master", "column-name": "cust_passport_no" }, "rule-action": "data-masking-hash-mask" } ] }

例えば、ソーステーブルの cust_passport_no 列に値 “C6BGJ566669K” が含まれている場合、AWS DMS タスクはターゲットテーブルにハッシュ値 “7CB06784764C9030CCC41E25C15339FEB293FFE9B329A72B5FED564E99900C75” を書き込みます。

制限

  • データマスキング変換ルールのそれぞれのオプションは、特定の AWS DMS データ型でのみサポートされています。

    • データマスキング: 数字マスクは、WSTRING および STRING のデータ型の列でサポートされています。

    • データマスキング: 数字のランダム化は、符号なしの WSTRING, STRING; NUMERIC, INT1, INT2, INT4, and INT8 に対応するデータ型の列でサポートされています。

    • データマスキング: ハッシュマスクは、WSTRING および STRING のデータ型の列でサポートされています。

    AWS DMS のデータ型をソースエンジンのデータ型にマッピングする詳細については、AWS DMS データ型を使用したソースエンジンのデータ型のマッピングを参照してください。Oracle のソースデータ型SQL Server のソースデータ型PostgreSQL のソースデータ型MySQL のソースデータ型 のソースデータ型を参照してください。

  • 互換性のないデータ型の列にデータマスキングのルールアクションを使用すると、DMS タスクでエラーが発生します。DMS タスク設定の DataMaskingErrorPolicy を参照して、エラー処理の動作を指定してください。DataMaskingErrorPolicy の詳細については、「エラー処理タスクの設定」を参照してください。

  • 使用するマスキングオプションでソース列タイプがサポートされていない場合は、change-data-type の変換ルールアクションを追加して、列のデータ型を互換性のある型に変更できます。change-data-type 変換の rule-id は、マスキング前にデータ型が変更されるように、マスキング変換の rule-id よりも小さい数値にする必要があります。

  • 生成されるハッシュ値は一意で一貫性を持つため、プライマリキー/一意のキー/外部キーの列のマスキングにはデータマスキング: ハッシュマスクのアクションを使用します。他の 2 つのマスキングオプションでは、一意性を保証できません。

  • データマスキング: 数字マスクとデータマスキング: 数字のランダム化は、列データ内の数字にのみ影響し、データの長さには影響しません。ただし、データマスキング: ハッシュマスクは列全体を変更し、データの長さは 64 文字に変更されます。したがって、マスクされる列に、それに応じて作成されるターゲットテーブルか、change-data-type の変換ルールを追加する必要があります。

  • データマスキングの変換ルールアクションが指定された列は、AWS DMS のデータ検証から除外されます。プライマリキー/一意のキー列がマスクされている場合、このテーブルのデータ検証は実行されません。このようなテーブルの検証ステータスは No Primary key に等しくなります。