您可以通过项目空间的安全配置项目空间的数据保护列级别访问控制启用MaxCompute的安全功能。

设置ProjectProtection(数据流出保护机制)

项目空间的数据保护主要用于满足不允许用户将数据转移到项目空间之外的需求。
操作类型 说明
操作描述 设置ProjectProtection避免项目批量数据下载到本地电脑,出现批量数据泄露风险。
操作角色 Project Owner。
查看现状 执行命令: show SecurityConfiguration;,查看当前设置是否为ProjectProtection=true
操作设置 设置ProjectProtection机制,默认为False。两种设置方法:
  • DataWorks项目管理 > MaxCompute高级配置 > 项目空间数据保护
  • 执行MaxCompute命令: SET ProjectProtection=true [WITH EXCEPTION <policyFile>];

开启后由于部分公共账号或个人用户因种种原因需要数据流出权限,根据需要可设置Eception例外策略(白名单)。

以下情形建议配置Exception策略:
  • 需要数据流出权限的应用系统云账号或IP地址。
  • 个人账号开通白名单,应指定允许下载的表。
对于数据可互通的Project可以通过项目互信的方式确保数据顺利流转。添加项目互信的方式有以下几种:
  • 查看当前Project中的所有TrustedProjects: list trustedprojects;
  • 在当前Project中添加一个TrustedProject:add trustedproject <projectname>;
  • 在当前Project中移除一个TrustedProject:remove trustedproject <projectname>;

未添加TrustedProject的项目需要申请本项目数据时,要以Package方式授权。

回退操作

关闭ProjectProtection机制: SET ProjectProtection=false;

移除TrustedProject:remove trustedproject <projectname>;

开启Label Security(列及安全控制)

基于标签的安全(LabelSecurity)是项目空间级别的一种强制访问控制策略(Mandatory Access Control, MAC),它能让项目空间管理员更灵活地控制用户对列级别敏感数据的访问

操作类型 说明
操作描述 打开LabelSecurity确保字段级别安全控制生效, 项目空间中的LabelSecurity安全机制默认是关闭的。
操作角色 Project Owner。
查看现状 执行命令:show SecurityConfiguration;,查看当前设置是否为LabelSecurity=true
操作设置 开启LabelSecurity机制:Set LabelSecurity=true;,默认为False。
回退操作 关闭LabelSecurity机制:Set LabelSecurity=false; 。操作前,需要确认本Project是否为其它Project赋于了本Project里表的Label权限。

设置字段的Label

操作类型 说明
操作描述 MaxCompute数据的敏感性可以分为0~4级。所有数据表均可以设置安全等级,避免数据表出现不合理授权访问情形。
查看现状 您可以通过以下两种方式查看MaxCompute表字段的等级:
  • 执行命令:DESCRIBE <tablename>;
  • 在DataWorks的数据管理查看表详情中的字段信息。
操作设置 您可以通过以下两种方式为表字段设置安全级别:
  • 方式一(推荐)

    DataWorks的数据管理里,新建表或者编辑已有表的字段信息,均可以设置字段安全级别。

    说明 只有Project设置了LabelSecurity=true,数据管理页面才可见字段安全级别属性。
  • 方式二

    执行命令:SET LABEL <number> TO TABLE tablename[(column_list)];。number的取值范围:[0, 4]。

    举例:
    • 将表t1的Label设置为1级:SET LABEL 1 TO TABLE t1;
    • 将表t1的mobile、addr两列的Label设置为2级:SET LABEL 2 TO TABLE t1(mobile, addr);
    • 将表t1的Label设置为3级:SET LABEL 3 TO TABLE t1; 。此时,mobile、addr两列的Label仍为2级。
    说明 通过命令行设置自动安全级别后,在DataWorks的数据管理界面,对应表字段安全等级不同步。因此,建议使用DataWorks对表的字段进行安全级别设置。
回退操作 将安全等级调整回原来等级。
说明 字段安全等级的上调,会导致原有的授权失效(涉及package授权、生产账号和个人账号)。因此,调整前必须通知到受影响用户。

设置访问Project的IP白名单

操作类型 说明
操作描述 设置IP白名单,指定白名单列表中的IP(Console或者SDK所在的出口IP)能够访问这个Project。
说明
  • 当前Project的所有User(包括主账号)都会受限。
  • DataWorks的机器默认在白名单内,因此通过DataWorks提交MaxCompute任务不会受此限制。
操作角色 Project Owner。
查看现状

通过Console执行命令: setproject;,查看对应的odps.security.ip.whitelist=;。若等号后面为空,则表示未设置白名单列表。

操作设置

设置前请特别注意:在白名单List加上自己当前机器IP,以免把自己屏蔽。

通过客户端执行命令: setproject odps.security.ip.whitelist=xxx.xxx.xxx.xxx,xxx.xxx.x.x/xx,xxx.xxx.xxx.xxx-xxx.xxx.xxx.xxx;

白名单中IP列表的表示形式有以下三种,目前已支持IPV6格式。
  • 单纯IP:例如101.132.236.134、FE80:0202:B3FF:FE1E:8329。
  • 子网掩码:例如100.116.0.0/16、FE80:0101:4567:F456:0202:B3FF:1111:1111/126。
  • 网段:例如101.132.236.134-101.132.236.144、FE80:0101:4567:F456:0202:B3FF:FE1E:8330-FE80:0101:4567:F456:0202:B3FF:FE1E:8331。

设置完IP白名单后,您需要等待五分钟后才会生效。若您需更精细化管理,也可以通过Policy授权。

回退操作 清空IP白名单的命令为:setproject odps.security.ip.whitelist=; 。IP白名单清空后,MaxCompute会认为Project关闭了白名单功能。

禁止DataWorks的elect结果下载到本地

操作类型 说明
描述 开发者通过DataWorks进行的数据分析,通常会屏显在IDE上并且可以下载结果。Project设置ProjectProtection为True后,在本Project中只要有表的读取权限,依然可以通过DataWorks的数据开发界面elect后进行结果下载。
操作角色 DataWorks管理员。
查看现状 进入DataWorks的项目管理 > 工作空间配置,查看下载select结果属性是否打开。
操作设置 进入DataWorks的项目管理 > 工作空间配置,关闭下载select结果开关。
回退操作 进入DataWorks的项目管理 > 工作空间配置,打开下载select结果开关。

通过其它云服务提高安全管理等级

使用MaxCompute过程中,会关联使用到其他的云服务,因此也需要考虑通过其他云服务提高MaxCompute的安全管理。通过DataWorks使用MaxCompute时,添加项目成员必须会用到RAM子账号,以下为您介绍如何在RAM子账号服务上提高安全管理等级。

MaxCompute的用户认证支持云账号和RAM账两种账号体系。对于RAM账号,仅识别账号体系不识别RAM权限体系,即可将主账号自身的任意RAM子账号加入MaxCompute 的某一个项目中。MaxCompute在对该RAM子账号做权限验证时,并不会考虑RAM中的权限定义。因此,我们只需要从RAM子账号登录验证入手进行安全控制。

子账号密码强度设置

如果您允许子用户更改登录密码,则应该要求他们创建强密码并且定期轮换。

您可以通过RAM控制台设置密码策略,如最短长度、是否需要非字母字符、必须进行轮换的频率等等。

子账号登录掩码设置

通过设置网络掩码决定哪些IP地址会受到登录控制台的影响,子用户必须只能从指定的IP地址进行登录。

及时撤销用户不再需要的权限

当一个子账号对应员工由于工作职责变更而不再使用权限时,应该及时将对应子账号的权限撤销。