

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# データマスキングを使用して機密情報を非表示にする
<a name="CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Masking"></a>

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

AWS Database Migration Service には、データマスキング変換ルールアクションの 3 つのオプションがあります。
+ データマスキング: 数字マスク
+ データマスキング: 数字のランダム化
+ データマスキング: ハッシュマスク

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

## マスキング文字を使用して列データの数値をマスキングする
<a name="CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Masking.Numbers"></a>

「データマスキング: 数字マスク」変換ルールアクションでは、数字を指定した 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`にレコード「C6BGJ56669K」が含まれている場合、 AWS DMS タスクはこのデータをターゲットテーブルに として書き込みます`"C#BGJ######K"`。

## 列内の数字を乱数に置き換える
<a name="CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Masking.Random"></a>

変換ルール「データマスキング: 数字のランダム化」では、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"`し、ターゲットデータベースに書き込みます。

## 列データをハッシュ値に置き換える
<a name="CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Masking.Hash"></a>

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

次の例では、ソーステーブル `customer_master` の `cust_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”`にハッシュを書き込みます。

## 制限事項
<a name="CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Masking.Limitations"></a>
+ 各データマスキング変換ルールオプションは、特定の AWS DMS データ型でのみサポートされています。
  + データマスキング: 数字マスクは、`WSTRING` および `STRING` のデータ型の列でサポートされています。
  + データマスキング: 数字のランダム化は、符号なしの `WSTRING, STRING; NUMERIC, INT1, INT2, INT4, and INT8 ` に対応するデータ型の列でサポートされています。
  + データマスキング: ハッシュマスクは、`WSTRING` および `STRING` のデータ型の列でサポートされています。

  データ型のソースエンジン AWS DMS のデータ型へのマッピングの詳細については、ソースエンジンのデータ型と AWS DMS データ型のマッピングを参照してください。[Oracle のソースデータ型](CHAP_Source.Oracle.md#CHAP_Source.Oracle.DataTypes)、[SQL Server のソースデータ型](CHAP_Source.SQLServer.md#CHAP_Source.SQLServer.DataTypes)、[PostgreSQL のソースデータ型](CHAP_Source.PostgreSQL.md#CHAP_Source-PostgreSQL-DataTypes)、[MySQL のソースデータ型](CHAP_Source.MySQL.md#CHAP_Source.MySQL.DataTypes) のソースデータ型を参照してください。
+ 互換性のないデータ型の列にデータマスキングのルールアクションを使用すると、DMS タスクでエラーが発生します。DMS タスク設定の DataMaskingErrorPolicy を参照して、エラー処理の動作を指定してください。`DataMaskingErrorPolicy` の詳細については、「[エラー処理タスクの設定](CHAP_Tasks.CustomizingTasks.TaskSettings.ErrorHandling.md)」を参照してください。
+ 使用するマスキングオプションでソース列タイプがサポートされていない場合は、change-data-type の変換ルールアクションを追加して、列のデータ型を互換性のある型に変更できます。`change-data-type` 変換の `rule-id` は、マスキング前にデータ型が変更されるように、マスキング変換の rule-id よりも小さい数値にする必要があります。
+ 生成されるハッシュ値は一意で一貫性を持つため、プライマリキー/一意のキー/外部キーの列のマスキングにはデータマスキング: ハッシュマスクのアクションを使用します。他の 2 つのマスキングオプションでは、一意性を保証できません。
+ データマスキング: 数字マスクとデータマスキング: 数字のランダム化は、列データ内の数字にのみ影響し、データの長さには影響しません。ただし、データマスキング: ハッシュマスクは列全体を変更し、データの長さは 64 文字に変更されます。したがって、マスクされる列に、それに応じて作成されるターゲットテーブルか、change-data-type の変換ルールを追加する必要があります。
+ データマスキングの変換ルールアクションが指定された列は、 AWS DMSのデータ検証から除外されます。プライマリキー/一意のキー列がマスクされている場合、このテーブルのデータ検証は実行されません。このようなテーブルの検証ステータスは `No Primary key` に等しくなります。