本文为您介绍MaxCompute的动态脱敏功能及其使用方法。

背景信息

MaxCompute提供了SQL查询结果的动态脱敏功能,可以帮助您有效地保护个人身份识别数据。动态脱敏功能仅对上层数据进行脱敏,不会影响底层数据存储。内置支持脱敏的数据类型包含身份证号码、手机号码、电子邮箱、银行卡、车牌号、IP地址以及MAC地址。

您也可以通过数据保护伞服务,自定义您的脱敏数据类型和脱敏策略。详细请参见自定义动态脱敏规则

使用动态脱敏功能前您需要开通数据保护伞服务,详情请参见数据保护伞

开启动态脱敏功能

  1. 项目所有者(Project Owner)或管理员在MaxCompute客户端执行如下语句安装脱敏Package。
    install package aegis.aegis_package;
  2. 为账号授权项目空间的数据脱敏权限。
    1. 登录数据保护伞控制台。登录方式请参见进入数据保护伞
    2. 单击左侧导航栏中的规则配置 > 数据脱敏管理,进入数据脱敏管理页面。
    3. 脱敏场景列表中,选择MaxCompute底层脱敏(maxcompute_desense_code),并单击右侧选择脱敏project**
    4. 授权账号脱敏对话框,从未脱敏project列表选择需要脱敏的项目显示在脱敏project列表中,选中我同意授权数据保护伞对以上项目进行MaxCompute底层脱敏,并单击确定

使用动态脱敏功能

  • Session级别。在运行的SQL语句前加如下脱敏参数设置语句和SQL语句一起提交,该SQL语句运行结果会被脱敏。
    set odps.output.field.formatter=aegis:masking_v1;
    set odps.isolation.session.enable=true;
  • Project级别。使用如下语句设置Project脱敏参数,设置完成后,该Project下所有SQL语句的运行结果会被脱敏。
    setproject odps.output.field.formatter=aegis:masking_v1;

示例

原始查询的SQL如下。
select * from tbl_user;
脱敏查询SQL如下。
set odps.output.field.formatter=aegis:masking_v1;
set odps.isolation.session.enable=true;

select * from tbl_user;