使用数据屏蔽隐藏敏感信息 - Amazon 数据库迁移服务
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用数据屏蔽隐藏敏感信息

要隐藏存储在要迁移的表的一列或多列中的敏感数据,可以利用数据屏蔽转换规则操作。从版本 3.5.4 开始, Amazon DMS 允许在表映射中使用数据屏蔽转换规则操作,使您能够在迁移过程中更改一列或多列的内容。 Amazon DMS 将修改后的数据加载到目标表中。

Amazon Database Migration Service 为数据屏蔽转换规则操作提供了三个选项:

  • 数据屏蔽:数字掩码

  • 数据屏蔽:数字随机化

  • 数据屏蔽:哈希掩码

与其他转换规则类似,可以在复制任务的表映射中配置这些数据屏蔽转换规则操作。规则目标应设置为列级别。

使用掩码字符掩盖列数据中的数字

“数据屏蔽:数字掩码” 转换规则操作允许您使用您指定的单个ASCII可打印字符(不包括空字符或空格字符)替换数字,从而掩盖一列或多列中的数字数据。

以下示例使用掩码字符掩盖customer_mastercust_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_nocustomer_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