在使用全密态功能之前,您需要配置数据保护规则,规则包括:指定目标数据列为被保护数据、声明数据保护方法(例如加密、脱敏)、授权指定用户访问数据等。本文介绍数据保护规则格式及说明。
规则格式及说明
{
"version": 20230830,
"rules": [
{
"name": "rule1",
"enabled": true,
"meta": {
"databases": ["test"],
"tables": ["test"],
"columns": ["a","b"]
}
}
],
"users": {
"restrictedAccess": ["appuser","test_user"],
"noneAccess": ["illegal"]
}
}
version
:当前规则格式的版本,示例中当前版本为20230830。rules
:具体的规则,可以写一条或多条规则。各字段含义如下:name
:规则的名字,您需要保证每一条规则名唯一。以encdb_spreaded_rule_
开头的规则名留作内部使用,出于安全原因考虑,用户不应该使用(会被拒绝)。enabled
:规则是否启用。被设置为false
的规则将不会生效。meta
:标记了具体哪些库、表、列是被保护数据。其中:databases
:被保护的数据库。您可以指定一个或多个目标数据库,也可以用"*"
来表示匹配所有数据库。tables
:被保护的数据表。您可以指定一个或多个目标数据表,也可以用"*"
来表示匹配所有数据表。columns
:被保护的数据列。您可以指定一个或多个目标数据列,也可以用"*"
来表示匹配所有数据列。
说明进行任意查询时,涉及的数据都可以用
<数据库,数据表,数据列>
来表示。只有当数据库、数据表、数据列都被一条规则中的meta
数据匹配上时,数据才会按照规则中指定的算法进行处理。在设置数据保护规则时,您需要保证不同规则作用的数据范围是互斥的,即每列数据,仅能唯一匹配一条规则,否则全密态数据库无法确定如何选择规则,可能发生非预期的结果。
users
:用户访问数据权限的设定。各权限说明如下:说明用户权限设定对
rules
下的所有规则生效。restrictedAccess
:部分被保护数据可控访问。服务端返回基于可解密的加密的数据。用户可以使用相同的密钥在客户端解密后获取到明文数据内容。noneAccess
:被保护数据全遮掩,不泄露任何原始数据信息。用户不具备访问数据内容的权限。默认所有用户初始化为该权限。当显式配置时,可以撤销已授权用户访问数据的权限。fullAccess
:用户可访问所有被保护数据。完全明文操作,服务端返回原始明文数据。
相关文档
- 本页导读 (1)