友情链接:
在数据安全风险日益加剧的背景下,尤其是在个人信息保护和数据安全相关法律法规不断完善的情况下,企业在处理敏感信息时所承担的法律责任和社会责任愈加突出。在日常的开发测试、审计监管等环节中,若直接使用未经脱敏的真实数据,极易引发数据泄露事件,这不仅可能导致企业蒙受经济损失,更可能对其声誉造成严重影响。
Inceptor 的动态数据脱敏方案通过实时解析和改写SQL语句,在数据访问层面对敏感信息进行动态脱敏处理,确保在数据使用前即得到有效保护,从而显著降低数据泄露风险。与传统方法相比,该方案具有以下优势:
为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模式,欢迎各位小伙伴交流讨论。
友情链接:
在数据安全风险日益加剧的背景下,尤其是在个人信息保护和数据安全相关法律法规不断完善的情况下,企业在处理敏感信息时所承担的法律责任和社会责任愈加突出。在日常的开发测试、审计监管等环节中,若直接使用未经脱敏的真实数据,极易引发数据泄露事件,这不仅可能导致企业蒙受经济损失,更可能对其声誉造成严重影响。
Inceptor 的动态数据脱敏方案通过实时解析和改写SQL语句,在数据访问层面对敏感信息进行动态脱敏处理,确保在数据使用前即得到有效保护,从而显著降低数据泄露风险。与传统方法相比,该方案具有以下优势:
为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模式,欢迎各位小伙伴交流讨论。