订阅动态脱敏策略
通过动态脱敏订阅,数据安全可以实现同步第三方平台的动态脱敏策略。
第三方平台的动态脱敏策略发布到Kafka消息队列后,数据安全进行订阅和消费。消息格式满足要求时,待消息消费成功后,数据安全会生成动态脱敏策略(策略名为Kafka消息中的策略名)并同步到MRS Ranger组件中生效。
值得注意的是,动态脱敏订阅为DataArts Studio实例级别配置,各工作空间之间数据互通,全局可见并生效。
前提条件
- 第三方平台的动态脱敏策略需要发布到Kafka消息队列,且消息格式满足要求,详见参考:Kafka消息格式要求。
- 已在管理中心创建MapReduce服务(MRS Kafka)类型的数据连接,请参考创建DataArts Studio数据连接。注意,Kafka应为第三方平台发布消息所在的Kafka,数据连接中的账户要具备kafkaadmin用户组的权限。
约束与限制
- 仅DAYU Administrator、Tenant Administrator用户或者数据安全管理员可以创建、编辑、启动、停止或同步动态脱敏订阅任务,其他普通用户无权限操作。
- 动态脱敏订阅仅支持订阅第三方平台中MRS Hive类型的动态脱敏策略,且动态脱敏策略中支持的脱敏规则仅限于数据安全中已支持的规则(暂不支持“自定义/保留前x后y”和“自定义/掩盖前x后y”两个自定义规则),详见表2。
- 通过订阅生成的动态脱敏策略名为Kafka消息中的策略名,由于数据安全不允许策略名重复,因此数据安全已有动态脱敏策略名需要避免与Kafka消息中的策略名重复。
- 订阅生成的动态脱敏策略名同步到Ranger后策略名为“dlsMasking-库名-表名-列名”,由于Ranger不允许策略名重复,因此Ranger已有策略名需要避免与生成的策略命名重复。
- 动态脱敏订阅时,数据安全通过订阅任务中的“MRS集群”+Kafka消息动态脱敏策略中的“库表列”来标识一条动态脱敏策略。当消息队列或数据安全中已存在同集群同库表列的动态脱敏策略时,则跳过不再重复生成。
-
MRS Hive数据源的“SM3”、“自定义/保留前x后y”和“自定义/掩盖前x后y”这三种脱敏规则非MRS Ranger组件提供,而是通过UDF自定义函数实现的算法。因此如果使用这三种脱敏规则之一,则会上传算法依赖的JAR包到MRS集群,并需要提前授予Ranger数据连接中账号的创建UDF权限以及所有用户的使用UDF权限,详见参考:配置Ranger组件中的UDF相关权限。
- 数据安全消费Kafka消息时,需要消息的格式满足要求,详见参考:Kafka消息格式要求。
- Kafka消息不满足消息格式:则记录同步失败消息日志,继续消费下一条消息,最终状态为部分失败或者同步失败。
- Kafka消息合法,但是由于网络资源等原因消费失败:触发Kafka重试机制,重试3次,间隔分别为4、6、9s,如果依然失败,则记录日志,终止此次调度。
- Kafka消息合法,正常消费,但是生成策略或同步Ranger时失败:记录同步失败消息日志,继续消费下一条,最终状态为部分失败或者同步失败。
- 失败的kafka消息最多存储16M数据。
订阅动态脱敏策略
- 在DataArts Studio控制台首页,选择对应工作空间的“数据安全”模块,进入数据安全页面。
- 单击左侧导航树中的
,进入动态脱敏页面,然后切换到“动态脱敏订阅”页签。图2 进入动态脱敏订阅页签
- 单击“创建订阅”,弹出创建订阅窗口,参数配置参考表1。
图3 创建订阅参数配置
创建动态脱敏订阅任务参数配置说明:表1 配置任务参数 参数名
参数说明
连接配置
*选择集群
选择需要同步第三方平台动态脱敏策略的集群。
当前暂不支持同步策略到多个集群。如果希望通过多个订阅任务分别同步到多个集群,则会由于生成的策略名重复导致Kafka消息消费失败。
集群类型
无需选择,自动根据选择的集群匹配集群类型。当前仅支持同步策略到MRS集群。
数据连接
无需选择,自动根据选择的集群匹配数据连接。
*kafka数据连接
选择在前提条件中已创建的MRS Kafka类型数据连接。注意,Kafka应为第三方平台发布消息所在的Kafka,Kafka数据连接中的账户要具备kafkaadmin用户组的权限。
*topic主题
选择第三方平台的动态脱敏策略发布Kafka消息的Topic主题。同一个MRS集群的一个Topic主题只能对应一个订阅任务。
调度配置
调度时间
选择每天调度生效的时间段。
建议消息量大小评估调度时间,目前消费一个数据加同步大约需要2秒。
调度周期
选择按小时还是按分钟调度。
调度间隔
选择调度间隔时间。
- 单击“确定”,完成动态脱敏订阅任务的创建。动态脱敏策略创建完成后,需要手动单击“启动”,启动任务调度。
相关操作
- 启动/停止订阅任务:在动态脱敏订阅页签,单击对应任务操作栏中的“启动”或“停止”,即可启动或停止该任务的调度。
- 编辑订阅任务:在动态脱敏订阅页签,单击对应任务操作栏中的“更多 > 编辑”,即可编辑订阅任务。
- 删除订阅任务:在动态脱敏订阅页签,单击对应任务操作栏中的“更多 > 删除”,即可删除订阅任务。当需要批量删除时,可以在勾选订阅任务后,在列表上方单击“批量删除”。
删除操作无法撤销,请谨慎操作。
- 同步订阅任务:在动态脱敏订阅页签,单击对应任务操作栏中的“更多 > 同步”,即可立即发起一次任务运行,数据安全开始订阅消费、启动消费、生成策略并同步Ranger。
- 查看订阅任务详情:在动态脱敏订阅页签,找到需要查看的任务,单击对应任务操作栏中的“详情”即可查看任务详情。
图4 查看任务详情
参考:Kafka消息格式要求
第三方平台的动态脱敏策略需要发布到Kafka消息队列,且消息格式满足要求,消息模板及参数说明如下所示。
{ "mask_policy_template": { "create_time":1692839884000 //同步当前时间 "name":" task1", //动态脱敏策略名,不能与当前已有动态脱敏策略名重复 "database": "1", //数据库名 "table": "1", //数据表名 "column": "1", //字段名 "column_type":"int", //字段类型 "data_level": "1级", // 字段密级,非必填 "algorithm_config": { "name": "SM3", //动态脱敏规则名称,支持范围为MASK、MASK_SHOW_LAST_4、MASK_SHOW_FIRST_4、MASK_HASH、MASK_DATE_SHOW_YEAR、MASK_NULL、SM3 "type": "HASH", //动态脱敏规则类型,除SM3为HASH类型外,其他规则均为MASK类型 "description": "SM3算法加密", //动态脱敏规则描述 }, "datasource_type":"HIVE", //数据源类型,当前仅支持Hive "users":"aaa,bbb", //指定脱敏用户 "user_groups":"ggg" //指定脱敏用户组 "description":{ "jdbc_url": "hive2://xxx" //自定义描述,用于在失败消息中返回携带 } } }