
# 管理动态脱敏策略
在数据安全组件创建动态脱敏策略后，系统会将动态脱敏策略同步到数据源服务，由数据源对数据列按照指定规则进行动态脱敏。当策略中指定的用户和用户组在访问敏感数据时，系统会直接返回由数据源动态脱敏后的数据，保护敏感数据不被泄露。
值得注意的是，动态脱敏策略为DataArts Studio实例级别配置，各工作空间之间数据互通，全局可见并生效。
#### 前提条件
- 新建MRS Hive脱敏策略前，已完成如下操作：
  - 在管理中心创建MapReduce服务（MRS Ranger）类型的数据连接，请参考[创建DataArts Studio数据连接](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_1299.html)。
  
  - 已完成用户同步，将IAM上的用户信息同步到数据源上，详见[同步IAM用户到数据源](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_1154.html)。
   
- 新建DWS脱敏策略前，已完成如下操作：
  - 已在管理中心创建数据仓库服务（DWS）类型的数据连接，请参考[创建DataArts Studio数据连接](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_1299.html)。
  
  - 已完成用户同步，将IAM上的用户信息同步到数据源上，详见[同步IAM用户到数据源](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_1154.html)。
  
  - 已修改DWS集群"feature_support_options"参数的CN参数值和DN参数值均为"enable_data_redaction"，用于启用DWS动态脱敏能力，修改操作详见[修改DWS集群GUC参数](https://support.huaweicloud.com/mgtg-dws/dws_01_0152.html)。如果DWS集群没有feature_support_options参数，请联系DWS服务处理。
  
  - 数据连接中的账户要具备待控制表的GRANT权限（数据库对象创建后，默认只有对象所有者或者系统管理员可以通过GRANT命令将对象的权限授予其他用户）。
   
- MRS Hive和DWS动态脱敏策略为指定用户/用户组在数据源上关联策略，因此如果希望在DataArts Studio数据开发执行脚本、测试运行作业时，使用当前用户身份认证鉴权以实现动态脱敏策略生效，则需要[启用细粒度认证](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_1160.html)。
- 如果希望创建脱敏策略时能够查看哪些字段为敏感字段，则需要提前完成敏感数据发现任务，并通过"敏感数据分布"修正敏感数据字段的数据状态为"有效"。详情请参考[发现敏感数据](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_1013.html)和[查看敏感数据分布](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_1014.html)。
 
#### 约束与限制
- 仅DAYU Administrator、Tenant Administrator用户或者数据安全管理员可以创建、修改或删除动态脱敏策略，其他普通用户无权限操作。
- MRS Hive和DWS动态脱敏策略为指定用户/用户组在数据源上关联策略，因此如果希望在DataArts Studio数据开发执行脚本、测试运行作业时，使用当前用户身份认证鉴权以实现动态脱敏策略生效，则需要[启用细粒度认证](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_1160.html)。
- 当前动态脱敏策略仅支持MRS Hive、DWS数据源。
- 当前动态脱敏策略不支持连接串模式的MRS Hive数据源。
- 单条动态脱敏策略的配置维度为表级别，即一个表只允许绑定一个策略，一个策略也是只允许绑定一个表。只有处于"同步成功"状态的策略才能生效。
- MRS Hive动态脱敏时，MRS Ranger支持对同一列配置不同规则，按照配置的时间顺序先后匹配，因此可以配置多条同集群、同库表列的不同内容的脱敏策略。
- 当前MRS服务支持的脱敏规则如[表3]所示，但对中文字符仅支持NULL掩盖和哈希掩盖两种脱敏方式，如果选择其他脱敏方式则脱敏不生效。
  MRS Hive数据源的"SM3"、"自定义/保留前x后y"和"自定义/掩盖前x后y"这几种脱敏规则非MRS Ranger组件提供，而是通过UDF自定义函数实现的算法。因此如果使用这几种脱敏规则之一，则会上传算法依赖的JAR包到MRS集群，并需要提前授予Ranger数据连接中账号的创建UDF权限以及所有用户的使用UDF权限，详见[参考：配置Ranger组件中的UDF相关权限](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_1036.html#dataartsstudio_01_1036__section9772147131320)。
  
- DWS动态脱敏不支持DWS逻辑集群，脱敏前需启用DWS动态脱敏能力（修改DWS集群"feature_support_options"参数的CN参数值和DN参数值均为"enable_data_redaction"，修改操作详见[修改DWS集群GUC参数](https://support.huaweicloud.com/mgtg-dws/dws_01_0152.html)，如果集群没有feature_support_options参数，则需联系DWS服务处理），且DWS数据连接中的账户要具备待脱敏表的GRANT权限（数据库对象创建后，默认只有对象所有者或者系统管理员可以通过GRANT命令将对象的权限授予其他用户）。
- 当前DWS服务支持的脱敏规则如[表4]所示，不支持中文脱敏，如果对含有中文字符的数据进行脱敏则可能会出现乱码。
- 批量创建动态脱敏策略仅支持有敏感数据发现任务结果的敏感数据发现任务创建动态脱敏策略。
- 批量创建动态脱敏策略时，暂不支持根据敏感数据发现任务结果中不同的数据类型配置不同的脱敏规则，当前仅支持配置一种脱敏策略。如果待脱敏的数据类型和选择的规则不匹配，则脱敏不生效。不同数据类型支持的脱敏规则不同，详见[参考：动态脱敏规则介绍]。
- 批量创建动态脱敏策略，每次勾选的敏感数据发现任务最大数量为50。
 
#### 创建动态脱敏策略
1. [登录DataArts Studio管理控制台](https://console.huaweicloud.com/dayu/)。
   
   详情请参考[访问DataArts Studio实例控制台](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0001.html)。
   
   
2. 在DataArts Studio控制台首页，选择对应工作空间的"数据安全"模块，进入数据安全页面。
3. 单击左侧导航树中的"隐私保护管理 \> 动态脱敏"，进入动态脱敏页面。 
   图1进入动态脱敏页面   
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002501482636.png "点击放大")
   
   
   
   
4. 单击"新建"，进入新建动态脱敏策略页面，创建方式选择"自定义"，参数配置参考[表1]。
   
   图2新建动态脱敏策略参数配置   
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002533016441.png "点击放大")
   
   
   
   
   
   创建动态脱敏策略参数配置说明：
    表1配置策略参数 
   | 参数名      | 参数说明                                                                                                                                                                                                                                                                                       |
   |:---|:---|
   | \*策略名称   | 动态脱敏策略的唯一标识，DataArts Studio实例内的名称唯一。 为便于策略管理，建议名称中标明要脱敏的对象和脱敏规则。                                                                                                                                                      |
   | \*数据源类型  | 当前支持MRS Hive、DWS数据源。                                                                                                                                                                                                                                                                       |
   | **MRS Hive**                                                                                                                                                                                                                                                                                         ||
   | \*用户组/用户 | 指定当前工作空间成员中的用户或用户组。当指定对象在数据开发组件中查询或导出敏感数据时，系统会对敏感数据进行动态脱敏，保护敏感数据不被泄露。                                                                                                                                                                                                                      |
   | \*数据连接   | 从下拉列表中选择数据连接类型中已创建的数据连接，若未创建请参考[创建DataArts Studio数据连接](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_1299.html)新建连接。                                                                                                                                         |
   | \*集群名称   | 无需选择，自动匹配数据连接中的数据源集群。                                                                                                                                                                                                                                                                      |
   | \*数据库    | 选择敏感数据所在的数据库。                                                                                                                                                                                                                                                                              |
   | \*数据表    | 选择敏感数据所在的数据表。                                                                                                                                                                                                                                                                              |
   | \*数据列    | 您需要勾选一个或多个待脱敏列，并根据不同数据列的数据类型，选择合适的脱敏规则。各类数据源中不同数据类型支持的脱敏规则不同，详见[参考：动态脱敏规则介绍]。 另外，如果选中的库表列有进行过敏感数据发现并且敏感数据字段的数据状态为"有效"，则将密级和数据分类显示在数据列区域中。 |
   | **DWS**                                                                                                                                                                                                                                                                                              ||
   | \*用户组/用户 | 指定当前工作空间成员中的用户或用户组。当指定对象在数据开发组件中查询或导出敏感数据时，系统会对敏感数据进行动态脱敏，保护敏感数据不被泄露。                                                                                                                                                                                                                      |
   | \*数据连接   | 从下拉列表中选择数据连接类型中已创建的数据连接，若未创建请参考[创建DataArts Studio数据连接](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_1299.html)新建连接。                                                                                                                                         |
   | \*集群名称   | 无需选择，自动匹配数据连接中的数据源集群。                                                                                                                                                                                                                                                                      |
   | \*数据库    | 选择敏感数据所在的数据库。                                                                                                                                                                                                                                                                              |
   | \*schema | 选择敏感数据所在的schema。                                                                                                                                                                                                                                                                           |
   | \*数据表    | 选择敏感数据所在的数据表。                                                                                                                                                                                                                                                                              |
   | \*数据列    | 您需要勾选一个或多个待脱敏列，并根据不同数据列的数据类型，选择合适的脱敏规则。各类数据源中不同数据类型支持的脱敏规则不同，详见[参考：动态脱敏规则介绍]。 另外，如果选中的库表列有进行过敏感数据发现并且敏感数据字段的数据状态为"有效"，则将密级和数据分类显示在数据列区域中。                              |
      
   
   
5. 单击"确定"，完成动态脱敏策略创建。动态脱敏策略创建完成后，需要手动单击"同步"，将该策略同步到数据源中。
 
#### 批量创建动态脱敏策略
数据安全支持基于敏感数据发现结果，为敏感数据快速生成动态脱敏策略。
1. [登录DataArts Studio管理控制台](https://console.huaweicloud.com/dayu/)。
   
   详情请参考[访问DataArts Studio实例控制台](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0001.html)。
   
   
2. 在DataArts Studio控制台首页，选择对应工作空间的"数据安全"模块，进入数据安全页面。
3. 单击左侧导航树中的"隐私保护管理 \> 动态脱敏"，进入动态脱敏页面。 
   图3进入动态脱敏页面   
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002501482636.png "点击放大")
   
   
   
   
4. 单击"新建"，进入新建动态脱敏策略页面，创建方式选择"从敏感数据发现任务选择"，参考[表2]批量生成动态脱敏规则。
   
   图4批量创建动态脱敏策略参数配置   
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002533242909.png "点击放大")
    表2批量动态脱敏参数 
   | 参数名          | 参数说明                                                                                                                                                 |
   |:---|:---|
   | 数据源类型        | 当前支持非连接串模式的MRS Hive、DWS数据源。                                                                                                                          |
   | 敏感数据发现任务     | 选择敏感数据发现任务，用于为敏感数据发现任务发现的敏感字段，配置脱敏规则和白名单。需确保敏感数据发现任务中已有发现的敏感数据结果。                                                                                    |
   | 完成后自动同步已更新数据 | 选择是否更新之前已批量生成的动态脱敏策略。更新策略由高级配置决定。                                                                                                                    |
   | 脱敏规则         | 您需要根据敏感数据发现任务结果中敏感字段的数据类型，选择合适的脱敏规则。各类数据源中不同数据类型支持的脱敏规则不同，详见[参考：动态脱敏规则介绍]。 |
   | 用户组/用户       | 当数据源为MRS Hive和DWS时，需指定当前工作空间成员中的用户或用户组。当指定对象在数据开发组件中查询或导出敏感数据时，系统会对敏感数据进行动态脱敏，保护敏感数据不被泄露。                                                            |
      
   
   
5. 单击"确定"，完成批量创建动态脱敏策略任务。批量策略生成为异步操作，您可以通过日志查看生成状态，等待动态脱敏策略创建完成后，可以在表中查看生成的动态脱敏策略。 
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/public_sys-resources/note_3.0-zh-cn.png)
   如果敏感数据发现任务中没有发现敏感数据结果，或者结果未经确认但高级策略中的敏感字段范围配置为"有效字段"，则不会生成动态脱敏策略。
   
   
 
#### 相关操作
- 同步策略：在动态脱敏页面，单击对应任务操作栏中的"同步"，即可将该策略同步到数据源中。当需要批量同步时，可以在勾选策略后，在列表上方单击"同步"。 只有处于"同步成功"状态的策略才能生效。如果策略同步失败，可通过[查看策略详情]查看策略运行日志，通过日志排查同步失败原因。待问题修复后请重新同步，如果仍同步失败，请联系技术支持人员协助处理。
  
- 编辑策略：在动态脱敏页面，单击对应任务操作栏中的"编辑"，即可编辑动态脱敏策略。
- 删除策略：在动态脱敏页面，单击对应任务操作栏中的"删除"，在弹窗中再次确认后，即可删除策略。当需要批量删除时，可以在勾选策略后，在列表上方单击"删除"。
  ![](https://support.huaweicloud.com/usermanual-dataartsstudio/public_sys-resources/note_3.0-zh-cn.png)
  动态脱敏策略删除后将被转移至回收站中，您可以在30天内进行还原，在回收站中超过30天的数据将被自动删除。详见[管理回收站](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_1183.html)章节。
  
- 查看策略详情：在动态脱敏页面，通过同步状态筛选策略，通过策略名称、集群名称、数据库名、表名以及来源名称过滤查询策略，或直接找到需要查看的策略，单击策略名即可查看策略详情。存在"来源名称"的策略为基于敏感数据发现任务创建的动态脱敏策略。
  图5查看策略详情   
  ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000001730308689.png "点击放大")
  
  
 
 #### 参考：动态脱敏规则介绍
- MRS Hive动态脱敏规则由MRS Ranger组件提供，当前支持的规则如[表3]所示。
  ![](https://support.huaweicloud.com/usermanual-dataartsstudio/public_sys-resources/note_3.0-zh-cn.png)
  MRS Hive数据源的"SM3"、"自定义/保留前x后y"和"自定义/掩盖前x后y"这几种脱敏规则非MRS Ranger组件提供，而是通过UDF自定义函数实现的算法。因此如果使用这几种脱敏规则之一，则会上传算法依赖的JAR包到MRS集群，并需要提前授予Ranger数据连接中账号的创建UDF权限以及所有用户的使用UDF权限，详见[参考：配置Ranger组件中的UDF相关权限]。
  
- DWS动态脱敏规则由DWS提供，当前支持的规则如[表4]所示。
 表3MRS动态脱敏规则 
| 数据类型      | 掩盖英文字符和数字       | 保留后四位                    | 保留前四位                   | 哈希掩盖         | 掩盖月份和日期          | NULL掩盖  | SM3     | 自定义/保留前x后y | 自定义/掩盖前x后y |
|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|
| TINYINT   | 位数不变，将数值全部替换为1  | 无变化，最大值为127              | 无变化，最小值为-128            | 值变为NULL      | 位数不变，将数值全部替换为1   | 值变为NULL | 不支持     | 不支持        | 不支持        |
| SMALLINT  | 位数不变，将数值全部替换为1  | 无变化，最大值为12767            | 无变化，最大值为-32768          | 值变为NULL      | 位数不变，将数值全部替换为1   | 值变为NULL | 不支持     | 不支持        | 不支持        |
| INT       | 位数不变，将数值全部替换为1  | 保留后四位                    | 保留前四位                   | 值变为NULL      | 位数不变，将数值全部替换为1   | 值变为NULL | 不支持     | 不支持        | 不支持        |
| BIGINT    | 位数不变，将数值全部替换为1  | 保留后四位                    | 保留前四位                   | 值变为NULL      | 位数不变，将数值全部替换为1   | 值变为NULL | 不支持     | 不支持        | 不支持        |
| BOOLEAN   | 值变为NULL         | 值变为NULL                  | 值变为NULL                 | 值变为NULL      | 值变为NULL          | 值变为NULL | 不支持     | 不支持        | 不支持        |
| FLOAT     | 值变为NULL         | 值变为NULL                  | 值变为NULL                 | 值变为NULL      | 值变为NULL          | 值变为NULL | 不支持     | 不支持        | 不支持        |
| DOUBLE    | 值变为NULL         | 值变为NULL                  | 值变为NULL                 | 值变为NULL      | 值变为NULL          | 值变为NULL | 不支持     | 不支持        | 不支持        |
| STRING    | 英文字母变为x，数字变为n   | 中文无变化，字母等变为X             | 中文无变化且占一位，字母等变为X        | 全部被hash到64长度 | 中文无变化且占一位，字母等变为X | 值变为NULL | SM3算法加密 | 保留前x后y     | 掩盖前x后y     |
| TIMESTAMP | 值变为NULL         | 值变为NULL                  | 值变为NULL                 | 值变为NULL      | 值变为NULL          | 值变为NULL | 不支持     | 不支持        | 不支持        |
| CHAR      | 英文字母变为x，数字变为n   | 字母数字变为X，后面4位保留(定长有空格)    | 字母数字变为X，前面4位保留(定长有空格)   | 全部被hash到64长度 | 中文无变化且占一位，字母等变为X | 值变为NULL | SM3算法加密 | 保留前x后y     | 掩盖前x后y     |
| VARCHAR   | 英文字母变为x，数字变为n   | 后四位被保留(中文无变化且占一位)，字母等变为X | 前四位被保留(中文无变化且占一位)字母等变为X | 全部被hash到64长度 | 中文无变化且占一位，字母等变为X | 值变为NULL | SM3算法加密 | 保留前x后y     | 掩盖前x后y     |
| DATE      | 年月日变为0001-01-01 | 年月日变为0001-01-01          | 年月日变为0001-01-01         | 值变为NULL      | year保留，其他数值变为01  | 值变为NULL | 不支持     | 不支持        | 不支持        |
   
 表4DWS动态脱敏规则 
| 数据类型                                                                                                                                                                                         | 全掩码      | 保留后4位，其余脱敏为'\*'  | 保留前2位，其余脱敏为'\*'  | 自定义               |
|:---|:---|:---|:---|:---|
| **字符类型** bpchar、varchar、text、inet、macaddr、uuid、char、txt                                                                                              | 全部脱敏为空。  | 后四位被保留，其余脱敏为"\*" | 前两位被保留，其余脱敏为"\*" | 自定义脱敏开始和结束位置，脱敏字符 |
| **数值类型** numeric、int2、int8、money、float8、float4、interval、decimal、double precision、real、integer、smallint、bigint                                      | 全部脱敏为"0" | 不支持              | 不支持              | 自定义脱敏开始和结束位置，脱敏字符 |
| **时间类型** timestamp、time、timetz、timestamptz、date、time without time zone、timestamp without time zone、time without time zone、timestamp without time zone | 全部脱敏为固定值 | 不支持              | 不支持              | 自定义勾选脱敏目标为年、月、日等  |
| **其他类型**                                                                                                                                                                                     | 全部脱敏为固定值 | 不支持              | 不支持              | 不支持               |
   
 #### 参考：配置Ranger组件中的UDF相关权限
配置MRS Hive数据源动态脱敏策略时，如果选择"SM3"、"自定义/保留前x后y"或"自定义/掩盖前x后y"脱敏规则，则会上传算法依赖的JAR包到MRS集群，并需要提前授予Ranger数据连接中账号的创建UDF权限以及所有用户的使用UDF权限，授权操作详情如下：
1. 使用admin账户登录MRS服务的Manager页面。
2. 在Manager页面选择"集群 \> 服务 \> Ranger"，进入Ranger概览页面，单击RangerAdmin进入Ranger WebUI。 
   图6进入Ranger WebUI   
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000001780737385.png "点击放大")
   
   
   
3. 注销当前账号，使用Ranger管理员账号再次登录。注意，普通集群使用登录Manager页面的admin账号即可作为Ranger管理员账号，安全集群需要使用rangeradmin作为Ranger管理员账号，rangeradmin默认密码请参考[用户账号一览表](https://support.huaweicloud.com/usermanual-mrs/admin_guide_000239.html)章节。
   
   图7登出当前账号   
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000001733697994.png "点击放大")
   
   
4. 在首页中单击"HADOOP SQL"区域的组件插件名称如"Hive"。
5. 在"Access"页签，单击**Add New Policy** ，进入新建策略页面。
   
   图8策略列表   
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000001799182416.png "点击放大")
   
   
6. 在新建策略页面，配置策略内容，授予Ranger数据连接中账号的创建UDF权限以及所有用户的使用UDF权限。 
   - **Policy Name**：策略名，自定义即可，本例以"create_udf_access"为例进行说明。
   
   - **database**：数据库选择"default"，创建的UDF默认位于default库下。
   
   - **udf**：UDF选择"\*"，匹配所有UDF函数。
   
   - **权限1-Ranger数据连接** **中账号的创建UDF权限** ：
     - **Select User**：用户名选择Ranger数据连接中账号。
     
     - **Permissions**：权限选择"Create"，即创建UDF权限。
      
   
   - **权限2-** **所有用户的使用UDF权限：**
     - **Select Group**：用户组选择public，即所有用户。
     
     - **Permissions**：权限选择"select"，即使用UDF权限。
     
     
     图9策略内容   
     ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000001845741601.png "点击放大") 
   
   
   
   
7. 策略内容配置完成后，单击下方的**add**，完成权限配置。
 
