傳統的DataWorks節點開發模式,在訪問OSS等外部服務時,依賴於配置明文AccessKey。這種方式存在安全隱患和管理難題:一方面,永久密鑰的寫入程式碼帶來泄露風險,一旦泄露將可能導致整個資料資產的暴露;另一方面,由於為每個任務單獨管理密鑰過於複雜,AccessKey在實踐中通常被授予較粗粒度的許可權,這使得遵循最小許可權原則的精細化存取控制難以落地。為解決這些問題,推薦採用RAM角色授權的方案,它通過動態擷取臨時憑證(STS)的方式,在杜絕密鑰泄露風險的同時,實現按需、按任務的精微調權限管理。
方案說明
整個配置過程分為三個主要部分:建立RAM角色→建立權限原則→授權給RAM使用者。
許可權準備
擁有一個阿里雲主帳號,或一個被授予 AliyunRAMFullAccess 許可權的Resource Access Management員帳號。
步驟一:建立並配置 RAM 角色
此角色是DataWorks服務訪問其他雲資源的“身份憑證”。
建立RAM角色:登入RAM控制台-角色頁面,點擊建立角色。 保持預設選項,並單擊確認,填寫一個有辨識度的角色名稱,例如
DataWorksRAMROLEforDataStudio。
修改信任策略:建立成功後,在角色詳情頁的信任策略頁簽下編輯,僅允許
dataworks.aliyuncs.com服務可以扮演此角色。策略內容如下:更多資訊請參考文檔:修改RAM角色的信任策略。

{ "Version": "1", "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "dataworks.aliyuncs.com" ] } } ] }為RAM角色授權:在角色詳情頁的許可權管理頁簽下,單擊新增授權,按需為
DataWorksRAMROLEforDataStudio角色授予相應的許可權。例如,如果需要訪問OSS,則可以授予
AliyunOSSReadOnlyAccess(唯讀)或AliyunOSSFullAccess(完全)許可權。更多資訊請參考文檔:管理RAM角色的許可權。

步驟二:建立權限原則
此策略用於授權RAM使用者可以將第一步建立的RAM角色傳遞給DataWorks服務。
登入RAM控制台-權限原則,單擊建立權限原則,切換至指令碼編輯,編輯權限原則內容。

{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "ram:ListRoles" ], "Resource": "*" }, { "Effect": "Allow", "Action": "ram:PassRole", "Resource": "acs:ram::<account-id>:role/<role-name>" } ] }
策略 | 說明 |
| 允許使用者查看賬戶下的角色列表(以便在介面中選擇)。 |
| 允許使用者將指定的角色傳遞給雲端服務。 請務必將策略中的
|
更多資訊請參考文檔:建立自訂權限原則。
單擊確定,將權限原則儲存為
DataWorksRAMPolicyforDataStudio。
步驟三:為 RAM 使用者授權
這是最後一步,將“允許傳遞角色”的權力賦予終端使用者。
登入RAM控制台-使用者頁面,找到需要授權的RAM使用者(例如
new_ram_user@...),點擊操作列的添加許可權。在新增授權面板中,搜尋並選中步驟二建立的權限原則(
DataWorksRAMPolicyforDataStudio),確認新增授權即可。
若要授權多個RAM使用者,需為每一個需要此許可權的RAM使用者重複執行此步驟。
後續步驟
完成授權後,使用new_ram_user@...帳號前往新版資料開發,即可在相關節點使用關聯角色運行任務。詳情請參見在節點調度中配置節點關聯角色。
支援節點請以實際介面為準。