任务调度SchedulerX授权
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的权限策略支持共享系统权限策略配置。
系统策略 | 说明 |
AliyunEDASFullAccess | 管理企业级分布式应用服务(EDAS)的权限。 |
下面将对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"
]
}
]
}