管理动态脱敏策略
在数据安全组件创建动态脱敏策略后,系统会将动态脱敏策略同步到数据源服务,由数据源对数据列按照指定规则进行动态脱敏。当策略中指定的用户和用户组在访问敏感数据时,系统会直接返回由数据源动态脱敏后的数据,保护敏感数据不被泄露。
值得注意的是,动态脱敏策略为DataArts Studio实例级别配置,各工作空间之间数据互通,全局可见并生效。
前提条件
- 新建MRS Hive脱敏策略前,已完成如下操作:
- 在管理中心创建MapReduce服务(MRS Ranger)类型的数据连接,请参考创建DataArts Studio数据连接。
- 已完成用户同步,将IAM上的用户信息同步到数据源上,详见同步IAM用户到数据源。
- 新建DWS脱敏策略前,已完成如下操作:
- 已在管理中心创建数据仓库服务(DWS)类型的数据连接,请参考创建DataArts Studio数据连接。
- 已完成用户同步,将IAM上的用户信息同步到数据源上,详见同步IAM用户到数据源。
- 已修改DWS集群“feature_support_options”参数的CN参数值和DN参数值均为“enable_data_redaction”,用于启用DWS动态脱敏能力,修改操作详见修改数据库参数。
- 数据连接中的账户要具备待控制表的GRANT权限(数据库对象创建后,默认只有对象所有者或者系统管理员可以通过GRANT命令将对象的权限授予其他用户)。
- MRS Hive和DWS动态脱敏策略为指定用户/用户组在数据源上关联策略,因此需要如果希望在DataArts Studio数据开发执行脚本、测试运行作业时,使用当前用户身份认证鉴权以实现动态脱敏策略生效,则需要启用细粒度认证。
- 如果希望创建脱敏策略时能够查看哪些字段为敏感字段,则需要提前完成敏感数据发现任务,并通过“敏感数据分布”修正敏感数据字段的数据状态为“有效”。详情请参考发现敏感数据和查看敏感数据分布。
约束与限制
- 仅DAYU Administrator、Tenant Administrator用户或者数据安全管理员可以创建、修改或删除动态脱敏策略,其他普通用户无权限操作。
- MRS Hive和DWS动态脱敏策略为指定用户/用户组在数据源上关联策略,因此需要如果希望在DataArts Studio数据开发执行脚本、测试运行作业时,使用当前用户身份认证鉴权以实现动态脱敏策略生效,则需要启用细粒度认证。
- 当前动态脱敏策略仅支持MRS Hive和DWS数据源。
- 单条动态脱敏策略的配置维度为表级别,即一个表只允许绑定一个策略,一个策略也是只允许绑定一个表。只有处于“同步成功”状态的策略才能生效。
- MRS Hive动态脱敏时,MRS Ranger支持对同一列配置不同规则,按照配置的时间顺序先后匹配,因此可以配置多条同集群、同库表列的不同内容的脱敏策略。
- 当前MRS服务支持的脱敏规则如表2所示,但对中文字符仅支持NULL掩盖和哈希掩盖两种脱敏方式,如果选择其他脱敏方式则脱敏不生效。
MRS Hive数据源的“SM3”、“自定义/保留前x后y”和“自定义/掩盖前x后y”这三种脱敏规则非MRS Ranger组件提供,而是通过UDF自定义函数实现的算法。因此如果使用这三种脱敏规则之一,则会上传算法依赖的JAR包到MRS集群,并需要提前授予Ranger数据连接中账号的创建UDF权限以及所有用户的使用UDF权限,详见参考:配置Ranger组件中的UDF相关权限。
- DWS动态脱敏不支持DWS逻辑集群,脱敏前需启用DWS动态脱敏能力(修改DWS集群“feature_support_options”参数的CN参数值和DN参数值均为“enable_data_redaction”,修改操作详见修改数据库参数),且DWS数据连接中的账户要具备待脱敏表的GRANT权限(数据库对象创建后,默认只有对象所有者或者系统管理员可以通过GRANT命令将对象的权限授予其他用户)。
- 当前DWS服务支持的脱敏规则如表3所示,不支持中文脱敏,如果对含有中文字符的数据进行脱敏则可能会出现乱码。
创建动态脱敏策略
- 在DataArts Studio控制台首页,选择对应工作空间的“数据安全”模块,进入数据安全页面。
- 单击左侧导航树中的
,进入动态脱敏页面。图1 进入动态脱敏页面
- 单击“新建”,进入新建动态脱敏策略页面,参数配置参考表1。
图2 新建动态脱敏策略参数配置
创建动态脱敏策略参数配置说明:表1 配置策略参数 参数名
参数说明
*策略名称
动态脱敏策略的唯一标识,DataArts Studio实例内的名称唯一。
为便于策略管理,建议名称中标明要脱敏的对象和脱敏规则。
*数据源类型
当前支持MRS Hive、DWS数据源。
MRS Hive
*用户组/用户
指定当前工作空间成员中的用户或用户组。当指定对象在数据开发组件中查询或导出敏感数据时,系统会对敏感数据进行动态脱敏,保护敏感数据不被泄露。
*数据连接
从下拉列表中选择数据连接类型中已创建的数据连接,若未创建请参考创建DataArts Studio数据连接新建连接。
*集群名称
无需选择,自动匹配数据连接中的数据源集群。
*数据库
选择敏感数据所在的数据库。
*数据表
选择敏感数据所在的数据表。
*数据列
您需要勾选一个或多个待脱敏列,并根据不同数据列的数据类型,选择合适的脱敏规则。各类数据源中不同数据类型支持的脱敏规则不同,详见参考:动态脱敏规则介绍。
另外,如果选中的库表列有进行过敏感数据发现并且敏感数据字段的数据状态为“有效”,则将密级和数据分类显示在数据列区域中。
DWS
*用户组/用户
指定当前工作空间成员中的用户或用户组。当指定对象在数据开发组件中查询或导出敏感数据时,系统会对敏感数据进行动态脱敏,保护敏感数据不被泄露。
*数据连接
从下拉列表中选择数据连接类型中已创建的数据连接,若未创建请参考创建DataArts Studio数据连接新建连接。
*集群名称
无需选择,自动匹配数据连接中的数据源集群。
*数据库
选择敏感数据所在的数据库。
*schema
选择敏感数据所在的schema。
*数据表
选择敏感数据所在的数据表。
*数据列
您需要勾选一个或多个待脱敏列,并根据不同数据列的数据类型,选择合适的脱敏规则。各类数据源中不同数据类型支持的脱敏规则不同,详见参考:动态脱敏规则介绍。
另外,如果选中的库表列有进行过敏感数据发现并且敏感数据字段的数据状态为“有效”,则将密级和数据分类显示在数据列区域中。
- 单击“确定”,完成动态脱敏策略创建。动态脱敏策略创建完成后,需要手动单击“同步”,将该策略同步到数据源中。
相关操作
- 同步策略:在动态脱敏页面,单击对应任务操作栏中的“同步”,即可将该策略同步到数据源中。当需要批量同步时,可以在勾选策略后,在列表上方单击“同步”。
只有处于“同步成功”状态的策略才能生效。如果策略同步失败,可通过查看策略详情查看策略运行日志,通过日志排查同步失败原因。待问题修复后请重新同步,如果仍同步失败,请联系技术支持人员协助处理。
- 编辑策略:在动态脱敏页面,单击对应任务操作栏中的“编辑”,即可编辑动态脱敏策略。
- 删除策略:在动态脱敏页面,单击对应任务操作栏中的“删除”,在弹窗中再次确认后,即可删除策略。当需要批量删除时,可以在勾选策略后,在列表上方单击“删除”。
动态脱敏策略删除后将被转移至回收站中,您可以在30天内进行还原,在回收站中超过30天的数据将被自动删除。详见管理回收站章节。
- 查看策略详情:在动态脱敏页面,通过同步状态筛选策略或直接找到需要查看的策略,单击策略名即可查看策略详情。
图3 查看策略详情
参考:动态脱敏规则介绍
- MRS Hive动态脱敏规则由MRS Ranger组件提供,当前支持的规则如表2所示。
MRS Hive数据源的“SM3”、“自定义/保留前x后y”和“自定义/掩盖前x后y”这三种脱敏规则非MRS Ranger组件提供,而是通过UDF自定义函数实现的算法。因此如果使用这三种脱敏规则之一,则会上传算法依赖的JAR包到MRS集群,并需要提前授予Ranger数据连接中账号的创建UDF权限以及所有用户的使用UDF权限,详见参考:配置Ranger组件中的UDF相关权限。
- DWS动态脱敏规则由DWS提供,当前支持的规则如表3所示。
数据类型 |
脱敏规则 |
||||||||
---|---|---|---|---|---|---|---|---|---|
掩盖英文字符和数字 |
保留后四位 |
保留前四位 |
哈希掩盖 |
掩盖月份和日期 |
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 |
不支持 |
不支持 |
不支持 |
数据类型 |
脱敏规则 |
|||
---|---|---|---|---|
全掩码 |
保留后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权限,授权操作详情如下:
- 使用admin账户登录MRS服务的Manager页面。
- 在Manager页面选择“集群 > 服务 > Ranger”,进入Ranger概览页面,单击RangerAdmin进入Ranger WebUI。
图4 进入Ranger WebUI
- 注销当前账号,使用Ranger管理员账号再次登录。注意,普通集群使用Manager页面的admin账号即可作为Ranger管理员账号,安全集群需要使用rangeradmin作为Ranger管理员账号,rangeradmin默认密码请参考用户账号一览表章节。
图5 登出当前账号
- 在首页中单击“HADOOP SQL”区域的组件插件名称如“Hive”。
- 在“Access”页签,单击Add New Policy,进入新建策略页面。
图6 策略列表
- 在新建策略页面,配置策略内容,授予Ranger数据连接中账号的创建UDF权限以及所有用户的使用UDF权限。
- Policy Name:策略名,自定义即可,本例以“creat_udf_access”为例进行说明。
- database:数据库选择“default”,创建的UDF默认位于default库下。
- udf:UDF选择“*”,匹配所有UDF函数。
- 权限1-Ranger数据连接中账号的创建UDF权限:
- Select User:用户名选择Ranger数据连接中账号。
- Permissions:权限选择“Creat”,即创建UDF权限。
- 权限2-所有用户的使用UDF权限:
- Select Group:用户组选择public,即所有用户。
- Permissions:权限选择“select”,即使用UDF权限。
图7 策略内容
- 策略内容配置完成后,单击下方的add,完成权限配置。