Inceptor动态数据脱敏指南:策略管理介绍

友情链接:

背景

数据安全风险日益加剧的背景下,尤其是在个人信息保护和数据安全相关法律法规不断完善的情况下,企业在处理敏感信息时所承担的法律责任和社会责任愈加突出。在日常的开发测试、审计监管等环节中,若直接使用未经脱敏的真实数据,极易引发数据泄露事件,这不仅可能导致企业蒙受经济损失,更可能对其声誉造成严重影响。

Inceptor 的动态数据脱敏方案通过实时解析和改写SQL语句,在数据访问层面对敏感信息进行动态脱敏处理,确保在数据使用前即得到有效保护,从而显著降低数据泄露风险。与传统方法相比,该方案具有以下优势:

  • 即时防护:在数据被访问的瞬间实时执行脱敏操作,并将脱敏后的数据返回给客户端,有效防止了敏感信息在传输过程中可能发生的泄露。
  • 高度灵活性:提供超过50种内置脱敏算法,支持根据用户需求或字段特性灵活配置脱敏策略。此外,还能够对第三方数据库实施动态数据脱敏,增强了方案的适用性。
  • 性能优化:利用数据血缘技术解析SQL语句,既保证了大数据环境下的系统性能不受影响,又维护了数据的一致性和有效性。这种基于数据血缘的方法有助于避免因处理大规模数据集而导致的性能下降问题。

image.png


脱敏策略管理

使用开关

为COLUMN创建脱敏策略,需要先保证当前服务开启了动态脱敏,即服务参数argodb.sql.desensitize.enabled的值为true。如果为false,请先将参数的值置为true。提供两种方式修改值:

1. jdbc连接中set argodb.sql.desensitize.enabled = true,这是connection级别的。

2.直接在manager上动脱服务界面上添加或者修改该参数,然后配置服务后重启。这是服务级别,对所有connection都生效。

创建脱敏策略

创建列的脱敏策略

在设置脱敏模式和相关参数后可以创建列的脱敏策略,完整命令及参数如下:

create masking policy <policy_name>
    on column <database>.<table>.<column>[@<dblink_name>]
    using deny/direct_access/desensitization 
    [with function_name([argument,...])] 
    [by user <username>,... role <rolename>,... group <groupname>,...]
    [time <start_timestamp> to <end_timestamp>]
    [priority <level_number>]

参数说明

参数 是否必选 说明
<policy_name> 具有业务意义的规则名称,方便后续识别。
<database>.<table>.<column> 对应分别为库、表、列的名称,例如 demodata.customer.username。
<dblink_name> Inceptor 支持将外部数据源的表作为脱敏对象,此场景下,您可以为外部数据源创建一个 DBLink(数据库链接),随后在此处相应填写 DBLink 名称。
<policy_type> 脱敏类型,取值:DENY:拒绝,无法查看或获取标记为该脱敏类型的列数据,查询结果的返回值为 NULL,可用于保护极度敏感的数据(如个人信息)。DIRECT_ACCESS:放行,允许用户直接访问数据,不进行任何形式的脱敏或修改。DESENSITIZATION:脱敏,基于脱敏规则修改或隐藏敏感数据的部分信息。
<function_name> 脱敏的函数名称,当 <policy_type> 取值为 desensitization 时,则必须指定本参数。
[argument] 脱敏函数的参数,当指定了脱敏函数时,可通过本参数指定更详细的参数设置。
<username> <rolename> <groupname> 分别表示脱敏规则生效的用户、角色和用户组,多个对象之间可用英文逗号(,)分隔,例如指定多个用户 dev_user1,dev_user2。 使用该功能时,您需要开启 Guardian 插件,同时还需要在 Transwarp Manager 平台上,为 Quark 开启列级权限控制,即 inceptor.security.column.authorization.enabled 设置为 true。
<start_timestamp> <end_timestamp> 脱敏规则生效时间段的起止时间,格式为 yyyy-MM-dd HH:mm:ss。
<level_number> 脱敏规则的优先级,范围:1~2147483647,数值越小优先级越高。

示例

1、创建test库tab表cola列的脱敏规则,脱敏策略为deny

create masking policy test1 on test.tab.cola using deny;

2、创建mysql_link(外部数据源的link名字)映射的test库tab表cola列的脱敏规则,脱敏策略为deny

create masking policy test2 on test.tab.cola@mysql_link using deny;

3、创建test库tab表cola列的脱敏规则,脱敏策略为deny,用户为user1

create masking policy test3 on test.tab.cola using deny by user user1;

4、 创建test库tab表cola列的脱敏规则,脱敏策略为deny,用户为user1和user2,角色为role1和机构group1的role2

create masking policy test4 on test.tab.cola using deny by user user1,user2 role role1,group1.role2;

5、创建test库tab表cola列的脱敏规则,脱敏策略为desensitization,脱敏函数为mask('*',1,1),用户为user1和user2,角色为role1和role2,机构为group1和group2

create masking policy test5 on test.tab.cola using desensitization with mask('*',1,1) by user user1,user2 role role1,role2 group group1,group2;

6、创建默认脱敏规则,脱敏策略为deny

create default masking policy using deny;

删除脱敏策略

1、删除列的脱敏策略

drop masking policy on column <database>.<table>.<column>[@<dblink_name>]

2、删除表的脱敏策略

drop masking policy on column <database>.<table>[@<dblink_name>]

3、删除所有脱敏策略

drop masking policy on column all

4、删除指定脱敏策略

drop masking policy policy_name[@<dblink_name>]

5、删除全局脱敏策略

drop default masking policy


本篇我们主要介绍了Inceptor动态数据脱敏方案的核心要素——策略管理,包括脱敏策略的使用开关以及如何创建和删除脱敏策略,这可以帮助你们初步掌握脱敏策略配置技能。下一篇我们将聚焦Inceptor动态数据脱敏架构的解析,重点阐释Gateway与Server模式,欢迎各位小伙伴交流讨论。

评论
登录后可评论
发布者
U
UNRN
官方
文章
6
问答
--
关注者
--
banner
关注星环科技
获取最新活动资讯

加入TDH社区版技术交流群

获取更多技术支持 ->

扫描二维码,立即加入