

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用資料遮罩來隱藏敏感資訊
<a name="CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Masking"></a>

若要隱藏儲存在要遷移之資料表的一或多個資料欄中的敏感資料，您可以利用資料遮罩轉換規則動作。從 3.5.4 版開始， AWS DMS 允許在資料表映射中使用資料遮罩轉換規則動作，讓您在遷移程序期間變更一或多個資料欄的內容。 會將修改的資料 AWS DMS 載入目標資料表。

AWS Database Migration Service 提供三種資料遮罩轉換規則動作的選項：
+ 資料遮罩：數字遮罩
+ 資料遮罩：數字隨機化
+ 資料遮罩：雜湊遮罩

這些資料遮罩轉換規則動作可在複寫任務的資料表映射中設定，類似於其他轉換規則。規則目標應設定為資料欄層級。

## 使用遮罩字元遮罩資料欄中的數字
<a name="CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Masking.Numbers"></a>

「資料遮罩：數字遮罩」轉換規則動作可讓您將數字取代為您指定的單一 ASCII 可列印字元 （不含空白或空格字元），以遮罩一或多個資料欄中的數值資料。

以下是使用遮罩字元遮罩`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"`。

## 以隨機數字取代資料欄中的數字
<a name="CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Masking.Random"></a>

轉換規則「資料遮罩：數字隨機化」可讓您將一或多個資料欄中的每個數字取代為隨機數字。在下列範例中， `customer_master`會以隨機數字 AWS DMS 取代來源資料表資料`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-randomize"
        }
    ]
}
```

例如， AWS DMS 任務會將來源資料表 `"C6BGJ566669K"``cust_passport_no`欄中的值轉換為 ，`"C1BGJ842170K"`並將其寫入目標資料庫。

## 將資料欄資料取代為雜湊值
<a name="CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Masking.Hash"></a>

轉換規則「資料遮罩：雜湊遮罩」可讓您將資料欄資料取代為使用`SHA256`演算法產生的雜湊。雜湊的長度一律為 64 個字元，因此目標資料表資料欄長度至少應為 64 個字元。或者，您可以將`change-data-type`轉換規則動作新增至資料欄，以增加目標資料表中資料欄的寬度。

下列範例會為來源資料表資料`cust_passport_no`欄中的資料產生 64 個字元長的雜湊值，`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": "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 更小，因此資料類型變更會在遮罩之前發生。
+ 使用資料遮罩：遮罩主索引鍵/唯一索引鍵/外部索引鍵資料欄的雜湊遮罩動作，因為產生的雜湊值將是唯一且一致。其他兩個遮罩選項無法保證唯一性。
+ 資料遮罩：數字遮罩和資料遮罩：數字隨機化只會影響資料欄資料中的數字，不會影響資料長度，資料遮罩：雜湊遮罩會修改整個資料欄，資料長度變更為 64 個字元。因此，應該為要遮罩的資料欄新增要相應建立的目標資料表或 change-data-type 轉換規則。
+ 具有指定資料遮罩轉換規則動作的資料欄會從資料驗證中排除 AWS DMS。如果遮罩主索引鍵/唯一索引鍵資料欄，將不會對此資料表執行資料驗證；該資料表的驗證狀態將等於 `No Primary key`。