MaxCompute支持用户在MaxCompute控制台通过角色为RAM账号(RAM用户、RAM角色)授予相应的MaxCompute权限。本文介绍各类权限的授权操作步骤与示例。
项目级管理类权限授权
MaxCompute项目级管理类权限主要包括进行项目安全配置、项目级用户与角色权限管理、Package管理、Label权限管控、清理过期权限等,更多信息请参见项目管理类权限一览表。
操作步骤
登录MaxCompute控制台,在左上角选择地域。
在左侧导航栏,选择。
在项目管理页面,单击目标项目操作列的管理。
在项目配置页面,选择角色权限页签。
在角色权限页签,可以创建管理类(Admin)角色或修改已有的管理类(Admin)角色权限。
说明默认只有阿里云账号(主账号)对项目有角色管理权限,如果需要使用RAM账号(RAM用户/RAM角色)执行授权操作,需要拥有对应项目的管理权限。
创建管理类(Admin)角色
单击新增项目级别角色,创建支持MaxCompute相关权限的项目角色。
在弹出的新建角色对话框,根据界面提示文案配置项目信息,单击确定。
角色类型选择Admin:管理类型角色,填写Policy授权策略。
修改已有的管理类(Admin)角色权限。
在角色权限页签,单击目标角色操作列的修改授权,修改后单击确认,完成已有角色权限策略修改。
相关Action及Resource取值请参见项目管理类权限一览表。本文档依据管理模块提供部分Policy授权示例。
选择目标项目级别角色,单击操作列的成员管理。在成员管理对话框可以查看角色成员、将角色赋予用户或将用户从角色里移除(即收回赋予用户的角色)。
Policy示例
同一模块的管理类权限一般会涉及多类操作及多类资源权限,因此示例中大多使用通配符
*表达,实现一次操作对一组对象进行授权。相关Action及Resource取值请参见项目管理类权限一览表。
需要将示例中的
project_name替换为待授权的MaxCompute项目名称。
支持角色管理类权限的Policy示例
支持角色管理类权限的Policy示例。
{
"Statement": [
{
"Action": [
"odps:*"
],
"Effect": "Allow",
"Resource": [
"acs:odps:*:projects/project_name/authorization/roles",
"acs:odps:*:projects/project_name/authorization/roles/*/*"
]
}
],
"Version": "1"
}支持Package管理类权限的Policy示例
支持Package管理类权限的Policy示例。
{
"Statement": [
{
"Action": [
"odps:*"
],
"Effect": "Allow",
"Resource": [
"acs:odps:*:projects/project_name/authorization/packages",
"acs:odps:*:projects/project_name/authorization/packages/*",
"acs:odps:*:projects/project_name/authorization/packages/*/*/*"
]
}
],
"Version": "1"
}在控制台进行Package管理依赖Project的list权限,因此需要先授予执行人当前Project的list权限,通过控制台的授权请参见项目级对象操作权限授权;通过命令行授权请参见通过命令管理用户权限。
支持修改项目安全配置的管理权限Policy示例
支持修改项目安全配置的管理权限Policy示例。
{
"Statement":[
{
"Action":[
"odps:*"
],
"Effect":"Allow",
"Resource":[
"acs:odps:*:projects/project_name/authorization/configurations/*"
]
}
],
"Version":"1"
}支持项目用户管理的Policy示例
支持项目用户管理的Policy示例。
{
"Statement":[
{
"Action":[
"odps:*"
],
"Effect":"Allow",
"Resource":[
"acs:odps:*:projects/project_name/authorization/users"
]
}
],
"Version":"1"
}支持所有管理类权限的Policy示例
支持所有管理类权限的Policy示例。
{
"Statement":[
{
"Action":[
"odps:*"
],
"Effect":"Allow",
"Resource":[
"acs:odps:*:projects/project_name/authorization/*"
]
}
],
"Version":"1"
}项目级对象操作权限授权
项目级对象操作权限主要包括对项目(Project)、表(Table)、函数(Function)、资源(Resource)等项目及项目内对象的操作权限,如CreateTable、CreateInstacne、SelectTable等。更多信息请参见项目及项目内对象权限一览表。
操作步骤
登录MaxCompute控制台,在左上角选择地域。
在左侧导航栏,选择。
在项目管理页面,单击目标项目操作列的管理。
在项目配置页面,选择角色权限页签。
可以创建资源操作类(Resource)角色或修改已有的资源操作类(Resource)角色权限。
说明默认只有阿里云账号(主账号)对项目有角色管理权限,如果需要使用RAM账号(RAM用户/RAM角色)执行授权操作,需要拥有对应项目的管理权限。
创建资源操作类(Resource)角色
单击新增项目级别角色,创建支持MaxCompute相关权限的项目角色。
在弹出的新建角色对话框,根据界面提示文案配置项目信息,单击确定。
角色类型选择资源操作类(Resource)角色,再进行ACL授权或填写Policy授权策略。
修改已有的资源操作类(Resource)角色权限
在角色权限页签,单击目标角色操作列的修改授权,修改ACL授权或Policy授权策略。
相关权限请参见项目及项目内对象权限一览表。本文档提供控制台ACL及Policy授权示例,详情请参见项目级管理类权限授权。
选择目标项目级别角色,单击操作列的成员管理。在成员管理对话框可以查看角色成员、将角色赋予用户或将用户从角色里移除(即收回赋予用户的角色)。
授权示例
项目级对象操作权限的Action及Object请参见项目及项目内对象权限一览表。
需要将示例中的
project_name替换为待授权的MaxCompute项目名称。
ACL方式为资源操作类(Resource)角色授权
通过ACL方式为资源操作类(Resource)角色授予在项目(Project)中创建表(CreateTable)、创建实例(CreateInstance)、查看项目所有类型的对象列表(List)、读取所有表(Table)的元信息(Describe)和表数据(Select)的权限。如图所示:

提交的时候请不要关闭进度条或页面,否则授权将会中断。
Policy方式为资源操作类(Resource)角色
通过Policy方式为资源操作类(Resource)角色授予在项目(Project)中创建表(CreateTable)、创建实例(CreateInstance)、查看项目所有类型的对象列表(List)、读取所有表(Table)的元信息(Describe)和表数据(Select)的权限。
{ "Statement": [{ "Action": ["odps:CreateTable","odps:CreateInstance","odps:List"], "Effect": "Allow", "Resource": ["acs:odps:*:projects/project_name"]}, { "Action": ["odps:Describe","odps:Select"], "Effect": "Allow", "Resource": ["acs:odps:*:projects/project_name/tables/*"]}], "Version": "1"}通过Policy方式为资源操作类(Resource)角色授予在项目内所有tmp开头的表(Table)的元信息(Describe)和表查询(Select),读取、更新所有资源,读取、更新所有函数的权限,并禁止删除所有表。
{ "Statement": [{ "Action": ["odps:Describe","odps:Select"], "Effect": "Allow", "Resource": ["acs:odps:*:projects/project_name/tables/tmp_*"]}, { "Action": ["odps:Read","odps:Write"], "Effect": "Allow", "Resource": ["acs:odps:*:projects/project_name/resources/*"]}, { "Action": ["odps:Read","odps:Write"], "Effect": "Allow", "Resource": ["acs:odps:*:projects/project_name/functions/*"]}, { "Action": ["odps:Drop"], "Effect": "Deny", "Resource": ["acs:odps:*:projects/project_name/tables/*"]}], "Version": "1"}如果项目开启了按Schema存储(Schema操作),则需将策略修改为:
{ "Statement": [{ "Action": ["odps:Describe","odps:Select"], "Effect": "Allow", "Resource": ["acs:odps:*:projects/project_name/schemas/*/tables/tmp_*"]}, { "Action": ["odps:Read","odps:Write"], "Effect": "Allow", "Resource": ["acs:odps:*:projects/project_name/schemas/*/resources/*"]}, { "Action": ["odps:Read","odps:Write"], "Effect": "Allow", "Resource": ["acs:odps:*:projects/project_name/schemas/*/functions/*"]}, { "Action": ["odps:Drop"], "Effect": "Deny", "Resource": ["acs:odps:*:projects/project_name/schemas/*/tables/*"]}], "Version": "1"}
租户级别管理类权限授权
租户级别管理类权限指租户级别用户与角色权限管理,包括添加/删除租户用户、创建/删除租户级别角色、查看租户级别用户/角色列表及权限内容、将租户级别角色授予用户、取消用户被授予的租户级别角色、将租户级别角色添加至项目、移出项目内的租户级别角色等。
仅阿里云账号或者具备租户级别Super_Administrator和Admin角色的用户可操作租户级别权限管理。
若希望授予RAM账号(RAM用户/RAM角色)管理类权限,仅支持通过阿里云账号赋予RAM账号Super_Administrator和Admin角色以实现权限授予。但租户级别Super_Administrator和Admin角色管理权限较大(具体权限请参见角色规划),请谨慎操作。租户级别角色信息请参见租户级别角色授权。
登录MaxCompute控制台,在左上角选择地域。
在左侧导航栏,选择 。
在租户管理页面,单击用户管理页签。
在用户管理页签,单击目标RAM用户对应操作列的修改角色。
在弹出的编辑角色对话框,从待添加角色区域选择要为当前用户配置的角色,并配置到已添加角色区域,单击确定完成修改。
租户级别对象操作权限授权
租户级别对象操作权限包括对租户级对象Quota和网络连接(Networklink)的操作。例如use quota、CreateNetworkLink等。租户级别对象操作还包括实现一账号管理多个Project对象,提升权限管理的便捷性。更多租户级别角色信息请参见租户级别角色授权。
操作步骤
登录MaxCompute控制台,在左上角选择地域。
在左侧导航栏,选择 。
在租户管理页面,单击角色管理页签。
在角色管理页面,创建新的租户级角色或管理已有自定义角色的权限。
说明仅阿里云账号或者具备租户级别Super_Administrator和Admin角色的用户可操作租户级别权限管理。
新增租户级角色
在角色管理页签,单击新增角色,在弹出的新增角色对话框,填写自定义角色名称和policy内容,然后单击确定完成创建。
参数名称
说明
角色名称
新建账户级别角色的名称。在阿里云账号内唯一。命名需要满足如下要求:以字母开头。只能包含字母、下划线(_)或数字。长度为6~64个字符。
policy内容
角色的权限策略。您可以直接在界面上根据策略模板编辑策略代码。
修改已有的已有租户级角色权限
在角色管理页签,单击目标角色操作列的权限管理,修改Policy授权策略。单击确定,完成已有角色的权限策略修改。
在用户管理页签,单击待授权用户对应操作列的修改角色。
在弹出的编辑角色对话框,从待添加角色区域选择要为当前用户配置的角色,并配置到已添加角色区域,单击确定完成修改。
Policy示例
示例中使用通配符
*表达,实现一次操作对一组对象进行授权。具体的Action及Resource请参见租户内对象权限一览表。
示例一:为租户级角色授予所有Region下所有Quota的Usage操作及所有Networklinks的
CreateNetworkLink、List和Execute操作权限。{ "Statement":[ { "Action":[ "odps:Usage" ], "Effect":"Allow", "Resource":[ "acs:odps:*:regions/*/quotas/*" ] }, { "Action":[ "odps:CreateNetworkLink", "odps:List", "odps:Execute" ], "Effect":"Allow", "Resource":[ "acs:odps:*:networklinks/*" ] } ], "Version":"1" }示例二:为租户级角色授予MaxCompute项目
project_1和project_2的所有操作权限。{ "Statement":[ { "Action":[ "odps:*" ], "Effect":"Allow", "Resource":[ "acs:odps:*:projects/project_1", "acs:odps:*:projects/project_1/*", "acs:odps:*:projects/project_2", "acs:odps:*:projects/project_2/*" ] } ], "Version":"1" }说明通过租户级别角色对Project对象授权后,需要将对应的租户级角色添加到Project中才会生效,因此需要Project的Owner或拥有Project Super_Administrator或Admin角色添加租户角色,在角色权限页签,角色级别选择租户,单击目标角色操作列的启用。