MaxCompute安全管理指南-基础篇

背景及目的

  1. 方便和辅助MaxCompute的project owner或安全管理员进行project的平常安全运维,保障数据安全。
  2. MaxCompute有安全模型,DataWorks也有安全模型,当经过DataWorks使用MaxCompute,而DataWorks的安全模型不知足业务安全需求时,合理的将两个安全模型结合使用就尤为重要。

安全模型

MaxCompute安全模型

安全体系

MaxCompute 多租户的数据安全体系,主要包括以下内容:html

  • 用户认证
    支持 云帐号 和 RAM 帐号 两种帐号体系,对于RAM帐号,仅识别帐号体系不识别RAM权限体系,便可将主帐号自身的任意 RAM 子帐号加入 MaxCompute 的某一个项目中,但 MaxCompute 在对该 RAM 子帐号作权限验证时,并不会考虑 RAM 中的权限定义。
  • 用户与受权管理
    在MaxCompute Project中对用户添加(add)、移除(remove)、受权(grant)管理。
    还能够经过角色(role)管理受权,MaxCompute project默认有admin role。
    而受权方式包含ACL和Policy方式,本文只讲ACL方式,Policy方式待后续升级篇中介绍。
    ACL即似于 SQL92 定义的 GRANT/REVOKE 语法,它经过简单的受权语句来完成对已存在的项目空间对象的受权或撤销受权。受权语法以下:安全

    grant actions on object to subject
    revoke actions on object from subject
  • 标签安全策略
    基于标签的安全(LabelSecurity)是项目空间级别的一种强制访问控制策略(Mandatory Access Control, MAC),它的引入是为了让项目空间管理员能更加灵活地控制用户对列级别敏感数据的访问。
  • 跨项目空间的资源分享
    Package是一种跨项目空间共享数据及资源的机制,主要用于解决跨项目空间的用户受权问题。便可以分享table、Resource、function等资源给其余项目,可是无需对其余项目的用户进行管理。
  • 项目空间的数据保护
    主要解决“不容许用户将数据转移到项目空间以外”的需求。

对象操做赋权、Role 和 label 关系介绍

上个小节中介绍了MaxCompute体系包含多种策略,而各类策略赋权是权限递增关系。以须要获取一个L4等级表的权限来展开说明这个递增关系,主要进行如下步骤操做:网络

第一步: 若是用户未有过受权记录,且非本项目用户,首先须要添加一个 USER(用户),这个过程,用户尚未任何实际权限。app

第二步: 赋权 USER(用户)对象的操做权限,有如下方式赋权。运维

1) 能够是单独的操做权限;
2) 经过 policy 方式赋权给用户;
3) 将 ACL 和 policy 赋权给 role 再赋权给用户。 若是资源是没有设置 Label 的,则此时用户已经拥有的该资源的权限。

第三步: 对于拥有 Label 的资源,例如:数据表、打包了数据表的 package,则还须要 赋权 Label 权限。有如下四钟 Label 赋权:spa

1) 针对某个数据表的字段;
2) 针对某个数据表; 
3) 针对某个 package;
4) 给某个 USER(用户)一个批量的 Label 权限,不支持 ROLE。

各权限赋权过程及关系图以下:
undefined命令行

数据流程保护机制和 Package 关系介绍

ProjectProtection(数据流出保护机制)是 MaxCompute 防止项目内的数据批量流出的安全功能。 开启数据流程保护后,若是相互之间没有创建“TrustedProject Group” ,与其它 project 的数据赋权就必须经过 Package 方式进行,Package 赋权后,对方 package 能够自主赋权 Package 内的资源给组内用户。代理

部分资源(例如某些经常使用表、UDF 等),如想放权给其 Package 管理,也能够经过 Package 的方式,将资源打包后赋权给其余 Project。调试

ProjectProtection(数据流出保护机制)支持作例外处理,部分特殊的业务场景,能够针 对应用的 IP 地址、产品云帐号作 Exception 策略,以知足特殊的数据流出需求。code

undefined

DataWorks安全模型

DataWorks提供多人协同数据开发工做的平台,其安全模型须要考虑几方面:

  • 企业之间数据的安全隔离。
  • 数据开发即ETL过程当中的安全问题,如生产任务如何保障不可随意变动;如哪一个成员能够进行代码编辑调试,哪一个成员能够进行发布生产任务等。
  • 因为底层MaxCompute有本身的安全模型,项目成员作ETL过程确定会须要MaxCompute的各类资源(table、Resource、function、instance)的相关权限。

针对第一点,DataWorks的用户认证,DataWorks对接RAM,云帐号可做为主帐号进行开通并建立DataWorks项目,而项目成员必须为该主帐号的RAM子帐号不能是其余云帐号。
另外,同个主帐号建立的项目做为一个组织,项目与项目之间的任务能够进行依赖配置;不一样主帐号建立的项目之间数据(各类任务)隔离。

针对第二点,DataWorks经过业务划分“开发项目”、“生产项目”进行任务开发调试和稳定生产的隔离;经过成员角色控制哪一个成员能够进行任务开发调试,哪一个成员能够运维生产任务等。

针对第三点,DataWorks在MaxCompute Project建立成功的同时,在MaxCompute Project里对应DataWorks的角色建立role,并给不一样role赋权。

MaxCompute和DataWorks权限关系

从前面介绍的MaxCompute和DataWorks两个小节能够知道,经过MaxCompute的安全模型进行权限控制,并不会影响成员在DataWorks任何界面操做。经过DataWorks的用户角色分配,是有可能影响成员的MaxCompute资源权限。下面咱们详细介绍这两个产品之间权限如何交叉关联。

项目关系

经过MaxCompute或DataWorks官网产品页进入的控制台建立的项目,

DataWorks 两种选择:

  • 简单模式的项目其实是建立了关联绑定好的一个MaxCompute project和一个DataWorks项目空间,同时在MaxCompute 的project里建立对应的几个role,具体role权限后续小节会介绍。
  • 标准模式的项目其实是建立了关联绑定好的一个开发(dev)MaxCompute project、一个生产(prod)MaxCompute project对应一个DataWorks项目空间。同时在MaxCompute 的project里建立对应的几个role,具体role权限后续小节会介绍。

帐号认证

云帐号在DataWorks项目中只能是主帐号即项目owner,在MaxCompute既能够为owner也能够为普通user。当经过DataWorks项目成员管理添加成员时只能是添加当前项目主帐号对应的RAM子帐号。而MaxCompute能够经过命令行add user xxx;命令添加其余云帐号。

undefined

成员角色权限关系

如前面小节(DataWorks安全模型)说的DataWorks为了解决项目成员在ETL过程当中须要的MaxCompute相关资源权限,绑定了一些MaxCompute role。具体是指DataWorks项目固定有几个成员角色,同时在对应MaxCompute project上建立了对应几个role。另外MaxCompute project自己除了project owner,也还有一个admin role。

具体权限对应以下表:

MaxCompute角色 MaxCompute数据权限 DataWorks成员角色 平台权限特征
project owner MaxCompute project的owner,拥有全部project的权限。
admin 每个project在建立时,会自动建立一个 admin 的role,而且为该role授予了肯定的权限:能够访问project的全部对象、对user或role进行管理、对user或role进行受权。
与project Owner 相比,admin 角色不能将 admin 权限指派给用户,不能设定项目空间的安全配置,不能修改项目空间的鉴权模型,admin 角色所对应的权限不能被修改。
project owner能够将这admin role赋权给一个user,让该user代理安全管理。
role_project_admin project/table/fuction/resource/instance/job/package 的全部权限 项目管理员 指项目空间的管理者,可对该项目空间的基本属性、数据源、当前项目空间计算引擎配置和项目成员等进行管理,并为项目成员赋予项目管理员、开发、运维、部署、访客角色。
role_project_dev project/fuction/resource/instance/job/package/table 的全部权限 开发 开发角色的用户可以建立工做流、脚本文件、资源和 UDF,新建/删除表,同时能够建立发布包,但不能执行发布操做。
role_project_pe project/fuction/resource/instance/job 的全部权限,拥有package 的 read 权限和table 的 read/describe 权限。 运维 运维角色的用户由项目管理员分配运维权限;拥有发布及线上运维的操做权限,没有数据开发的操做权限。
role_project_deploy 默认无权限 部署 部署角色与运维角色类似,可是它没有线上运维的操做权限。
role_project_guest 默认无权限 访客 访客角色的用户只具有查看权限,没有权限进行编辑工做流和代码等操做。
role_project_security 默认无权限 安全管理员 安全管理员仅在数据保护伞中用到,用于敏感规则配置,数据风险审计等

由上表可知,DataWorks角色对应的MaxCompute权限是固定的,一旦某个user经过DataWorks角色获取MaxCompute相关role权限后,又经过命令行方式得到MaxCompute的其余权限,会使该user在MaxCompute的权限与在DataWorks上看到的不一致。

用户和权限关系图

一个DataWorks项目空间绑定一个MaxCompute project,此时根据DataWorks的项目管理——MaxCompute设置中的“MaxCompute访问身份”这个属性设置决定DataWorks其余项目成员是否拥有MaxCompute project的权限。

image

标准模式,一个DataWorks项目空间绑定两个MaxCompute project,此时固定MaxCompute的project一个是开发项目一个是生产项目,DataWorks其余项目成员根据成员角色拥有MaxCompute 开发project对应的role权限,但没有MaxCompute生产project的权限,MaxCompute 任务须要走发布流程发布到生产project后以owner帐号提交到MaxCompute执行。

image

用户与权限管理

用户管理

操做类型 DataWorks用户管理 MaxCompute用户管理
操做描述 准确添加和管理用户,应删除或锁定,无属主、闲置以及离职人员的帐号权限,严控管理员、运维权限。 应删除或锁定,无属主、闲置以及离职人员的帐号权 限。 经过DataWorks新增的用户,注意会可能受权于默认的 role。
操做角色 项目管理员 owner或admin role
现状查看 DataWorks项目管理页模块的——项目成员管理查看现有成员及角色,并确认各个成员权限的合理性。 查看项目下的用户:
list users;;
查看指定用户拥有的权限:
show grants for <username>;
赋权操做 DataWorks项目管理页模块的——项目成员管理添加成员和分配角色。注意:
1.只能添加该项目负责人帐号下的RAM子帐号为项目成员;
2.添加一个成员,并分配角色,可能会在MaxCompute 赋予默认的 role 权限。具体可参看前面《MaxCompute & DataWorks用户和权限关系图》小节
成员仅加入 MaxCompute project,不在DataWorks 项目成员中体现,且无任何权限。 须要结合“对象操做”、“Role 权限”、“label 权限”才能使用,因此应关注成员是否拥有“对象操做”和“label 权限”,并对相应受权进行清理。
另外,能够添加云帐号和RAM子帐号。
在项目空间中添加用户:
add user <username>;
回退操做 清理成员或对应角色权限,删除后,会自动清除对应 MaxCompute 内的 user 和默认 role。 在项目空间中移除用户:
remove user <username>;

角色管理

操做类型 MaxCompute role管理 DataWorks角色管理
操做描述 准确的建立role并配置role权限,及时清理离职或转岗人员的帐号,清理role中没必要要开放的资源和权限。
MaxCompute project建立成功后除了默认有admin role外,DataWorks还给建立几个role具体可参考前面《成员角色权限关系》小节。
准确的分配角色,成员工做性质发生改变需及时改变角色,严格控制项目管理员和运维角色的分配。
操做角色 project owner或admin 项目管理员
现状查看 查看当前project全部role:list roles;
查看role中的权限:describe role <role_name>;
查看某用户在什么role中:show grants for <username>;
查看某个role都指派给哪些user:目前暂不支持!
DataWorks项目管理->成员管理页面,能够点击每一个角色查看该角色下的成员。
赋权操做 MaxCompute除了默认的role,还能够自定义role,经过命令自定义role权限并将role受权给user。
建立role:Create role <role_name>;
给角色受权:grant actions on object to <role_name>;
添加用户到角色:GRANT <roleName> TO <full_username> ;

此外,DataWorks的项目管理->MaxCompute高级配置->自定义用户角色页面,能够经过界面方式建立MaxCompute自定义role、对role进行受权、将role受权给成员,可是注意经过命令行建立的role不会在这个界面显示。
DataWorks角色是固定的不能自定义,成员添加到DataWorks项目时勾选角色分配给成员,该成员既可拥有对应角色的权限。
回退操做 删除角色中的用户:REVOKE <roleName> FROM <full_username>;
撤销对角色的受权:revoke <privList> on <objType> <objName> from role <rolename>;
删除角色:DROP ROLE <roleName>;
若是是经过DataWorks的项目管理->MaxCompute高级配置->自定义用户角色页面建立的role,也经过这个页面进行回退操做。
DataWorks的角色不能删除,只能将某个成员的角色去掉。

ACL(对象操做)的受权管理

操做类型 说明
操做描述 回收非必须必要的对象操做受权,操做权限涉及多种操做对象和类型,应逐一确认。
操做角色 project owner或admin role
现状查看 查看指定用户的权限:
show grants for <username>;
查看当前用户的权限:
show grants;
查看指定对象的受权列表:
show acl for <objectName> [on type <objectType>];
查看某 package 赋权状况案例:
show acl for alipaydw.alipaydw_for_alisec_app on type package;
赋权操做 进行某对象的操做赋权:
grant actions on object to subject;
操做、主体、客体类型表达式:
actions 类型: action_item1, action_item2, ...
object 类型:project project_name,table schema_name ,instance inst_name ,function func_name ,resource res_name
subject 类型:user full_username ,role role_name
操做、主体、客体类型,详细说明请看官方文档
回退操做 回收某对象的操做权限:
revoke actions on object from subject;

Role受权管理

操做类型 说明
操做描述 角色(Role)能够打包多个 ACL 权限。当须要对一组用户赋予相同的权限,或者多ACL 权限时,可使用角色(Role)来受权。
操做角色 project owner或admin role
现状查看 查看指定角色的赋权内容,以及拥有该权限用户:
describe role <rolename>;
查看指定用户拥有哪些 role 及 ACL:
show grants for <username>;
查看当前用户的 role 及 ACL:
show grants; 
赋权操做 1. 建立角色:
create role <rolename>;
2. 给用户指派某种角色:
grant <rolename> to <username>;
3. 给角色打包 ACL,有两种方式:
方法一:逐一执行 ACL 受权命令。:
grant actions on object to role <rolename>;
操做、主体、客体类型表达式:
actions 类型: action_item1, action_item2, ...
object 类型:project project_name , table schema_name ,instance inst_name , function func_name , resource res_name
操做、主体类型,详细说明见官方文档
方法二:新建 policy 文件,将 policy 映射给 role。
Put policy <policy 文件所在本地位置> on role <rolename>;
案例:
PUT POLICY D:\sx_default.txt ON ROLE sx_default; 将存放在 D 盘根目录下的 policy 文件 sx_default.txt,映射给 sx_default 角色;
Policy 配置详见《policy 的受权》小节
回退操做 1. 删除角色:
drop role <rolename>;
2. 撤销角色指派:
revoke <rolename> from <username>;
3. 更改角色打包的 ACL,两种方式:
方法一:逐一执行 ACL 更改受权命令。
revoke actions on object from role <rolename>;
方法二:更改 policy 文件,将新的 policy 映射给 role。
Put policy <policy 文件所在本地位置> on role <rolename>; 

package受权管理

操做类型 说明
操做描述 开启 ProjectProtection 的项目,若是没有在同一个互信项目组(TrustedProject Group),则必须使用 package 方式赋权,package 赋权有两种方式。确保package 合理打包和赋权,无闲置 package 赋权。
操做角色 project owner
现状查看 1. 了解本项目 Package 建立及赋权状况:
查看已建立和已安装的 Package 列表:
show packages;
查看 Package 详细信息:
describe package <pkgname>;
2. 本项目安装的 Package ,对用户的受权状况:
show acl for <project_name.package_name> on type package;
赋权操做 Package建立者:
1. 建立 Package:
create package <pkgname>;
2. 将分享的资源添加到 Package:
add project_object to package package_name [with privileges privileges];
project_object 表达式:
table table_name ,instance inst_name ,function func_name ,resource res_name
3. 许可其余项目空间使用 Package:
allow project <prjname> to install package <pkgname> [using label<number>];
Package使用者:
1. 安装 Package:
install package <pkgname>;
2. 将 package 赋权给用户、角色,package赋权给具体用户时,不能指定 label。(project owner 或admin 均可操做)
grant actions on package <pkgName> to user <username>;
grant actions on package <pkgName> to role <role_name>;
actions 类型:参考官方文档,通常将Package的 read权限赋给对象既可知足对象访问package里的资源。
回退操做 1. 撤销其余项目空间使用 Package 的许可:
disallow project <prjname> to install package <pkgname>;
2. 删除 Package:
delete package <pkgname>;
3. 将分享的资源移出 Package:
remove project_object from package package_name;
project_object 表达式:
table table_name ,instance inst_name ,function func_name ,resource res_name
4. 撤销 package 的用户、角色的权限。
revoke actions on package <pkgName> from user <username>;
revoke actions on package <pkgName> from role <role_name>; 

Label受权管理

操做类型 说明
操做描述 Maxcompute的字段、表、package 分为 1~4 个等级,应根据用户实际须要,赋予对应的 label 权限。
操做角色 project owner
现状查看 1. 查看一个用户能访问哪些敏感数据集:
SHOW LABEL [<level>] GRANTS [FOR USER <username>];
--省略 [FOR USER <username>]时,查看当前用户所能访问的敏感数据集.
--省略<level>时,将显示全部 label 等级的受权;
--若指定<level>,则只显示指定等级的受权.
2. 查看一个敏感数据表能被哪些用户访问:
SHOW LABEL [<level>] GRANTS ON TABLE <tablename>;--显示指定 table 上的 Label 受权
3. 查看一个用户对一个数据表的全部列级别的 Label 权限:
SHOW LABEL [<level>] GRANTS ON TABLE <tablename> FOR USER <username>;
--显示指定用户对指定 table 上列级别的 Label 受权 
赋权操做 1. 给用户单个表或字段的安全许可标签。
GRANT LABEL <number> ON TABLE <tablename>[(column_list)] TO USER <username> [WITH EXP <days>]; --默认过时时间是 180 天
举例:
GRANT LABEL 2 ON TABLE t1 TO USER alice WITH EXP 1; --显式受权alice 访问 t1 表中敏感度不超过 2 级的数据,受权有效期为 1 天
GRANT LABEL 3 ON TABLE t1(col1, col2) TO USER alice WITH EXP 1; --显式受权 alice 访问 t1(col1, col2)中敏感度不超过3 级的数据,受权有效期为 1 天
2. 给用户受权整个项目的安全许可标签。
SET LABEL <number> TO USER <username>;
3. 控制 package 安装者对 package 中敏感资源的许可访问级别
ALLOW PROJECT <prjName> TO INSTALL PACKAGE <pkgName> [USING LABEL <number>];--由 package 建立者受权,授予 package 安装者对 package 中敏感资源的许可访问级别
4. 将 package 赋权给用户、角色,package 赋权给具体用户时,不能指定 label。
grant actions on package <pkgName> to user <username>;
grant actions on package <pkgName> to role <role_name>;
回退操做 1. 撤销用户单个表或字段的安全许可标签。
【撤销受权】:
REVOKE LABEL ON TABLE <tablename>[(column_list)] FROM USER <username>;
【清理过时的受权】:
CLEAR EXPIRED GRANTS;
举例:
REVOKE LABEL ON TABLE t1 FROM USER alice;--撤销 alice对 t1 表的敏感数据访问
2. 更改用户受权整个项目的安全许可标签,默认等级为 0。
SET LABEL <number> TO USER <username>;
3. 更改 package 安装者对 package 中敏感资源的许可访问级别,调整为其余级别,默认为 0。
ALLOW PROJECT <prjName> TO INSTALL PACKAGE <pkgName> [USING LABEL <number>];
4. 撤销 package 的用户、角色的权限。
revoke actions on package <pkgName> from user <username>;
revoke actions on package <pkgName> from role <role_name>;

安全功能启用

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

项目空间的数据保护主要解决“不容许用户将数据转移到项目空间以外”的需求。

操做类型 说明
操做描述 设置 ProjectProtection 避免项目批量数据下载到本地电脑,出现批量数据泄露风险。
操做角色 project owner
查看现状 执行命令:
show SecurityConfiguration;
查是否 ProjectProtection=true
操做设置 设置 ProjectProtection 机制,默认为 false;
两个方法设置:
DataWorks界面上设置:
进入DataWorks项目管理->MaxCompute设置->基本设置页面,把“项目空间数据保护”属性打开。
命令行方式执行MaxCompute命令:
SET ProjectProtection=true [WITH EXCEPTION <policyFile>];
开启后因为部分公共帐号,我的用户因种种缘由须要数据流出权限,根据须要附带 exception 例外策略(白名单),exception policy具体看升级篇介绍。
如下情形建议配置 Exception 策略
1) 须要数据流出权限的应用系统云帐号或 IP 地址。
2) 我的帐号开通白名单,应指定容许下载的表。
添加项目互信:
对于数据可互通的 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 机制,默认为 false。
Set LabelSecurity=true; 
回退操做 关闭 LabelSecurity 机制:
Set LabelSecurity=false; 
操做前,须要确认外部 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]。
举例:
SET LABEL 1 TO TABLE t1; --设置表 t1 的 label 为 1 级
SET LABEL 2 TO TABLE t1(mobile, addr); --将 t1 的 mobile,addr 两列的 label 设置为 2 级
SET LABEL 3 TO TABLE t1; --设置表 t1 的 label 为 3 级. 注意此时 mobile,addr 两列的 label 仍为 2 级 
注意:经过命令行设置自动安全级别后,在DataWorks的数据管理界面,对应表字段安全等级不一样步,所以,建议经过DataWorks对表的字段进行安全级别设置
回退操做 将安全等级调整回原来等级。注意:字段安全等级的上调,会致使原有的受权失效(涉及 package 受权、生产帐号和我的帐号),调整前必须通知到受影响用户,以减小影响。

设置访问Project的IP白名单

操做类型 说明
操做描述 设置IP白名单,指定白名单列表中的IP(console或者SDK所在的出口IP)可以访问这个Project。
注:
1.当前project的全部user(包括主帐号)都会受限。 
2.DataWorks的机器默认在白名单内,所以经过DataWorks提交MaxCompute任务不会受此限制。
操做角色 project owner
查看现状 经过console执行命令:
setproject;
查看对应的‘odps.security.ip.whitelist= ’若等号后面为空则未设置白名单列表
操做设置 设置前请特别注意:在白名单list加上本身当前机器IP,以避免把本身屏蔽。 
经过console执行命令:
setproject odps.security.ip.whitelist=xxx.xxx.xxx.xxx,xxx.xxx.x.x/xx,xxx.xxx.xxx.xxx-xxx.xxx.xxx.xxx; 
白名单中IP列表的表示格式有三种。
单纯IP:例如101.132.236.134。
子网掩码:100.116.0.0/16。
网段:101.132.236.134-101.132.236.144。 
设置IP白名单后,您须要等待五分钟后才会生效。
若需更精细化管理,也能够经过policy受权,可参考后面的案例《project Policy 案例》。
回退操做 IP白名单清空后,MaxCompute就认为Project关闭了白名单功能。
setproject odps.security.ip.whitelist=; 

设置禁止DataWorks的select结果下载到本地

操做类型 说明
描述 开发者经过DataWorks进行数据分析,一般会屏显在IDE上而且能够下载结果。project设置ProjectProtection为true后,在本project中只要有表的读取权限,依然能够经过DataWorks的开发界面select后进行结果下载。
操做角色 DataWorks管理员
查看现状 进入DataWorks的项目管理->项目设置页面,查看“在本项目中能下载select结果”属性是否打开。
操做设置 进入DataWorks的项目管理->项目设置页面,关闭“在本项目中能下载select结果”开关。
回退操做 进入DataWorks的项目管理->项目设置页面,打开“在本项目中能下载select结果”开关。

如何经过其它云服务提升安全管理

使用MaxCompute过程当中,会关联使用到其余的云服务,所以也须要考虑经过其余云服务提升MaxCompute的安全管理。本章节主要介绍经过DataWorks使用MaxCompute时,添加项目成员必须会用到RAM子帐号,那么如何在RAM子帐号服务上提升安全管理。

前面《MaxCompute安全模型》章节中提到MaxCompute的用户认证“支持 云帐号 和 RAM 帐号 两种帐号体系,对于RAM帐号,仅识别帐号体系不识别RAM权 限体系,便可将主帐号自身的任意 RAM 子帐号加入 MaxCompute 的某一个项目中,但 MaxCompute 在对该 RAM 子帐号作权限验证时,并不会考虑 RAM 中的权限定义。” 所以,咱们只须要从RAM子帐号登陆验证入手进行安全控制。

子帐号密码强度设置

若是您容许子用户更改登陆密码,那么应该要求他们建立强密码而且按期轮换。
您能够经过 RAM 控制台设置密码策略,如最短长度、是否须要非字母字符、必须进行轮换的频率等等。

undefined

子帐号登陆掩码设置

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

undefined

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

当一个子帐号对应员工因为工做职责变动而再也不使用权限时,应该及时将对应子帐号的权限撤销。

相关文章
相关标签/搜索