分布式任务调度自定义权限策略参考
如果系统权限策略不能满足您的要求,您可以创建自定义权限策略实现最小授权。使用自定义权限策略有助于实现权限的精细化管控,是提升资源访问安全的有效手段。本文介绍分布式任务调度使用自定义权限策略示例。
什么是自定义权限策略
在基于RAM的访问控制体系中,自定义权限策略是指在系统权限策略之外,您可以自主创建、更新和删除的权限策略。自定义权限策略的版本更新需要由您来维护。
创建自定义权限策略后,需为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"
]
}
]
}