全部產品
Search
文件中心

:使用者規劃與管理

更新時間:Jun 19, 2024

當MaxCompute專案需要多人維護時,非專案所有者(Project Owner)的使用者必須被加入MaxCompute專案中,且被授予相應的許可權,才能操作MaxCompute中的表、資源、函數或作業(執行個體)。本文為您介紹MaxCompute支援的使用者管理操作。

背景資訊

建立MaxCompute專案後,除專案所有者(Project Owner)或具備MaxCompute內建角色的使用者外,其他使用者未經許可不允許訪問MaxCompute專案。如果需要其他使用者協同開發專案,則需要專案所有者將使用者添加到MaxCompute專案中。

MaxCompute支援的使用者類型及操作如下。

使用者類別

使用者類型

操作

說明

操作人角色

操作入口

專案層級(Project)

阿里雲帳號

添加阿里雲帳號使用者(專案層級)

將其他阿里雲帳號添加至MaxCompute專案中。

專案所有者(Project Owner)或具備MaxCompute內建角色的使用者。

刪除阿里雲帳號使用者(專案層級)

刪除MaxCompute專案中已添加的阿里雲帳號。

RAM使用者

添加RAM使用者(專案層級)

將MaxCompute專案歸屬的阿里雲帳號下的RAM使用者添加至MaxCompute專案中。

刪除RAM使用者(專案層級)

刪除MaxCompute專案中已添加的RAM使用者。

RAM角色

添加RAM角色(專案層級)

將在RAM存取控制台上建立的RAM角色添加至MaxCompute專案中。

刪除RAM角色(專案層級)

刪除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

後續指引

完成使用者規劃後,您可以根據實際業務需要執行授權操作:通過命令系統管理使用者許可權