本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用数据屏蔽隐藏敏感信息
要隐藏存储在要迁移的表的一列或多列中的敏感数据,可以利用数据屏蔽转换规则操作。从版本 3.5.4 开始, Amazon DMS 允许在表映射中使用数据屏蔽转换规则操作,使您能够在迁移过程中更改一列或多列的内容。 Amazon DMS 将修改后的数据加载到目标表中。
Amazon Database Migration Service 为数据屏蔽转换规则操作提供了三个选项:
数据屏蔽:数字掩码
数据屏蔽:数字随机化
数据屏蔽:哈希掩码
与其他转换规则类似,可以在复制任务的表映射中配置这些数据屏蔽转换规则操作。规则目标应设置为列级别。
使用掩码字符掩盖列数据中的数字
“数据屏蔽:数字掩码” 转换规则操作允许您使用您指定的单个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”,则 Amazon DMS 任务会将此数据写入目标表。"C#BGJ######K"
用随机数替换列中的数字
转换规则 “数据屏蔽:随机数字” 允许您将一列或多列中的每个数字替换为随机数。在以下示例中, Amazon 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" } ] }
例如,该 Amazon DMS 任务会将源表cust_passport_no
列"C6BGJ566669K"
中的值转换为目标数据库"C1BGJ842170K"
并将其写入目标数据库。
用哈希值替换列数据
转换规则 “数据屏蔽:哈希掩码” 允许您将列数据替换为使用该SHA256
算法生成的哈希值。哈希值的长度将始终为 64 个字符,因此目标表列的长度应至少为 64 个字符。或者,您可以向列添加change-data-type
转换规则操作,以增加目标表中列的宽度。
以下示例为源表列中的数据生成一个 64 个字符长的哈希值,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": "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”
,则 t Amazon DMS ask 将“7CB06784764C9030CCC41E25C15339FEB293FFE9B329A72B5FED564E99900C75”
向目标表写入哈希。
限制
每个数据屏蔽转换规则选项仅支持特定 Amazon DMS 数据类型:
数据掩码:数据类型的列支持数字掩码:
WSTRING
和。STRING
数据屏蔽:数据类型列支持数字随机化:无
WSTRING, STRING; NUMERIC, INT1, INT2, INT4, and INT8
符号对应列。数据屏蔽:数据类型的列支持哈希掩码:
WSTRING
和。STRING
要详细了解如何将 Amazon DMS 数据类型映射到源引擎的数据类型,请参阅源引擎与数据类型的 Amazon DMS 数据类型映射。请参阅Oracle 的源数据类型、SQL Server 的源数据类型Postgre 的源数据类型 SQL、和的源数据类型“我的” 的源数据类型 SQL。
对数据类型不兼容的列使用数据屏蔽规则操作会导致DMS任务出错。要 DataMaskingErrorPolicy 指定错误处理行为,请参阅DMS任务设置。有关
DataMaskingErrorPolicy
的更多信息,请参阅 错误处理任务设置。如果您计划使用的掩码选项不支持您的源列类型,则可以添加 change-data-type转换规则操作,将列的数据类型更改为兼容类型。
change-data-type
转换rule-id
的数字应小于掩码转换的规则 ID,以便在掩码之前发生数据类型更改。使用 Data Masking:Hashing Mask 操作对主键/唯一键/外键列进行掩码,因为生成的哈希值将是唯一且一致的。其他两个掩码选项不能保证唯一性。
虽然数据屏蔽:数字掩码和数据屏蔽:数字随机化仅影响列数据中的数字而不影响数据长度,但数据掩码:哈希掩码会修改整列,数据长度更改为 64 个字符。因此,应相应地创建要创建的目标表或为被屏蔽的列添加 change-data-type转换规则。
中将指定了 “数据屏蔽转换规则” 操作的列排除在 Amazon DMS数据验证之外。如果主键/唯一键列被屏蔽,则不会对此表运行数据验证;该表的验证状态将等于。
No Primary key