当项目用户具备查询MaxCompute项目中的某些敏感数据的权限,但又不希望用户能看到完整的敏感数据信息时,可以对查询结果进行数据动态脱敏。本文为您介绍如何开启MaxCompute的动态脱敏功能,并提供参考示例。
背景信息
MaxCompute本身不具备动态脱敏的能力,依赖DataWorks数据保护伞服务的数据脱敏功能。您需要先开通DataWorks的数据保护伞服务,才可以为目标MaxCompute项目开启动态脱敏功能。
为MaxCompute项目开启动态脱敏功能后,您可以基于DataWorks预设的数据识别规则,配置项目的脱敏规则(对哪些敏感数据进行脱敏)。当您从MaxCompute各个访问入口查询数据时,查询结果会脱敏展示脱敏规则指定的敏感数据。该功能可以有效保护诸如手机号、身份证号、银行卡号、车牌号、IP地址等敏感信息。动态脱敏功能仅会对查询结果进行脱敏,不会影响底层存储的数据。
推荐您使用DataWorks预设的数据识别规则,如果需要自定义数据识别规则,请参见数据识别规则。
使用限制
仅华东2(上海)地域支持该功能。
操作流程
在MaxCompute项目中使用动态脱敏功能的操作流程如下:
步骤一:开通数据保护伞服务
步骤二:为目标MaxCompute项目开启数据脱敏功能
步骤三:使用动态脱敏功能
您可以通过如下两种方式之一使用动态脱敏功能:
- Session级别。在运行的SQL语句前添加如下脱敏参数设置语句,与SQL语句一起提交,该SQL语句运行结果会脱敏展示。
set odps.output.field.formatter=aegis:masking_v1; set odps.isolation.session.enable=true;
- Project级别。使用如下语句设置项目级别的脱敏参数,设置完成后,该项目下所有SQL语句的运行结果都会脱敏展示。
setproject odps.output.field.formatter=aegis:masking_v1;
使用示例
MaxCompute项目开启脱敏功能后,您可以在MaxCompute各个访问入口,执行脱敏查询。 假设现已为MaxCompute项目A配置了IP类型字段脱敏规则,项目A中的表iptest数据如下。
+--------+-------------+
| name | ip |
+--------+-------------+
| a | 192.0.2.10 |
| b | 198.51.2.0 |
+--------+-------------+
您可以执行如下语句实现脱敏查询。
set odps.output.field.formatter=aegis:masking_v1;
set odps.isolation.session.enable=true;
select * from iptest;
返回结果如下。
+--------+----------------+
| name | ip |
+--------+----------------+
| a | 192.0.***.* |
| b | 198.51.***.* |
+--------+----------------+