當MaxCompute專案需要多人維護時,非專案所有者(Project Owner)的使用者必須被加入MaxCompute專案中,且被授予相應的許可權,才能操作MaxCompute中的表、資源、函數或作業(執行個體)。本文為您介紹MaxCompute支援的使用者管理操作。
背景資訊
建立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。例如
odps_test_user@aliyun.com
(帳號ID:5527xxxxxxxx5788
)。使用樣本
假設test_project_a專案中需要添加阿里雲帳號
odps_test_user@aliyun.com
(帳號ID:5527xxxxxxxx5788
),命令樣本如下。add user ALIYUN$5527xxxxxxxx5788;
刪除阿里雲帳號使用者(專案層級)
當使用者離開MaxCompute專案團隊時,需要將使用者從專案中移除。使用者一旦從專案中被移除,該使用者將不再具備訪問該專案中任何資源的許可權。
命令格式
remove user ALIYUN$<account_id>;
注意事項
移除一個使用者之前,如果該使用者已被賦予某些角色,則需要先收回該使用者的所有角色之後再執行移除操作。更多查看使用者被賦予的角色資訊,請參見查看許可權資訊。更多收回角色資訊,請參見收回賦予使用者的角色。
當一個使用者被移除後,與該使用者有關的授權仍然會被保留。一旦該使用者以後被再次添加到該專案時,該使用者的歷史授權存取權限將被重新啟用。如果需要徹底清除使用者的許可權資訊,請參見徹底清除被刪除使用者遺留的許可權資訊。
參數說明
參數名稱
是否必填
說明
account_id
是
指定阿里雲帳號的帳號ID。例如
5527xxxxxxxx5788
。您可以通過MaxCompute用戶端執行
list users;
命令擷取帳號ID。使用樣本
樣本一:刪除test_project_a專案中已添加的阿里雲帳號
odps_test_user@aliyun.com
(帳號ID:5527xxxxxxxx5788
),假設阿里雲帳號未被授予任何角色,命令樣本如下。remove user ALIYUN$5527xxxxxxxx5788;
樣本二:刪除test_project_a專案中已添加的阿里雲帳號
odps_test_user@aliyun.com
(帳號ID:5527xxxxxxxx5788
),假設阿里雲帳號已被授予Worker角色,命令樣本如下。--收回賦予使用者的角色。 revoke Worker from ALIYUN$5527xxxxxxxx5788; --刪除使用者。 remove user ALIYUN$5527xxxxxxxx5788;
添加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。例如
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
),命令樣本如下。add user RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;
刪除RAM使用者(專案層級)
當RAM使用者離開MaxCompute專案團隊時,需要將使用者從專案中移除。使用者一旦從專案中被移除,該使用者將不再具備訪問該專案中任何資源的許可權。
命令格式
remove user RAM$[<account_id>:]<RAM使用者UID>;
注意事項
對於已經被賦予角色的RAM使用者,在刪除RAM使用者前,請先解除賦予的角色後再刪除RAM使用者。否則,專案中會殘留RAM使用者資訊,查詢使用者時會顯示為
p4_xxxxxxxxxxxxxxxxxxxx
且無法從專案中刪除,但不影響專案正常使用。更多查看使用者被賦予的角色資訊,請參見查看許可權資訊。更多收回角色資訊,請參見收回賦予使用者的角色。當一個使用者被移除後,與該使用者有關的授權仍然會被保留。一旦該使用者以後被再次添加到該專案時,該使用者的歷史授權存取權限將被重新啟用。如果需要徹底清除使用者的許可權資訊,請參見徹底清除被刪除使用者遺留的許可權資訊。
參數說明
參數名稱
是否必填
說明
account_id
否
指定RAM使用者所屬阿里雲帳號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使用者未被授予任何角色。命令樣本如下。remove user RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;
樣本二:刪除test_project_a專案中已添加的RAM使用者
RAM$odps_test_user@aliyun.com:ram_test
(UID:5527xxxxxxxx5788:2763xxxxxxxxxx1649
),假設RAM使用者已被授予Worker角色。命令樣本如下。--收回賦予使用者的角色。 revoke Worker from RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649; --刪除使用者。 remove user RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649; --如果不再需要RAM使用者,可刪除RAM帳號體系。 remove accountprovider ram;
添加RAM角色(專案層級)
您可以通過RAM存取控制台建立RAM角色並修改RAM角色的權限原則,然後將RAM角色添加至MaxCompute專案。後續專案中的RAM使用者可以扮演該RAM角色執行操作。
與角色規劃不同的是,RAM角色為存取控制平台中的角色,非MaxCompute專案內的角色。更多使用RAM角色操作,請參見扮演RAM角色。
命令格式
add user `RAM$<accout_id>:role/<RAM角色名稱>`;
注意事項
命令中的
`
,不可缺失。參數說明
參數名稱
是否必填
說明
account_id
是
指定RAM角色所屬的阿里雲帳號。例如
odps_test_user@aliyun.com
(帳號ID:5527xxxxxxxx5788
)。RAM角色名稱
是
指定RAM角色名稱。
您可以登入RAM控制台,在左側導覽列選擇 ,即可在角色頁面擷取到RAM角色名稱。
使用樣本
假設test_project_a專案中需要添加RAM角色
ram_role
,命令樣本如下。add user `RAM$5527xxxxxxxx5788:role/ram_role`;
相關操作
由於後續涉及到需要在DataWorks上操作,在修改RAM角色的權限原則時,您需要把RAM角色同時授權給DataWorks服務,以便在DataWorks上能夠提交周期性調度作業至MaxCompute。
刪除RAM角色(專案層級)
刪除MaxCompute專案中已添加的RAM角色。
命令格式
remove user `RAM$<accout_id>:role/<RAM角色名稱>`;
注意事項
命令中的
`
,不可缺失。參數說明
參數名稱
是否必填
說明
account_id
是
指定RAM角色所屬的阿里雲帳號。例如
odps_test_user@aliyun.com
(帳號ID:5527xxxxxxxx5788
)。RAM角色名稱
是
指定RAM角色名稱。
您可以登入RAM控制台,在左側導覽列選擇 ,即可在角色頁面擷取到RAM角色名稱。
使用樣本
假設test_project_a專案中需要刪除RAM角色
ram_role
,命令樣本如下。remove user `RAM$5527xxxxxxxx5788:role/ram_role`;
查看使用者列表(專案層級)
查看MaxCompute專案中已添加的使用者列表。
命令格式
list users;
使用樣本
查看MaxCompute專案中已添加的使用者資訊。命令樣本如下。
list users;
返回結果如下。
ALIYUN$5527xxxxxxxx5788 RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649 RAM$5527xxxxxxxx5788:role/ram_role
後續指引
完成使用者規劃後,您可以根據實際業務需要執行授權操作:通過命令系統管理使用者許可權。