本文介紹了如何使用存取控制RAM(Resource Access Management)對RAM使用者授權實現對邏輯編排訪問資源的授權。
背景資訊
通過邏輯編排進行工作流程編排的過程中,可能需要使用各種雲產品的OpenAPI 。對於阿里雲帳號,可以通過授權RAM角色給邏輯編排調用相關的OpenAPI。但是,邏輯編排服務有權訪問這個RAM角色,並不代表執行邏輯編排的RAM使用者,有權使用這個RAM角色。只有對應RAM使用者和目標RAM角色進行PassRole鑒權通過之後,該RAM使用者才能通過邏輯編排使用目標RAM角色,調用對應服務。
主要的執行流程如下所示:
使用者僅需完成 1-5 步的操作,後續 6-9 步由被授權產品完成。
操作步驟(RAM使用者沒有RAM讀寫權限)
建立RAM角色。這裡可以建立一個名為AliyunLogicComposerDefaultRole的角色,如果您沒有建立過角色,建立方法請參見 建立可信實體為阿里雲服務的RAM角色。
這裡建立的角色名稱為AliyunLogicComposerDefaultRole, 受信服務請選擇邏輯編排。
2. 為建立的角色添加許可權。這裡需要建立自訂權限原則。如果您沒有建立過自訂策略,建立方法請參見 建立自訂策略。這裡具體的權限原則可參考以下樣本,這裡許可權應該根據實際需要進行填寫。
{
"Statement": [
{
"Action": [
"*:TagResources",
"oss:PutBucketTags"
],
"Effect": "Allow",
"Resource": "*"
}
],
"Version": "1"
}
接著給第一步建立的角色添加剛剛建立的許可權。授權方法請參見為RAM使用者授權。注意這裡需要選擇自訂策略,選擇之前建立的許可權。
3. 建立一個RAM使用者,如果已經有RAM使用者可以直接跳過。關於如何建立RAM使用者,請參見建立RAM使用者。建立完成後,授予該RAM使用者邏輯編排的許可權,請參見使用RAM授權。
4. 在第二步中我們為邏輯編排建立好了AliyunLogicComposerDefaultRole角色。接下來需要將該角色授予給第三步建立的RAM使用者,首先建立一條新的權限原則。方法與第二步建立許可權方式一樣,這裡權限原則可參考如下樣本:
{
"Statement": [
{
"Action": "ram:PassRole",
"Resource": "acs:ram::<parent uid>:role/aliyunlogiccomposerdefaultrole",
"Effect": "Allow",
"Condition": {
"StringEquals": {
"acs:Service": "composer.aliyuncs.com"
}
}
}
],
"Version": "1"
}
這裡Resource可以從角色中的ARN中擷取。角色ARN是角色的全域資源描述符,用來指定具體角色。ARN遵循阿里雲ARN的命名規範。例如,某個阿里雲帳號下的devops角色的ARN為:acs:ram::123456789012****:role/samplerole
。建立角色後,單擊角色名稱,可在基本資料頁查看其ARN。
5. 給RAM使用者授予這個權限原則,建立方法請參見為RAM使用者授權。
6. 授權完畢,可以將角色名稱交給RAM使用者,RAM使用者此時可以前往邏輯編排進行工作流程編輯,並在調用 OpenAPI時給邏輯編排授權。
6.1 如果RAM使用者沒有RAM唯讀許可權,RAM使用者在授權時將該角色填入授權框內,點擊“確定”完成授權操作。
6.2 如果RAM使用者有RAM唯讀許可權,其可以通過可視化的方式選擇合適的角色。
操作步驟(RAM使用者有RAM讀寫權限)
1. 根據授權面板提示,使用者可以選擇最合適的權限原則進行授權。