更新时间:2025-09-04 GMT+08:00
分享

使用HetuEngine动态脱敏功能

背景介绍

虽然Ranger已经支持了静态脱敏的能力,但是静态脱敏后会出现数据不可用的问题,主要表现为:

  • 脱敏的数据无法匹配谓词过滤
  • 脱敏后的数据无法进行Join等联合查询操作
  • 只支持string类型的列脱敏
  • 通过建立View的方式访问脱敏数据,脱敏策略失效

静态脱敏场景单一,限制较多,数据在计算前就已经被脱敏,为满足更灵活的脱敏需求,HetuEngine提供支持数据“可算不可见”、集群内脱敏策略自动传递等数据脱敏能力,即动态脱敏。

操作场景

通过MRS Ranger配置HetuEngine脱敏信息,HetuEngine支持数据“可算不可见”、集群内脱敏策略自动传递等数据脱敏能力,包括查询和写入场景。

  1. 支持配置脱敏后,对表进行查询,配置脱敏的列数据将进行自动脱敏。配置脱敏的列能正常进行谓词匹配,仅对输出结果进行脱敏。
  2. 配置脱敏的列能正常做联合查询(Join、Union、In、Exist等),仅对最后的输出结果进行脱敏。
  3. CTS后新表数据自动脱敏。如果数据源为本集群hive数据源,则数据本身不脱敏,同步脱敏策略,查询结果脱敏;其他数据源数据脱敏后输出
  4. ITS后新表数据支持脱敏。如果数据源为本集群hive数据源,则数据本身不脱敏,同步脱敏策略,查询结果脱敏;其他数据源数据脱敏后输出。同步脱敏策略时有以下几种情况:若目标表对应列没有脱敏策略,则脱敏策略直接同步;若目标表已有脱敏策略,且与源表相同,则脱敏策略不变;若目标表已有脱敏策略且与源表有冲突,则目标表脱敏策略强制重置为“***”。
  5. 通过View引用的脱敏列信息,查询View后,数据也是脱敏的。
  6. 配置脱敏后,对应函数计算、函数嵌套、以及子查询嵌套结果均脱敏。
  7. 查询使用别名、CTS使用别名情况支持脱敏。

注意事项与使用限制

  • 动态脱敏仅支持在安全模式集群中使用。
  • 当前Ranger配置CUSTOM自定义策略时,动态脱敏一律按照“*”策略处理,例如“ABCDE”脱敏为“*****”。
  • 由于Ranger策略更新检测周期为30s,执行CTS等语句如果涉及到策略同步,Ranger侧新建的策略生效存在一定的延迟。
  • 跨域场景下,对端HetuEngine作为本端的数据源,如果需要脱敏需在本端集群配置脱敏策略。
  • 由于查询视图时,实际访问表的是视图owner,所以在为敏感数据表创建视图时,需要对创建视图的用户脱敏。

开启动态脱敏操作步骤

  1. 使用可访问HetuEngine WebUI界面的用户登录FusionInsight Manager,选择“集群 > 服务 > HetuEngine”,进入HetuEngine服务页面。
  2. 在概览页签下的“基本信息”区域,单击“HSConsole WebUI”后的链接,进入HSConsole界面。
  3. 在“计算实例”页签,在待操作的实例所属租户所在行的“操作”列单击“配置”。
  4. 在“自定义配置”单击“增加”添加如下参数。

    表1 HetuEngine动态脱敏参数

    参数

    取值示例

    参数文件

    描述

    hetu.dynamic.masked.enabled

    true

    • coordinator.config.properties
    • worker.config.properties
    • 开启HetuEngine动态脱敏功能
    • 默认值:false

  5. 添加完成后将“立即启动”置为“是”,单击“确定”。

    • 动态脱敏与静态脱敏均基于Ranger配置的脱敏策略,需要开启HetuEngine服务的Ranger功能。
    • Ranger脱敏策略介绍以及配置方法见HetuEngine数据脱敏

相关文档