摘要: 本文将为您介绍项目空间内的访问控制和权限管理。
项目空间内的访问控制分为以下五类:
- 用户管理
- ACL授权
- Policy授权
- 角色管理
- 基于标签的访问控制管理
用户管理
任意非项目空间Owner用户必须被加入MaxCompute项目空间中,并被授予相对应权限,方能操作MaxCompute中的数据、作业、资源及函数。示例如下:
假设Alice创建一个名为WonderLand的项目,自动成为Owner。没有Alice的授权,其他任何人都无法访问WonderLand。
Alice要授权Bob允许他访问WonderLand中的一些对象,操作如下:
- Bob要有一个合法的云账号或者是Alice的RAM子账号。
- Alice要把Bob的账号加到项目中来。
- 赋一些对象的权限给Bob。
注意:
- Alice要禁止Bob访问项目,则直接将他的账号从项目中移除即可。
- Bob虽然被移除出了项目,但他之前被授予的权限仍然保留在项目中。下次一旦他被Alice加入同一个项目,原有的权限将会被自动激活。
RAM子账号管理
RAM子账号分两类,每个项目有不同的RAM子账号,不同的RAM子账号访问交换空间中的内容有一定的区别。
场景描述 | 是否允许 |
---|---|
Alice把云账号Andy加入到Project中 | 允许 |
Alice把她的子账号Tony加入到Project中 | 允许 |
Alice把Andy的子账号daniel加入到Project中 | 不允许 |
授权
授权三要素:主体(Subject)、客体(Object)和操作(Action)。
您可以通过ACL(基于对象)和Policy(基于策略)两种方法进行授权。
ACL授权
ACL授权的基本语法如下:
GRANT <privileges> ON <object> TO <subject>;
REVOKE <privileges> ON <object> FROM <subject>;
示例如下:
假设云账号用户dean@aliyun.com是新加入到项目空间WonderLand的成员。他需要提交作业、创建数据表、查看项目空间已存在的对象。管理员执行的授权操作如下:
use WonderLand; #打开WonderLand项目空间
add user ALIYUN$dean@aliyun.com; #添加用户到项目中
grant CreateInstance on project WanderLand to