数据脱敏

最近更新时间:2024-09-09 10:19:41

我的收藏

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。

创建敏策略标签

1.进入 数据湖计算 DLC 控制台,选择数据管理-数据脱敏,点击创建数据脱敏策略标签,在弹出的对话框新建脱敏策略标签:



2.在配置脱敏方法中,勾选对应工作组添加到“已选择”对话框,并为每个工作组配置脱敏方法。
3.点击确定,完成创建。
注意:
1.DLC 数据脱敏功能,当前仅对已配置脱敏方法的用户组内的用户生效,对于未配置脱敏方法的用户组,或未添加到任何用户组的用户不会生效
2.如要对全部 DLC 用户生效,建议:1.为所有用户组配置脱敏方法;2.将所有 DLC 用户均添加到用户组。

第二步:绑定标签到数据列

1.进入 数据湖计算 DLC 控制台,选择数据管理,选择数据目录中需要脱敏字段所在的数据表;
2.找到需要脱敏的字段,或在右上角搜索框搜索字段名称,后在脱敏策略标签中点击

,在对话框选择需要绑定的脱敏策略标签;
3.如果未找到适配的脱敏策略标签,可点击对话框的创建脱敏策略标签快速创建。



注意:
1.DLC 内置的各类脱敏方法有字段类型限制,如日期脱敏仅能被关联到 TIMESTAMP,DATE 数据类型的列,详见 支持的脱敏方法
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 数据脱敏功能目前约束与限制如下:

生效范围

1.数据脱敏功能对 DLC 普通用户管理员均会生效。关于 DLC 用户类型,可参考 DLC 权限概述
2.完成脱敏策略标签配置后,约需要等1分钟左右生效时间。

支持引擎

目前仅支持 Spark 标准引擎或 SuperSQL Spark 作业引擎,关于 DLC 引擎类别,可参考 数据引擎介绍