DLC 数据脱敏简介
数据湖计算 DLC 产品支持列级数据脱敏,您可以使用数据脱敏功能,为涉及敏感数据的列关联脱敏规则,并配置一系列针对不同用户组的脱敏算法,实现基于角色的精细化脱敏应用。例如,对于手机号数据,您可能希望向您的客服人员组授予完整访问权限、向您的分析人员组授予仅查看后4位的权限,而向您的财务人员组则使用显示为 NULL 的严格脱敏权限。
支持的脱敏方法
当前 DLC 支持以下的列值数据脱敏方法:
默认值
根据列的数据类型返回列的默认脱敏值。如果要隐藏列值但显示其数据类型,则可以考虑使用此规则。
支持的数据类型: STRING BINARY INT FLOAT DECIMAL BOOLEAN TIMESTAMP DATE ARRAY
数据类型 | 默认脱敏值 |
STRING | "" |
BINARY | "" |
INT | "" |
DECIMAL | 0 |
BOOLEAN | false |
TIMESTAMP | 1970-01-01 08:00:00 |
DATE | 1970-01-01 |
ARRAY | [] |
保留前四个字符
返回列值的前 4 个字符,将字符串的其余部分替换为 XXXXX。如果列值的长度等于或小于 4 个字符,则返回通过 SHA-256 哈希函数运行后该列的值。此规则只能用于使用 STRING 数据类型的列。
支持的数据类型: STRING
示例值 | 脱敏值 |
abcd@example.com | abcdxxxxxxxxxx |
abc | ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad |
保留后四个字符
返回列值的后 4 个字符,将字符串的其余部分替换为 XXXXX。如果列值的长度等于或小于 4 个字符,则返回通过 SHA-256 哈希函数运行后该列的值。此规则只能用于使用 STRING 数据类型的列。
支持的数据类型: STRING
示例值 | 脱敏值 |
abcd@example.com | xxxxxxxxxx.com |
abc | ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad |
哈希
返回通过 SHA-256 哈希函数运行后的列值。如果您希望最终用户能够在查询的 JOIN 操作中使用此列,则可以使用此规则。只能对 STRING 或 BYTES 数据类型的列使用此规则。
支持的数据类型: STRING BYTES
示例值 | 脱敏值 |
abcd@example.com | 3f7768839b5bcba43f589cc3af54efaea18bceb1df8b05a7dffaec3e7b43b269 |
设为 NULL
无论列的数据类型,均返回 NULL 。如果要隐藏列值及其数据类型,则选用使用此规则。
支持的数据类型: 不限
示例值 | 脱敏值 |
abcd@example.com | NULL |
日期脱敏
仅显示日期字符串的年份部分,并将月份和日期默认为01/01。只能对使用 DATE、 TIMESTAMP 数据类型的列使用此规则。
支持的数据类型: TIMESTAMP DATE
示例值 | 脱敏值 |
2015-03-05T09:32:05.359 | 2015-01-01 00:00:00 |
不脱敏
显示列值明文,不做任何脱敏处理。
脱敏方法选择建议
您可根据以下建议,为列值灵活选择需要的脱敏方法:
脱敏方法 | 场景建议 |
默认值 | 希望隐藏列值,但有需要向用户显示其数据类型 |
保留前四个字符 | 希望隐藏列值明文,但显示部分字符用于信息确认。如用于客服人员向顾客确认电子邮箱的前4个字符 |
保留后四个字符 | 希望隐藏列值明文,但显示部分字符用于信息确认。如用于客服人员向顾客确认手机号的后4位 |
哈希 | 希望用户能够在查询的 JOIN 操作中使用此列,或做 group by 统计,则可以使用此规则 |
设为 Null | 如果要隐藏列值及其数据类型,则选用使用此规则 |
日期脱敏 | 用于仅显示年份,隐藏其余日期信息的场景,如出生年份确认 |
不脱敏 | 针对有需要使用明文的用户 |
数据脱敏工作流
您可以按照以下步骤配置 DLC 数据脱敏:
第一步:新建脱敏策略标签
脱敏策略标签简介
脱敏策略标签指由用户自定义、用于关联到敏感数据列的标签,在一个脱敏策略标签中您可配置多个用户组的精细化脱敏方法。例如,设定一个命名为“手机号”的脱敏策略标签,并设定3个 DLC 工作组的脱敏方法如下:
脱敏策略标签名称:手机号脱敏
工作组脱敏方法配置:见下
工作组 | 脱敏方法 |
客服人员组 | 不脱敏 |
分析人员组 | 显示后4位 |
财务人员组 | 设为 NULL |
效果:
将上述脱敏策略标签关联到例如 Phone_number1、Phone_number2 两个列后,属于客服人员组的 DLC 用户查询 Phone_number1、Phone_number2 将显示明文; 分析人员组的 DLC 用户查询得到如 *********4320的结果; 财务人员组 DLC 用户查询将显示NULL。
创建敏策略标签
2.在配置脱敏方法中,勾选对应工作组添加到“已选择”对话框,并为每个工作组配置脱敏方法。
3.点击确定,完成创建。
注意:
1.DLC 数据脱敏功能,当前仅对已配置脱敏方法的用户组内的用户生效,对于未配置脱敏方法的用户组,或未添加到任何用户组的用户不会生效;
2.如要对全部 DLC 用户生效,建议:1.为所有用户组配置脱敏方法;2.将所有 DLC 用户均添加到用户组。
第二步:绑定标签到数据列
2.找到需要脱敏的字段,或在右上角搜索框搜索字段名称,后在脱敏策略标签中点击
,在对话框选择需要绑定的脱敏策略标签;3.如果未找到适配的脱敏策略标签,可点击对话框的创建脱敏策略标签快速创建。
注意:
2.一个字段仅可关联一个脱敏策略标签,脱敏策略标签可被复用到多个数据列。
生效时间:
完成脱敏策略标签配置并绑定列后,约需要等1分钟左右生效时间,期间用户查询可能仍会得到明文结果,稍后片刻即可。
第三步:执行查询
将脱敏策略标签绑定到需脱敏的列后,相关用户在查询相关列数据时,将根据用户所在用户组的脱敏方法显示对应脱敏后的结果。以下用一个虚拟案例进一步展示 DLC 数据脱敏功能可实现的效果。
案例说明
假设 A 公司拥有一张敏感客户信息表 customer_list,详细字段如下:
手机号 | 客户等级 | 消费额 | 电子邮件 |
123456789 | High | 45,600 | abc@example.com |
234567891 | Medium | 15,000 | bcd@example.com |
345678912 | Low | 2,000 | cde@example.com |
456789123 | Low | 1,000 | def@example.com |
A 公司内部共有客服人员组、财务人员组和分析人员组3个用户组,目前希望手机号和电子邮件两个涉及用户 PII 信息的敏感字段,仅被客服人员组使用;消费额字段仅被财务人员使用,客户等级标签仅被财务人员使用,但分析人员可查看客户等级的哈希值,从而可进行客户分层的统计分析。
根据上述需求,可创建以下3个脱敏策略标签:
联系信息脱敏 (绑定到字段:手机号+电子邮件) | 消费金额脱敏 (绑定到字段:消费额) | 客户等级脱敏 (绑定到字段:客户等级) |
客服人员组:不脱敏 财务人员组:NULL 分析人员组:NULL | 客服人员组:NULL 财务人员组:不脱敏 分析人员组:NULL | 客服人员组:NULL 财务人员组:不脱敏 分析人员组:哈希 |
假定脱敏标签按照上表与对应列绑定后,那么对于不同群组,运行 SELECT * FROM customer_list; 会产生以下结果:
客服人员组:此群组已被授予联系信息不脱敏的规则。会返回以下结果:
手机号 | 客户等级 | 消费额 | 电子邮件 |
123456789 | NULL | NULL | abc@example.com |
234567891 | NULL | NULL | bcd@example.com |
345678912 | NULL | NULL | cde@example.com |
456789123 | NULL | NULL | def@example.com |
财务人员组:此群组已被授予消费金额+客户等级不脱敏的规则。会返回以下结果:
手机号 | 客户等级 | 消费额 | 电子邮件 |
NULL | High | 45,600 | NULL |
NULL | Medium | 15,000 | NULL |
NULL | Low | 2,000 | NULL |
NULL | Low | 1,000 | NULL |
分析人员组:此群组给与了客户等级哈希脱敏。会返回以下结果,虽然无法了解到真实客户等级,但通过哈希值仍然能进行统计分析:
手机号 | 客户等级 | 消费额 | 电子邮件 |
NULL | 4fa3c0d004d0750fc7bf8631993bd7c668fd33f8d089e0103ad8ef3fc1d9f4bb | 45,600 | NULL |
NULL | 35d8f8d59e2630de970e35271547d087278074addd61ce31940da69d82d19929 | 15,000 | NULL |
NULL | 49542bc83b9d59935686144f352b6acb2264992720d0dbe780be50b56b87fef7 | 2,000 | NULL |
NULL | 49542bc83b9d59935686144f352b6acb2264992720d0dbe780be50b56b87fef7 | 1,000 | NULL |
脱敏方法优先级
假设一个 DLC 用户被添加到多个用户组中,不同用户组被关联了不同脱敏方法,在这种情况下特定用户会存在多个脱敏策略。如用户存在多个脱敏方法冲突,系统会按照以下优先级从高到低,选择最高优先级的方法生效。
优先级 | 脱敏方法 |
1(最高) | 不脱敏 |
2 | 哈希 |
3 | 保留后四个字符 |
4 | 保留前四个字符 |
5 | 日期脱敏 |
6 | 默认值 |
7(最低) | 设为 Null |
示例:
例如,user1 被重复添加到了 Usergroup1 和 Usergroup2 中,而在脱敏策略标签 A 中,Usergroup1 被关联了“设为 NULL”方法,Usergroup2 则被关联了“哈希”,user1 同时存在“哈希L”和“不脱敏”两个策略,按照上表选择最高优先级执行,即 user1 查询相关数据会返回哈希后的脱敏结果。
约束与限制
DLC 数据脱敏功能目前约束与限制如下:
生效范围
2.完成脱敏策略标签配置后,约需要等1分钟左右生效时间。
支持引擎