当 MaxCompute 项目需要多人协作时,非项目所有者(Project Owner)的用户必须先被加入项目并授予相应权限,才能操作项目中的表、资源、函数或作业。本文介绍 MaxCompute 支持的用户管理操作。
背景信息
创建 MaxCompute 项目后,除项目所有者或具备 MaxCompute 内置角色的用户外,其他用户未经授权无法访问项目。若需其他用户参与开发,需由项目所有者将用户添加到项目中。
MaxCompute支持的用户类型及操作如下。
|
用户类别 |
用户类型 |
操作 |
说明 |
操作人角色 |
操作入口 |
|
项目级别(Project) |
阿里云账号 |
将其他阿里云账号添加至MaxCompute项目中。 |
项目所有者(Project Owner)或具备MaxCompute内置角色的用户。 |
||
|
删除MaxCompute项目中已添加的阿里云账号。 |
|||||
|
RAM用户 |
将MaxCompute项目归属的阿里云账号下的RAM用户添加至MaxCompute项目中。 |
||||
|
删除MaxCompute项目中已添加的RAM用户。 |
|||||
|
RAM角色 |
将在RAM访问控制台上创建的RAM角色添加至MaxCompute项目中。 |
||||
|
删除MaxCompute项目中已添加的RAM角色。 |
|||||
|
查看MaxCompute项目中已添加的用户。 |
|||||
添加阿里云账号用户(项目级别)
当项目的所有者需要对其他阿里云账号用户授权时,需要先将该用户添加到自己的项目中,只有添加到项目中的用户才能够被授权。
-
命令格式
add user ALIYUN$<account_id>; -
参数说明
参数名称
是否必填
说明
account_id
是
指定阿里云账号的账号。当租户属性 使用账号ID 为开启,则账号使用ID,否则使用登录名。例如
odps_test_user@aliyun.com(账号ID:5527xxxxxxxx5788)。 -
使用示例
假设test_project_a项目中需要添加阿里云账号
odps_test_user@aliyun.com(账号ID:5527xxxxxxxx5788) ,命令示例如下。使用账号ID为开启
add user ALIYUN$5527xxxxxxxx5788;使用账号ID为关闭
add user ALIYUN$odps_test_user@aliyun.com;
删除阿里云账号用户(项目级别)
当用户离开MaxCompute项目团队时,需要将用户从项目中移除。用户一旦从项目中被移除,该用户将不再具备访问该项目中任何资源的权限。
-
命令格式
remove user ALIYUN$<account_id>; -
注意事项
-
移除一个用户之前,如果该用户已被赋予某些角色,则需要先收回该用户的所有角色之后再执行移除操作。更多查看用户被赋予的角色信息,请参见查看权限信息。更多收回角色信息,请参见收回赋予用户的角色。
-
当一个用户被移除后,与该用户有关的授权仍然会被保留。一旦该用户以后被再次添加到该项目时,该用户的历史授权访问权限将被重新激活。如果需要彻底清除用户的权限信息,请参见彻底清除被删除用户遗留的权限信息。
-
-
参数说明
参数名称
是否必填
说明
account_id
是
指定阿里云账号的账号。当租户属性使用账号ID为开启,则账号使用ID,否则使用登录名。例如
5527xxxxxxxx5788或odps_test_user@aliyun.com。您可以通过MaxCompute客户端执行
list users;命令获取账号标识。 -
使用示例
-
示例一:删除test_project_a项目中已添加的阿里云账号
odps_test_user@aliyun.com(账号ID:5527xxxxxxxx5788),假设阿里云账号未被授予任何角色,命令示例如下。使用账号ID为开启
remove user ALIYUN$5527xxxxxxxx5788;使用账号ID为关闭
remove user ALIYUN$odps_test_user@aliyun.com; -
示例二:删除test_project_a项目中已添加的阿里云账号
odps_test_user@aliyun.com(账号ID:5527xxxxxxxx5788),假设阿里云账号已被授予Worker角色,命令示例如下。使用账号ID为开启
--收回赋予用户的角色。 revoke Worker from ALIYUN$5527xxxxxxxx5788; --删除用户。 remove user ALIYUN$5527xxxxxxxx5788;使用账号ID为关闭
--收回赋予用户的角色。 revoke Worker from ALIYUN$odps_test_user@aliyun.com; --删除用户。 remove user ALIYUN$odps_test_user@aliyun.com;
-
添加RAM用户(项目级别)
当项目的所有者需要对其他RAM用户授权时,需要先将该RAM用户添加到自己的项目中,只有添加到项目中的RAM用户才能够被授权。
-
命令格式
add user RAM$[<account_id>:]<RAM用户UID>; -
使用限制
-
MaxCompute只允许将阿里云账号自身的RAM用户加入到项目中,不允许添加其他云账号的RAM用户。如果需要将其他阿里云账号的RAM用户添加到项目中,需要先将RAM归属的阿里云账号添加至项目中,再由添加的阿里云账号进入MaxCompute项目后添加RAM用户。
-
在MaxCompute项目中添加RAM用户时,需要MaxCompute项目支持RAM用户体系,您可以通过
list accountproviders;命令查看MaxCompute项目是否支持RAM用户体系。如果查询结果中未出现RAM,可以执行add accountprovider ram;命令为MaxCompute项目添加RAM用户体系。 -
当一个用户被移除后,与该用户有关的授权仍然会被保留。一旦该用户以后被再次添加到该项目时,该用户的历史授权访问权限将被重新激活。如果需要彻底清除用户的权限信息,请参见彻底清除被删除用户遗留的权限信息。
-
-
注意事项
MaxCompute只能够识别RAM的账号体系,不能识别RAM的权限体系。即阿里云账号可以将自身的任意RAM用户加入MaxCompute的某一个项目中,但MaxCompute在对该RAM用户做权限验证时,并不会考虑RAM中的权限定义。
-
参数说明
参数名称
是否必填
说明
account_id
否
指定RAM用户所属阿里云账号。当租户属性使用账号ID为开启,则账号使用ID,否则使用登录名。例如
odps_test_user@aliyun.com(账号ID:5527xxxxxxxx5788)。RAM用户UID
是
指定RAM用户的UID。
您可以登录RAM控制台,在左侧导航栏选择,并单击目标用户,即可在用户基本信息区域获取到UID。
-
使用示例
假设test_project_a项目中需要添加RAM用户
RAM$odps_test_user@aliyun.com:ram_test(UID:5527xxxxxxxx5788:2763xxxxxxxxxx1649),命令示例如下。使用账号ID为开启
add user RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;使用账号ID为关闭
add user RAM$odps_test_user@aliyun.com:ram_test;
删除RAM用户(项目级别)
当RAM用户离开MaxCompute项目团队时,需要将用户从项目中移除。用户一旦从项目中被移除,该用户将不再具备访问该项目中任何资源的权限。
-
命令格式
remove user RAM$[<account_id>:]<RAM用户UID>; -
注意事项
-
对于已经被赋予角色的RAM用户,在删除RAM用户前,请先解除赋予的角色后再删除RAM用户。否则,项目中会残留RAM用户信息,查询用户时会显示为
p4_xxxxxxxxxxxxxxxxxxxx且无法从项目中删除,但不影响项目正常使用。更多查看用户被赋予的角色信息,请参见查看权限信息。更多收回角色信息,请参见收回赋予用户的角色。 -
当一个用户被移除后,与该用户有关的授权仍然会被保留。一旦该用户以后被再次添加到该项目时,该用户的历史授权访问权限将被重新激活。如果需要彻底清除用户的权限信息,请参见彻底清除被删除用户遗留的权限信息。
-
-
参数说明
参数名称
是否必填
说明
account_id
否
指定RAM用户所属阿里云账号。当租户属性使用账号ID为开启,则账号使用ID,否则使用登录名。例如
odps_test_user@aliyun.com(账号ID:5527xxxxxxxx5788)。RAM用户UID
是
指定RAM用户的UID。
您可以登录RAM控制台,在左侧导航栏选择,并单击目标用户,即可在用户基本信息区域获取到UID。
-
使用示例
-
示例一:删除test_project_a项目中已添加的RAM用户
RAM$odps_test_user@aliyun.com:ram_test(UID:5527xxxxxxxx5788:2763xxxxxxxxxx1649),假设RAM用户未被授予任何角色。命令示例如下。使用账号ID为开启
remove user RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;使用账号ID为关闭
remove user RAM$odps_test_user@aliyun.com:ram_test; -
示例二:删除test_project_a项目中已添加的RAM用户
RAM$odps_test_user@aliyun.com:ram_test(UID:5527xxxxxxxx5788:2763xxxxxxxxxx1649),假设RAM用户已被授予Worker角色。命令示例如下。使用账号ID为开启
--收回赋予用户的角色。 revoke Worker from RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649; --删除用户。 remove user RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649; --如果不再需要RAM用户,可删除RAM用户体系。 remove accountprovider ram;使用账号ID为关闭
--收回赋予用户的角色。 revoke Worker from RAM$odps_test_user@aliyun.com:ram_test; --删除用户。 remove user RAM$odps_test_user@aliyun.com:ram_test; --如果不再需要RAM用户,可删除RAM用户体系。 remove accountprovider ram;
-
添加RAM角色(项目级别)
您可以通过RAM访问控制台创建RAM角色并修改RAM角色的权限策略,然后将RAM角色添加至MaxCompute项目。后续项目中的RAM用户可以扮演该RAM角色执行操作。
与角色规划不同的是,RAM角色为访问控制平台中的角色,非MaxCompute项目内的角色。更多使用RAM角色操作,请参见扮演RAM角色。
-
命令格式
add user `RAM$<account_id>:role/<RAM角色名称>`; -
注意事项
命令中的
`,不可缺失。 -
参数说明
参数名称
是否必填
说明
account_id
是
指定RAM角色所属的阿里云账号。当租户属性使用账号ID为开启,则账号使用ID,否则使用登录名。例如
odps_test_user@aliyun.com(账号ID:5527xxxxxxxx5788)。RAM角色名称
是
指定RAM角色名称。
您可以登录RAM控制台,在左侧导航栏选择,即可在角色页面获取到RAM角色名称。
-
使用示例
假设test_project_a项目中需要添加RAM角色
ram_role,命令示例如下。使用账号ID为开启
add user `RAM$5527xxxxxxxx5788:role/ram_role`;使用账号ID为关闭
add user `RAM$odps_test_user@aliyun.com:role/ram_role`;
-
相关操作
由于后续涉及到需要在DataWorks上操作,在修改RAM角色的权限策略时,您需要把RAM角色同时授权给DataWorks服务,以便在DataWorks上能够提交周期性调度作业至MaxCompute。
删除RAM角色(项目级别)
删除MaxCompute项目中已添加的RAM角色。
-
命令格式
remove user `RAM$<account_id>:role/<RAM角色名称>`; -
注意事项
命令中的
`,不可缺失。 -
参数说明
参数名称
是否必填
说明
account_id
是
指定RAM角色所属的阿里云账号。当租户属性使用账号ID为开启,则账号使用ID,否则使用登录名。例如
odps_test_user@aliyun.com(账号ID:5527xxxxxxxx5788)。RAM角色名称
是
指定RAM角色名称。
您可以登录RAM控制台,在左侧导航栏选择,即可在角色页面获取到RAM角色名称。
-
使用示例
假设test_project_a项目中需要删除RAM角色
ram_role,命令示例如下。使用账号ID为开启
remove user `RAM$5527xxxxxxxx5788:role/ram_role`;使用账号ID为关闭
remove user `RAM$odps_test_user@aliyun.com:role/ram_role`;
查看用户列表(项目级别)
查看MaxCompute项目中已添加的用户列表。
-
命令格式
list users; -
使用示例
查看MaxCompute项目中已添加的用户信息。命令示例如下。
list users;返回结果如下。
使用账号ID为开启
ALIYUN$5527xxxxxxxx5788 RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649 RAM$5527xxxxxxxx5788:role/ram_role使用账号ID为关闭
ALIYUN$odps_test_user@aliyun.com RAM$odps_test_user@aliyun.com:ram_test RAM$odps_test_user@aliyun.com:role/ram_role
后续指引
完成用户规划后,您可以根据实际业务需要执行授权操作:通过命令管理用户权限。