MaxCompute投遞任務(新版)運行時,需要將讀取到的LogStore中的資料投遞到MaxCompute的表中,您可以授權MaxCompute投遞任務(新版)扮演自訂RAM角色完成該操作。本文介紹在MaxCompute和Log ServiceProject同帳號時,如何對自訂RAM角色進行授權。
前提條件
如果您使用的是RAM使用者,請確保該使用者具備操作RAM角色授權的許可權。
將您的MaxCompute專案建立為DataWorks的MaxCompute資料來源。更多資訊,請參見綁定MaxCompute計算資源。
操作步驟
授予RAM角色對MaxCompute的寫入許可權後,MaxCompute投遞任務可以使用該角色將LogStore中的資料寫入到目標MaxCompute的表中。此處通過添加RAM角色為工作空間成員的方式完成授權。
建立RAM角色,例如
MaxComputeShipRole。具體操作,請參見建立可信實體為阿里雲服務的RAM角色。重要建立RAM角色時,信任主體類型應選擇雲端服務,且信任主體名稱應選擇Log Service。
請檢查角色的信任策略如下,
Service內容至少包含"log.aliyuncs.com"。{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "log.aliyuncs.com" ] } } ], "Version": "1" }
修改RAM角色信任策略。具體操作,請參見修改RAM角色的信任策略。
將原有的信任策略替換為如下內容。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "log.aliyuncs.com", "dataworks.aliyuncs.com" ] } } ], "Version": "1" }添加RAM角色為工作空間成員。
登入DataWorks控制台。
在頁面左上方,選擇地區。
在左側導覽列中,單擊工作空間。在工作空間列表頁面,單擊目標工作空間對應的管理。
在工作空間頁面的空間成員頁簽下,單擊新增成員。

在新增成員對話方塊中,選中當前登入帳號和目標RAM角色,完成添加。
此處需在大量設定角色中選中開發。更多資訊,請參見授權給其他使用者。
授予RAM角色操作MaxCompute表的許可權。
登入MaxCompute控制台,在左上方選擇地區。
選擇,在專案管理頁面,單擊目標專案操作列的管理。

在MaxCompute專案管理頁面,單擊角色許可權。

如果出現如下報錯,您需要在阿里雲主帳號下將當前登入的RAM帳號添加至目標MaxCompute專案,先在角色列表中單擊admin對應的成員管理,然後在成員管理對話方塊中,選中當前登入RAM帳號,根據頁面提示完成添加。

在角色列表中,單擊role_project_admin角色對應的成員管理。
在成員管理對話方塊中,選中當前登入帳號和目標RAM角色帳號,如
MaxComputeShipRole。完成添加。在角色列表中,單擊role_project_admin角色對應的編輯角色。
在編輯角色對話方塊的Table頁簽下,選擇目標MaxCompute表,選中Describe、Alter和Update。

重要上述授權只針對指定的MaxCompute表。如果您希望目標角色可以操作當前MaxCompute空間專案下所有的表,則您可以為當前登入帳號和目標角色添加admin角色許可權。即在角色列表中,單擊admin角色對應的成員管理,然後在成員管理對話方塊中,選中當前登入帳號和目標角色,完成添加。
建立MaxCompute。
完成授權後,您可以在建立MaxCompute投遞任務(新版)時,選擇寫MaxCompute授權為自訂角色,然後輸入自訂RAM角色的ARN(如
acs:ram::10**12:role/maxcomputeshiprole),即可授權MaxCompute投遞任務(新版)使用自訂RAM角色將資料投遞到MaxCompute表中。具體操作,請參見建立MaxCompute投遞任務(新版)。