当项目用户具备查询MaxCompute项目中的某些敏感数据的权限,但又不希望用户能看到完整的敏感数据信息时,可以对查询结果进行数据动态脱敏。本文为您介绍如何开启MaxCompute的动态脱敏功能,并提供参考示例。
背景信息
MaxCompute本身不具备动态脱敏的能力,依赖DataWorks数据保护伞服务的数据脱敏功能。您需先开通DataWorks的数据保护伞服务,才可为目标MaxCompute项目开启动态脱敏功能。
为MaxCompute项目开启动态脱敏功能后,您可基于DataWorks的数据识别规则,配置项目的脱敏规则(对哪些敏感数据进行脱敏)。当您从除DataWorks入口外的MaxCompute cmd、log view查询敏感数据时,在展示层按照配置的脱敏规则进行脱敏。该功能可以有效保护诸如手机号、身份证号、银行卡号、车牌号、IP地址等敏感信息。动态脱敏功能仅会对查询结果进行脱敏,不会影响底层存储的数据。
推荐您使用DataWorks预设的数据识别规则,如果需要自定义数据识别规则,请参见通过内置规则识别。
使用限制
-
仅DataWorks专业版及以上版本,才可使用此功能。DataWorks基础版暂时无法使用此功能,如您的DataWorks为基础版,请升级DataWorks为合适版本。详情请参见DataWorks各版本详解。
-
仅华北2(北京)、华东2(上海)、华东1(杭州)、西南1(成都)、华南1(深圳)、华北2(北京政务云)、华东2(上海金融云)、中国(香港)、新加坡、德国(法兰克福)、马来西亚(吉隆坡)、美国(硅谷)地域支持使用MaxCompute底层脱敏。
-
MaxCompute底层脱敏的生效范围为会话级别,即在进行会话查询时需增加相关脱敏服务调用语句,脱敏配置才会生效。
-
MaxCompute底层脱敏不支持对MaxCompute数据表的主键字段进行脱敏。
-
MaxCompute底层脱敏仅支持对String类型字段进行脱敏。
操作流程
在MaxCompute项目中使用动态脱敏功能的操作流程如下:
-
步骤一:准备待使用脱敏的项目
-
步骤二:开通数据保护伞服务
-
步骤三:申请网络白名单
-
步骤四:为目标MaxCompute项目开启数据脱敏功能
-
步骤五:查询SQL显示结果
步骤一:准备待使用脱敏的项目
不同地域的项目,底层脱敏的相关操作可能存在差异(例如,调用脱敏服务使用的语句不同),您需根据实际业务在所需地域下创建项目。创建项目,详情请参见创建MaxCompute项目。
步骤二:开通数据保护伞服务
-
进入数据保护伞。
-
在服务声明页面,勾选我已阅读并接受以上协议条款,单击立刻开通。
步骤三:申请网络白名单
阿里云主账号填写表单申请MaxCompute项目访问外部网络,开通后才可调用脱敏服务。
如果目标IP或域名不存在安全限制,审核通过后即可访问目标IP或域名,审核周期为3个工作日之内。
申请内容格式如下:
项目名称(待脱敏的项目名称) : data_shield_hz
日志地址 :
问题描述 : 对Project打开域名白名单,使UDF运行的时候可以访问某些域名。
区域:杭州
要访问的域名: dsg-cn-hangzhou.data.aliyun.com,dsg-oss-dic-ori-hz.oss-cn-hangzhou.aliyuncs.com
端口:80,443
不同地域申请的域名不同,请填写以下列表中地域对应的域名。
上海:dsg-cn-shanghai.data.aliyun.com,dsg-oss-dic-ori.oss-cn-shanghai.aliyuncs.com
杭州:dsg-cn-hangzhou.data.aliyun.com,dsg-oss-dic-ori-hz.oss-cn-hangzhou.aliyuncs.com
北京:dsg-cn-beijing.data.aliyun.com,dsg-oss-dic-ori.oss-cn-beijing.aliyuncs.com
成都:dsg-cn-chengdu.data.aliyun.com,dsg-oss-dic-ori-cd.oss-cn-chengdu.aliyuncs.com
深圳售卖区: dsg-cn-shenzhen.data.aliyun.com,dsg-oss-dic-ori-sz.oss-cn-shenzhen.aliyuncs.com
华北政务云: dsg-cn-north-2-gov-1.data.aliyun.com,dsg-oss-dic-ori-north-2-gov-1.oss-cn-north-2-gov-1-internal.aliyuncs.com
上海金融云:dsg-cn-shanghai-finance-1.data.aliyun.com,dsg-oss-dic-ori-sh-fin-1.oss-cn-shanghai.aliyuncs.com
香港 :dsg-cn-hongkong.data.aliyun.com,dsg-oss-hongkong.oss-cn-hongkong.aliyuncs.com
新加坡: dsg-ap-southeast-1.data.aliyun.com,dsg-oss-ap-southeast-1.oss-ap-southeast-1.aliyuncs.com
美西: dsg-us-west-1.data.aliyun.com,dsg-oss-us-west-1.oss-us-west-1.aliyuncs.com
马来西亚:dsg-ap-southeast-3.data.aliyun.com,dsg-oss-ap-malaysia.oss-ap-southeast-3.aliyuncs.com
法兰克福: dsg-eu-central-1.data.aliyun.com,dsg-oss-eu-central-1.oss-eu-central-1-internal.aliyuncs.com
步骤四:为目标MaxCompute项目开启数据脱敏功能
-
添加待脱敏的MaxCompute项目。
-
登录数据保护伞控制台。
-
在左侧导航栏,选择规则配置 > 数据脱敏管理,进入数据脱敏管理。
-
在脱敏场景下拉列表选择MaxCompute底层脱敏(maxcompute_desense_code),并单击右侧选择脱敏project。
在授权账号脱敏对话框,从未脱敏project列表选择需要脱敏的项目添加至脱敏project列表中,选中我同意授权数据保护伞对以上项目进行MaxCompute底层脱敏,并单击确定。
-
新建数据脱敏规则。
-
可选:若脱敏规则指定的数据不需要对某些用户进行脱敏展示,您可配置脱敏规则白名单。
-
在数据脱敏管理界面,单击白名单配置管理。
-
在白名单配置管理页签,单击右上方的新增白名单。
-
在新增白名单对话框中,选择规则、用户组和生效时间。
说明
设置白名单生效时间后,若不在白名单脱敏时间的区间内,用户在查询该敏感信息时将会继续脱敏。
-
步骤五:查询SQL显示结果
DataWorks数据开发界面
-
关闭页面查询内容脱敏开关,详情请参见安全设置与其他。
执行查询SQL。
在您执行具体查询SQL前,请先在当前会话中通过set命令调用脱敏服务,不同地域调用底层脱敏服务命令如下所示。
说明
MaxCompute底层数据脱敏仅支持会话级别使用。
上海 set odps.output.field.formatter={"name":"aegis:masking_v2","param":["alias","index"]}; set odps.isolation.session.enable=true; set odps.internet.access.list=dsg-cn-shanghai.data.aliyun.com:80,dsg-cn-shanghai.data.aliyun.com:443,dsg-oss-dic-ori.oss-cn-shanghai.aliyuncs.com:80,dsg-cn-shanghai.data.aliyun.com:443; 杭州 set odps.output.field.formatter={"name":"aegis_hz:masking_v2","param":["alias","index"]}; set odps.isolation.session.enable=true; set odps.internet.access.list=dsg-cn-hangzhou.data.aliyun.com:80,dsg-cn-hangzhou.data.aliyun.com:443,dsg-oss-dic-ori-hz.oss-cn-hangzhou.aliyuncs.com:80,dsg-cn-shanghai.data.aliyun.com:80,dsg-cn-shanghai.data.aliyun.com:443,dsg-oss-dic-ori-hz.oss-cn-hangzhou.aliyuncs.com:443; 北京 set odps.output.field.formatter={"name":"aegis_bj:masking_v2","param":["alias","index"]}; set odps.isolation.session.enable=true; set odps.internet.access.list=dsg-cn-beijing.data.aliyun.com:80,dsg-cn-beijing.data.aliyun.com:443,dsg-oss-dic-ori.oss-cn-beijing.aliyuncs.com:80,dsg-oss-dic-ori.oss-cn-beijing.aliyuncs.com:443; 成都 set odps.output.field.formatter={"name":"aegis_cd:masking_v2","param":["alias","index"]}; set odps.isolation.session.enable=true; set odps.internet.access.list=dsg-cn-chengdu.data.aliyun.com:80,dsg-cn-chengdu.data.aliyun.com:443,dsg-oss-dic-ori-cd.oss-cn-chengdu.aliyuncs.com:80,dsg-oss-dic-ori-cd.oss-cn-chengdu.aliyuncs.com:443; 香港 set odps.output.field.formatter={"name":"aegis_hk:masking_v2","param":["alias","index"]}; set odps.isolation.session.enable=true; set odps.internet.access.list=dsg-cn-hongkong.data.aliyun.com:80,dsg-cn-hongkong.data.aliyun.com:443,dsg-oss-hongkong.oss-cn-hongkong.aliyuncs.com:80,dsg-oss-hongkong.oss-cn-hongkong.aliyuncs.com:443;
主要参数解释如下。
命令
含义
odps.output.field.formatter
表示要调用odps的脱敏函数。
-
aegis_hz:masking_v2:表示函数名称(name)
-
[“alias”,”index”]:表示参数信息(默认参数)。
odps.isolation.session.enable
表示当前调用是会话级别。会话结束后,脱敏功能便会失效。
odps.internet.access.list
表示运行执行函数时访问相关域名,用于查询数据保护伞的脱敏信息。
以杭州地域为例,完整实现MaxCompute底层数据脱敏脚本如下所示。
set odps.output.field.formatter={"name":"aegis_hz:masking_v2","param":["alias","index"]}; set odps.isolation.session.enable=true; set odps.internet.access.list=dsg-cn-hangzhou.data.aliyun.com:80,dsg-cn-hangzhou.data.aliyun.com:443,dsg-oss-dic-ori-hz.oss-cn-hangzhou.aliyuncs.com:80,dsg-cn-shanghai.data.aliyun.com:80,dsg-cn-shanghai.data.aliyun.com:443,dsg-oss-dic-ori-hz.oss-cn-hangzhou.aliyuncs.com:443; select * from table;
-
-
在数据开发界面查看脱敏结果。
odpscmd界面查询结果
配置访问域名。
在您执行具体查询SQL前,请先在odpscmd服务的Config配置文件中配置访问域名。
不同地域的域名配置,具体如下。
上海 set odps.internet.access.list=dsg-cn-shanghai.data.aliyun.com:80,dsg-cn-shanghai.data.aliyun.com:443,dsg-oss-dic-ori.oss-cn-shanghai.aliyuncs.com:80,dsg-cn-shanghai.data.aliyun.com:443; 杭州 set odps.internet.access.list=dsg-cn-hangzhou.data.aliyun.com:80,dsg-cn-hangzhou.data.aliyun.com:443,dsg-oss-dic-ori-hz.oss-cn-hangzhou.aliyuncs.com:80,dsg-cn-shanghai.data.aliyun.com:80,dsg-cn-shanghai.data.aliyun.com:443,dsg-oss-dic-ori-hz.oss-cn-hangzhou.aliyuncs.com:443; 北京 set odps.internet.access.list=dsg-cn-beijing.data.aliyun.com:80,dsg-cn-beijing.data.aliyun.com:443,dsg-oss-dic-ori.oss-cn-beijing.aliyuncs.com:80,dsg-oss-dic-ori.oss-cn-beijing.aliyuncs.com:443; 成都 set odps.internet.access.list=dsg-cn-chengdu.data.aliyun.com:80,dsg-cn-chengdu.data.aliyun.com:443,dsg-oss-dic-ori-cd.oss-cn-chengdu.aliyuncs.com:80,dsg-oss-dic-ori-cd.oss-cn-chengdu.aliyuncs.com:443; 香港 set odps.internet.access.list=dsg-cn-hongkong.data.aliyun.com:80,dsg-cn-hongkong.data.aliyun.com:443,dsg-oss-hongkong.oss-cn-hongkong.aliyuncs.com:80,dsg-oss-hongkong.oss-cn-hongkong.aliyuncs.com:443;
主要参数解释如下。
命令
含义
odps.internet.access.list
表示运行执行函数时访问相关域名,用于查询数据保护伞的脱敏信息。
以杭州地域为例,配置文件代码如下:
project_name=data_shield_hz # app access id and key are optional for individual users # app_access_id= # app_access_key= access_id=客户aid access_key=客户ak # this endpoint is for office environment end_point=http://service.odps.aliyun.com/api # this url is for odpscmd update update_url=http://odps.alibaba-inc.com/official_downloads # download sql results by instance tunnel use_instance_tunnel=true # the max records when download sql results by instance tunnel instance_tunnel_max_record=10000 set odps.internet.access.list=dsg-cn-hangzhou.data.aliyun.com:80,dsg-cn-hangzhou.data.aliyun.com:443,dsg-oss-dic-ori-hz.oss-cn-hangzhou.aliyuncs.com:80,dsg-cn-shanghai.data.aliyun.com:80,dsg-cn-shanghai.data.aliyun.com:443,dsg-oss-dic-ori-hz.oss-cn-hangzhou.aliyuncs.com:443;
-
执行查询SQL。
在您执行具体查询SQL前,请先在当前会话中通过set命令调用脱敏服务,不同地域调用底层脱敏服务命令如下所示。
说明
MaxCompute底层数据脱敏仅支持会话级别使用。
上海 set odps.output.field.formatter={"name":"aegis:masking_v2","param":["alias","index"]}; set odps.isolation.session.enable=true; 杭州 set odps.output.field.formatter={"name":"aegis_hz:masking_v2","param":["alias","index"]}; set odps.isolation.session.enable=true; 北京 set odps.output.field.formatter={"name":"aegis_bj:masking_v2","param":["alias","index"]}; set odps.isolation.session.enable=true; 成都 set odps.output.field.formatter={"name":"aegis_cd:masking_v2","param":["alias","index"]}; set odps.isolation.session.enable=true; 香港 set odps.output.field.formatter={"name":"aegis_hk:masking_v2","param":["alias","index"]}; set odps.isolation.session.enable=true;
主要参数解释如下。
命令
含义
odps.output.field.formatter
表示要调用odps的脱敏函数。
-
aegis_hz:masking_v2:表示函数名称(name)
-
[“alias”,”index”]:表示参数信息(默认参数)。
odps.isolation.session.enable
表示当前调用是会话级别。会话结束后,脱敏功能便会失效。
以杭州地域为例,完整实现MaxCompute底层数据脱敏脚本如下所示。
set odps.output.field.formatter={"name":"aegis_hz:masking_v2","param":["alias","index"]}; set odps.isolation.session.enable=true; select * from table;
-
-
查看脱敏结果。
步骤六:取消使用底层脱敏
执行如下SQL语句,取消使用的底层脱敏。
set odps.output.field.formatter=;
select * from table;
将无需脱敏的项目,移动到左边未脱敏project,取消脱敏配置。
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家
阿里云企业补贴进行中: 马上申请
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠
转转请注明出处:https://www.yunxiaoer.com/170767.html