MaxCompute与DataWorks权限介绍和示例

背景:用户在使用MaxCompute与DataWorks这两种权限模型不清楚,而且对于相关MaxCompute的权限执行语句也不太熟悉,以致于在本身的实际操做中不能创建完整的权限策略,致使权限控制的混乱,甚至在开发过程当中时常遇到权限问题的错误,致使延误业务的推进进展,该篇文档集主要的权限知识点与一体,经常使用的MaxCompute权限语句,以及经典的开发环境和生产环境之间的赋权示例给你们作出作出介绍。数据库

1、MaxCompute的安全模型安全

1

2、DataWorks安全模型函数

2

3、子帐户添加的限制阿里云

3

4、MaxCompute的受权管理图spa

4

5、受权场景和注意事项命令行

5

6、移除用户的注意事项code

6

7、成员管理的相关语句对象

查当作员:ip

Project owner或admin命令行执行
List users;   --查当作员列表
Show grants for <username>; -- 查看某成员权限

添加成员:ci

1.DataWorks添加RAM子帐号;
2.Project owner或admin命令行方式执行
add user <username>   --可为RAM子帐户或其余云帐户

删除成员:

1.DataWorks删除RAM子帐号;
2.Project owner或admin命令行方式执行:
remove user <username>

8、角色管理的相关语句:

查看角色:

查看role列表:List roles;
查看role中的权限:describe role <role_name>
查看某用户在什么role中:show grants for <username>
查看某个role都指派给那些user:目前不支持!

建立角色:

建立role:Create role <role_name>;
给角色受权:grant actions on object to <role_name>
添加用户到角色:grant <roleName> TO <full_username>

删除角色:

删除角色中的用户:REVOKE <roleName> FROM <full_usename>;
撤销对角色的受权:revoke <privList> on <objType> <objName> from role <rolename>
删除角色: DROP ROLE <roleName>

9、policy受权介绍

Policy受权则是⼀种基于主体的受权。经过Policy受权的权限数据(即访问策略)被看作是受权主体的⼀种 ⼦资源。只有当主体(⽤户或⻆⾊)存在时才能进⾏Policy受权操做。当主体被删除时,经过Policy受权的 权限数据会被⾃动删除。 Policy受权使⽤MaxCompute⾃定义的⼀种访问策略语⾔来进⾏受权,容许或 禁⽌主体对项⽬空间对象的访问权限。 

Policy受权机制,主要解决ACL受权机制⽆法解决的⼀些复杂受权场景,⽐如:

  • ⼀次操做对⼀组对象进⾏受权,如全部的函数、全部以 “taobao” 开头的表
  • 带限制条件的受权,如受权只会在指定的时段内才会⽣效、当请求者从指定的IP地址发起请求时受权才 会⽣效、或者只容许⽤户使⽤SQL(⽽不容许其它类型的Task)来访问某张表。

Policy受权语句格式以下:

GET POLICY; --读取项目空间的Policy 
PUT POLICY <policyFile>; --设置(覆盖)项目空间的Policy 
GET POLICY ON ROLE <roleName>; --读取项目空间中某个角色的Policy 
PUT POLICY <policyFile> ON ROLE <roleName>; --设置(覆盖)项目空间中某个角色的Policy

policy基本术语

  • 主体(Principal) 主体(Principal)是指访问策略中的权限被指派的对象。⽐如,访问策略”容许张三在 2011年12⽉31⽇以前对资源SampleBucket执⾏CreateObject操做”中的主体是”张三”。
  • 操做(Action) 操做(Action)是指主体对资源的访问⽅法。⽐如,访问策略”容许张三在2011年12⽉ 31⽇以前对资源SampleBucket执⾏CreateObject操做”中的操做是”CreateObject”。
  • 资源(Resource) 资源(Resource)是指主体请求访问的对象。⽐如,访问策略”容许张三在2011年12 ⽉31⽇以前对资源SampleBucket执⾏CreateObject操做”中的资源是”SampleBucket”。
  • 访问限制(Access Restriction) 访问限制(Access Restriction)是指权限⽣效的限制条件。⽐如,访 问策略”容许张三在2011年12⽉31⽇以前对资源SampleBucket执⾏CreateObject操做”中的限制 条件是”在2011年12⽉31⽇以前”。
  • 效⼒(Effect) 受权效⼒包括两个⽅⾯:容许操做(Allow)和拒绝操做(Deny)。一般,Deny有更⾼ 的效⼒,在权限检查时会优先使⽤。 注意:“拒绝操做”和”撤销受权”是彻底独⽴的两个概念,撤销授 权一般包括撤销对Allow和Deny这两种不一样效⼒的受权,⽐如传统数据库⼀般⽀持Revoke和Revoke Deny两种操做

受权语句(Statement)结构

  • Effect: 指明该条语句的权限类型,取值必须为Allow或Deny。
  • Principal: 若是Policy在受权时是与⽤户或⻆⾊绑定,那么就不容许再指定Principal,⽐如 MaxCompute的Role Policy。 若是Policy在受权时是与项⽬空间或项⽬空间内的对象绑定,那么必 须指Principal,⽐如MaxCompute的Project Policy。
  • Action: 它表示受权操做,能够是⼀个或多个操做名,可⽀持通配符号” ” 和 ” ? ” 。 例 如 , A c t i o n = “ ” 表示全部的操做。
  • Resource: 它表示受权对象,能够是⼀个或多个对象名,可⽀持通配符号” ” 和 ” ? ” 。 例 如 R e s o u r c e = “ ” 表示全部的对象。
  • Condition Block: 条件块是该条受权语句所述权限得以⽣效的条件。条件块结构请参⻅下节的描述。

10、Policy的实际使用受权案例

基于之前的经验,咱们在odps项目中建立了两个基本的角色,分别是开发角色dev、查询角色adhoc。

create role dev;
create role adhoc;

咱们对于角色的权限要求大概分以下两类:

  • A开发权限:不能修改project属性但能够读取project信息,有建表、建资源、建Job等各类经常使用权限;能够修改、删除本身在开发库中建立的表,但对于其余同窗建立的表则只有读取权限。
  • B查询权限:只能读取project信息,不能建表、建资源、建Job;只能读取表,但没有任何修改、删除权限。

咱们的安全策略大体是这样的:

  • 开发库上,给全部开发同窗赋予A开发权限。
  • 生产库上,给全部开发同窗赋予B查询权限。

原文连接

本文为阿里云内容,未经容许不得转载。