本文介紹了如何使用存取控制RAM(Resource Access Management)在帳號層級上控制對OOS資源的訪問,具體通過建立RAM使用者(組)並授予特定權限原則實現。
應用情境
存取控制RAM是阿里雲提供的資源存取控制服務。以下列舉了存取控制RAM的典型情境:
CloudOps Orchestration Service管理員:您可以建立一個CloudOps Orchestration Service管理員,給該Administrator 群組授予CloudOps Orchestration Service的完全許可權,包括建立編輯模板和執行。
模板開發人員:該使用者組需要編輯模板的許可權。您可以給開發人員組授予一個權限原則,該策略授予使用者群組成員調用CreateTemplate,UpdateTemplate等許可權。
模板執行:您可以限制一部分使用者只能執行OOS模板,而不能建立修改OOS模板。
模板鑒權:您可以限制某個模板只能被指定的使用者(組)執行。
子賬戶PassRole許可權
協助文檔"為OOS服務設定RAM許可權"一節,介紹了建立RAM角色,並授信給CloudOps Orchestration Service的過程。但是,CloudOps Orchestration Service有權訪問這個RAM角色,並不代表執行CloudOps Orchestration Service的子賬戶,有權使用這個RAM角色。只有對子賬戶和目標RAM角色進行PassRole鑒權通過之後,該子賬戶才能通過CloudOps Orchestration Service,使用目標RAM角色。
如果允許某子賬戶,靈活的使用已經授信給CloudOps Orchestration Service的所有RAM角色,那麼,可以建立如下的權限原則並授權給該子賬戶:
{
"Version": "1",
"Statement": [
{
"Action": "ram:PassRole",
"Resource": "*",
"Effect": "Allow",
"Condition": {
"StringEquals": {
"acs:Service": "oos.aliyuncs.com"
}
}
}
]
}
出於安全考慮,您可能需要限制子賬戶只能使用某個特定的RAM Role(比如預設的OOSServieRole)來進行CloudOps Orchestration Service,在此情況下,您可以做如下授權:
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "ram:PassRole",
"Resource": "acs:ram::{parent_uid}:role/OOSServiceRole"
}
]
}
如果RAM角色是在模板內部固定的(包括使用預設OOSServiceRole),輸入參數不包含角色,那麼,在執行該模板的時候,不需要PassRole授權。但是,在建立或者修改該模板的時候,子賬戶需要PassRole授權。
如果RAM角色是在執行模板時通過輸入參數Parameters動態擷取的,模板本身並沒有指定RAM Role,那麼,在建立或者修改該模板時,不需要PassRole的許可權。但相應的,執行該模板並指定RAM Role的子賬戶,需要PassRole許可權。
如上樣本中的{parent_uid}為您所使用的阿里雲主帳號ID。
權限原則
步驟一
請按以下流程在存取控制RAM控制台建立一個自訂權限原則:
登入RAM控制台。
在左側導覽列,單擊
。單擊建立權限原則。
單擊指令碼編輯,輸入策略。
策略樣本一:允許使用者執行模板,但不允許編輯模板。
{ "Version": "1", "Statement": [ { "Action": [ "oos:List*", "oos:Get*", "oos:StartExecution", "oos:CancelExecution", "oos:NotifyExecution" ], "Resource": "*", "Effect": "Allow" } ] }
策略樣本二:允許RAM使用者建立編輯模板。不包含執行許可權。
{ "Version": "1", "Statement": [ { "Action": [ "oos:List*", "oos:Get*", "oos:CreateTemplate", "oos:UpdateTemplate", "oos:ValidateTemplateContent" ], "Resource": "*", "Effect": "Allow" } ] }
策略樣本三:CloudOps Orchestration Service的管理員權限。
{ "Version": "1", "Statement": [ { "Action": "oos:*", "Effect": "Allow", "Resource": "*" }, { "Action": "ram:PassRole", "Resource": "*", "Effect": "Allow", "Condition": { "StringEquals": { "acs:Service": "oos.aliyuncs.com" } } } ] }
單擊繼續編輯基本資料,填寫基本資料後單擊確定。
步驟二
請按以下流程在存取控制RAM控制台授權RAM使用者相關許可權:
在左側導覽列,單擊
。找到已建立的RAM使用者,在操作列中,選擇添加許可權。在選擇許可權處,選擇一個或多個系統權限原則或者自訂權限原則。
單擊確認新增授權。