SchedulerX支持基于RAM用戶與用戶組批量設置用戶權限策略。RAM可以讓您避免與其他用戶共享阿里云賬號密鑰,按需分配最小權限,從而降低信息安全風險。本文介紹如何為RAM用戶授予相關操作的權限。
快速入門配置
RAM權限配置提供了兩種方案,可為RAM用戶快速開通SchedulerX使用權限的配置說明。兩種權限策略管控范圍由低到高,您可以按照所需的權限策略來配置,如需更詳細粒度的自定義權限配置,請參見自定義權限策略配置案例。
通過給RAM用戶授權創建資源
默認情況下RAM用戶不具備創建、查看、操作SchedulerX任何資源的權限,您可以給某個RAM用戶授權創建資源的權限,該RAM用戶創建的所有資源默認都可以讀寫。
操作步驟:
登錄RAM控制臺。
創建自定義權限策略,具體操作請參見創建自定義權限策略。您可以使用以下策略腳本內容,為RAM用戶授予創建命名空間權限,以及所有命名空間下創建應用分組的權限。該RAM用戶僅限于擁有自己創建的應用分組的權限。如需其他RAM賬號創建的應用分組和資源權限請參見本文自定義權限策略配置章節。
{ "Version": "1", "Statement": [ { "Action": ["edas:CreateSchedulerxNamespace*", "edas:CreateSchedulerxAppGroup*"], "Effect": "Allow", "Resource": "acs:edas:*:*:*" } ] }
為用戶組分配步驟2配置的權限策略以及將用戶添加至具備相應權限策略的用戶組。
為用戶組分配權限策略。具體操作,請參見為RAM用戶組授權。
將用戶添加至具備相應權限策略的用戶組。具體操作,請參見方式二:在RAM用戶組頁面添加RAM用戶到RAM用戶組。
通過管理員創建資源再授權給RAM用戶
一般情況下,在軟件項目管理中只有運維人員才能創建資源,開發人員只有讀和操作的權限。您可以給運維人員創建一個管理員角色,使其擁有分布式任務調度平臺上所有資源的操作權限。后續再由該管理員來創建相應空間和應用分組資源,并創建操作對應空間或應用分組的權限策略分配給其他需要的RAM用戶。
操作步驟:
登錄RAM控制臺。
創建自定義權限策略,具體操作請參見創建自定義權限策略。您可以使用以下策略腳本內容,為RAM用戶授予SchedulerX管理員權限策略,擁有該主賬號下SchedulerX所有資源管理權限。
{ "Statement": [ { "Action": "edas:*Schedulerx*", "Effect": "Allow", "Resource": [ "acs:edas:*:*:*" ] } ], "Version": "1" }
為用戶組分配步驟2配置的權限策略以及將用戶添加至具備相應權限策略的用戶組。
為用戶組分配權限策略。具體操作,請參見為RAM用戶組授權。
將用戶添加至具備相應權限策略的用戶組。具體操作,請參見方式二:在RAM用戶組頁面添加RAM用戶到RAM用戶組。
SchedulerX權限說明
主賬號默認擁有該賬號下所有資源的操作管理權限。在后續權限控制中,建議采用RAM訪問控制進行權限策略分配。SchedulerX基于RAM用戶與用戶組,便于批量設置權限策略,因此在原SchedulerX對應用的管理下,無需逐個對單獨的用戶進行獨立授權。SchedulerX的權限策略支持共享系統權限策略配置。
系統策略 | 說明 |
AdministratorAccess | 管理所有阿里云資源,包含對SchedulerX下所有操作及資源的訪問操作權限。 |
下面將對SchedulerX如何自定義權限策略配置細節進行說明,在RAM中定義權限策略主要包括:操作Action和資源Resource,您可根據SchedulerX定義的規則自行創建權限策略。
自定義策略主體結構
{
"Statement": [
{
"Action": "edas:*", // 操作Action配置項,配置說明參考下一節《操作Action》
"Effect": "Allow",
"Resource": "*" // 操作對象Resource配置項,配置說明參考下一節《資源Resource》
}
],
"Version": "1",
}
操作Action
SchedulerX的操作Action定義結構如下:
edas:${type}Schedulerx*
${type}
分為4個類型:Read、Manage、Delete、Create。包含相關操作如下所示:
類型 | 相關操作 |
Create | 創建命名空間、創建應用、創建任務、創建工作流。 |
Manage |
|
Delete | 刪除命名空間、刪除應用分組、刪除任務、刪除流程。 |
Read | 查詢應用分組、查詢任務、查詢任務實例、查詢流程、查詢在線實例。 |
資源Resource
SchedulerX的資源Resource定義結構如下:
acs:edas:${regionid}:${accountid}:namespace/${namespace_id}/${resourceType}/${resourceId}
參數 | 描述 |
| 區域,針對某個區域資源訪問。默認可配置 |
| 賬號,針對某個賬戶資源訪問。默認可配置 |
| 命名空間ID,針對某個命名空間。 |
| 資源種類,可選:JobGroup(SchedulerX下的任務應用分組)。 |
| 上述資源類型
|
自定義權限策略配置案例
給RAM用戶授權所有資源的管理權限
管理SchedulerX的所有權限策略,允許訪問SchedulerX下的所有操作和資源。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"edas:*Schedulerx*"
],
"Resource": [
"acs:edas:*:*:*"
]
}
]
}
給RAM用戶授權所有資源的只讀權限
設置ScheudlerX下所有資源的只讀查詢權限,允許查看SchedulerX下的所有資源信息。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"edas:ReadSchedulerx*"
],
"Resource": [
"acs:edas:*:*:*"
]
}
]
}
給RAM用戶授權指定命名空間下所有Action的權限
設置指定空間或者部分空間下所有應用任務資源的管理權限,命名空間ID值需要從EDAS微服務空間下自行獲取并進行配置。如下表示對兩個空間(命名空間ID-01、命名空間ID-02)具備調度相關資源信息的管理權限。您還可以自行調整切換其中的Action配置來限制對上述資源的操作(如:Action定義為"edas:ReadSchedulerx*",則表示為對上述兩個空間具備只讀查詢權限)。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"edas:*Schedulerx*"
],
"Resource": [
"acs:edas:*:*:namespace/命名空間ID-01/*",
"acs:edas:*:*:namespace/命名空間ID-02/*"
]
}
]
}
給RAM用戶授權指定應用下所有Action的權限
設置任務調度中部分應用下的資源訪問管理權限,Resource指定如下空間對應的JobGroup的應用ID信息即可設置相應應用下的訪問權限。您也可以通過前綴加“*”模式(如下:"TestGroup*",表示TestGroup前綴的所有應用)來指定符合相應前綴的應用分組進行快速批量設置。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"edas:*Schedulerx*"
],
"Resource": [
"acs:edas:*:*:namespace/命名空間ID-01/JobGroup/TestGroup*",
"acs:edas:*:*:namespace/命名空間ID-02/JobGroup/AppGroup"
]
}
]
}