本文介绍在RAM中与EDAS相关的授权权限细分规则和权限策略。
权限策略中Resource的变量说明
权限策略声明中Resource包含的变量说明如下:
$regionid:所在地域的ID,例如cn-shanghai。具体取值,请参见地域和可用区。
$namespace:微服务空间租户ID,如下图所示,方框内为微服务空间的租户ID。
可登录EDAS控制台,在左侧导航栏,选择 ,进入微服务空间页面获取。
$clusterId:集群ID,例如8c349f69-505c-436f-8dc7-**********,如下图所示,方框内为集群ID。
可登录EDAS控制台,在左侧导航栏,选择 ,单击集群ID/名称进入集群详情页面获取。
$applicationId:应用ID,如ec8e38a3-3dca-47a7-b6f9-5**********,如下图所示,方框内为应用ID。
可登录EDAS控制台,在左侧导航栏,选择 ,单击应用名称,进入应用详情页面的基本信息页签获取。
权限细分规则
本章节介绍EDAS内置权限和RAM中权限策略的对应关系。
管理微服务空间
表 1. 管理微服务空间
Code | Description | Dependency action | Resource |
1.1 | 创建微服务空间 | edas:CreateNamespace | acs:edas:$regionid:$accountid:namespace/* |
1.2 | 删除微服务空间 | edas:ReadNamespace | acs:edas:$regionid:$accountid:namespace/$namespace |
edas:DeleteNamespace | |||
1.4 | 编辑微服务空间 | edas:ManageNamespace | acs:edas:$regionid:$accountid:namespace/$namespace |
edas:ReadNamespace | |||
1.5 | 查看微服务空间 | edas:ReadNamespace | acs:edas:$regionid:$accountid:namespace/$namespace |
表 2. 管理集群
Code | Description | Dependency action | Resource |
2.1 | 创建集群 | edas:CreateCluster | acs:edas:$regionid:$accountid:namespace/$namespace/cluster/* |
2.2 | 删除集群 | edas:ReadCluster | acs:edas:$regionid:$accountid:namespace/$namespace/cluster/$clusterId |
edas:DeleteCluster | |||
2.4 | 管理集群 | edas:ReadCluster | acs:edas:$regionid:$accountid:namespace/$namespace/cluster/$clusterId |
edas:ManageCluster | |||
2.3 | 查看集群 | edas:ReadCluster | acs:edas:$regionid:$accountid:namespace/$namespace/cluster/$clusterId |
表 3. 管理应用
Code | Description | Dependency action | Resource |
3.1 | 创建应用 | edas:CreateApplication | acs:edas:$regionid:$accountid:namespace/$namespace/application/* |
3.2 | 删除应用 | edas:ReadApplication | acs:edas:$regionid:$accountid:namespace/$namespace/application/$applicationId |
edas:DeleteApplication | |||
3.3 | 查看应用 | edas:ReadApplication | acs:edas:$regionid:$accountid:namespace/$namespace/application/$applicationId |
3.4 | 管理应用 | edas:ManageApplication | acs:edas:$regionid:$accountid:namespace/$namespace/application/$applicationId |
edas:ReadApplication | |||
3.5 | 配置应用 | edas:ConfigApplication | acs:edas:$regionid:$accountid:namespace/$namespace/application/$applicationId |
edas:ReadApplication | |||
3.6 | 管理日志 | edas:ReadApplication | acs:edas:$regionid:$accountid:namespace/$namespace/application/$applicationId |
edas:ManageAppLog |
表 4. 微服务管理
Code | Description | Dependency action | Resource |
4.1 | 查看服务 | edas:ReadService | acs:edas:$regionid:$accountid:namespace/$namespace/application/$applicationId |
4.2 | 测试服务 | edas:TestService | acs:edas:$regionid:$accountid:namespace/$namespace/application/$applicationId |
4.3 | 管理服务 | edas:ReadService | acs:edas:$regionid:$accountid:namespace/$namespace/application/$applicationId |
edas:ManageService |
表 5. 配置管理
Code | Description | Dependency action | Resource |
5.1 | 查看配置 | acms:R | acs:acms:$regionid:$accountid:cfg/$namespace/$groupId/$configId |
5.2 | 管理配置 | acms:* | acs:acms:$regionid:$accountid:cfg/$namespace/$groupId/$configId |
表 6. 系统管理
Code | Description | Dependency action | Resource |
6.1 | EDAS系统管理 | edas:ManageSystem | acs:edas:$regionid:$accountid:* |
6.2 | 查看操作日志 | edas:ReadOperationLog | acs:edas:$regionid:$accountid:* |
6.3 | 系统运维 | edas:ManageOperation | acs:edas:$regionid:$accountid:* |
6.4 | ECS代购 | edas:ECSPurchase | acs:edas:*:*:* |
6.5 | SLB代购 | edas:SLBPurchase | acs:edas:*:*:* |
6.6 | SLS代购 | edas:SLSPurchase | acs:edas:*:*:* |
表 7. EDAS商用相关功能
Code | Description | Dependency action | Resource |
7 | EDAS商用相关功能 | edas:ManageCommercialization | acs:edas:$regionid:$accountid:* |
集群授权
跟集群使用相关的场景授权说明如下:
创建集群
创建集群时,Resource
中cluster/
后面的必须是星号(*)。
{
"Version": "1",
"Statement": [
{
"Action": ["edas:CreateCluster"],
"Resource": ["acs:edas:$regionid:*:namespace/$namespace/cluster/*"],
"Effect": "Allow"
}
]
}
查看集群详情
集群相关的只读权限,例如查看单个集群详情、集群下的实例或应用等信息。
只有通过给RAM用户授予资源组后,RAM用户才能在集群列表中查看到被授权的集群。
{
"Version": "1",
"Statement": [
{
"Action": ["edas:ReadCluster"],
"Resource": ["acs:edas:$regionid:*:namespace/$namespace/cluster/$clusterId"],
"Effect": "Allow"
}
]
}
管理集群
包括创建集群、导入实例到集群、编辑集群信息和删除集群等。
{
"Version": "1",
"Statement": [
{
"Action": ["edas:ManageCluster"],
"Resource": ["acs:edas:$regionid:*:namespace/$namespace/cluster/$clusterId"],
"Effect": "Allow"
}
]
}
下面以两个示例场景说明如何配置集群管理的权限策略。
场景一:授权集群的管理权限,但不允许创建集群。
{ "Version": "1", "Statement": [ { "Action": ["edas:ManageCluster"], "Resource": ["acs:edas:$regionid:*:namespace/$namespace/cluster/$clusterId"], "Effect": "Allow" }, { "Action": ["edas:CreateCluster"], "Resource": ["acs:edas:$regionid:*:namespace/$namespace/cluster/*"], "Effect": "Deny" } ] }
说明其中
$clusterId
若配置为具体的值,则只能管理对应ID的集群;若配置为星号(*),则能管理指定微服务空间下的所有集群。场景二:授予集群的管理权限,但是不允许创建和删除集群。
{ "Version": "1", "Statement": [ { "Action": ["edas:ManageCluster"], "Resource": ["acs:edas:$regionid:*:namespace/$namespace/cluster/$clusterId"], "Effect": "Allow" }, { "Action": ["edas:CreateCluster","edas:DeleteCluster"], "Resource": ["acs:edas:$regionid:*:namespace/$namespace/cluster/*"], "Effect": "Deny" } ] }
删除集群
{
"Version": "1",
"Statement": [
{
"Action": ["edas:ReadCluster","edas:DeleteCluster"],
"Resource": ["acs:edas:$regionid:*:namespace/$namespace/cluster/$clusterId"],
"Effect": "Allow"
}
]
}
微服务空间
与微服务空间使用相关的场景授权说明如下:
创建微服务空间
创建微服务空间时,Resource
中namespace/
后面的必须是星号(*),否则鉴权失败。
{
"Version": "1",
"Statement": [
{
"Action": ["edas:CreateNamespace"],
"Resource": ["acs:edas:$regionid:*:namespace/*"],
"Effect": "Allow"
}
]
}
查看微服务空间
{
"Version": "1",
"Statement": [
{
"Action": ["edas:ReadNamespace"],
"Resource": ["acs:edas:$regionid:*:namespace/$namespace"],
"Effect": "Allow"
}
]
}
管理微服务空间
当编辑或修改微服务空间名称时,需授予管理微服务空间权限。
{
"Version": "1",
"Statement": [
{
"Action": ["edas:ManageNamespace"],
"Resource": ["acs:edas:$regionid:*:namespace/$namespace"],
"Effect": "Allow"
}
]
}
删除微服务空间
{
"Version": "1",
"Statement": [
{
"Action": ["edas:ReadNamespace","edas:DeleteNamespace"],
"Resource": ["acs:edas:$regionid:*:namespace/$namespace"],
"Effect": "Allow"
}
]
}
资源代购
为增强企业级用户的权限管理能力,EDAS支持资源代购的RAM管理权限。主要涉及的资源包含ECS、SLB和SLS。
资源代购的场景授权说明如下:
所有的代购类权限策略配置中,
resource
必须是"acs:edas:*:*:*"
,暂不支持更细粒度配置。资源代购权限策略只适用于RAM用户。
ECS代购的权限
使用范围:
在ECS集群创建后,添加购买ECS。
在ECS集群内创建应用时代购ECS。
在ECS集群内扩容应用时代购ECS。
策略示例:
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "edas:ECSPurchase" ], "Resource": [ "acs:edas:*:*:*" ] } ] }
SLB代购的权限
使用范围:为应用绑定负载均衡时代购SLB。
策略示例:
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "edas:SLBPurchase" ], "Resource": [ "acs:edas:*:*:*" ] } ] }
SLS代购的权限
使用范围:为应用代购日志服务SLS。
策略示例:
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "edas:SLSPurchase" ], "Resource": [ "acs:edas:*:*:*" ] } ] }
应用管理
与应用相关的场景授权说明如下:
单个应用
管理应用:使用RAM用户可以查看该应用的基本信息、管理配置和应用日志,但不允许创建和删除应用。
{ "Statement": [ { "Action": [ "edas:*Application" ], "Effect": "Allow", "Resource": ["acs:edas:$regionid:*:namespace/$namespace/application/$applicationId"] }, { "Action": [ "edas:DeleteApplication" ], "Resource":["acs:edas:$regionid:*:namespace/$namespace/application/$applicationId"], "Effect": "Deny" }, { "Action": [ "edas:CreateApplication" ], "Resource":["acs:edas:$regionid:*:namespace/$namespace/application/*"], "Effect": "Deny" } ], "Version": "1" }
创建应用
重要创建应用时使用的是所在集群内的实例,因此还需要授予查看集群的权限。
{ "Statement": [ { "Action": [ "edas:CreateApplication", "edas:ReadCluster" ], "Effect": "Allow", "Resource": [ "acs:edas:$regionid:*:namespace/$namespace/application/*", "acs:edas:$regionid:*:namespace/$namespace/cluster/$clusterId" ] } ], "Version": "1" }
删除应用
重要删除应用时还需要授予查看应用的权限,这样才能找到需要删除的应用。
{ "Statement": [ { "Action": [ "edas:DeleteApplication", "edas:ReadApplication" ], "Effect": "Allow", "Resource": ["acs:edas:$regionid:*:namespace/$namespace/application/$applicationId"] } ], "Version": "1" }
日志管理
重要管理应用日志时还需要授予查看应用的权限,这样才能找到需要日志管理的应用。
{ "Statement": [ { "Action": [ "edas:ReadApplication", "edas:ManageAppLog" ], "Effect": "Allow", "Resource": ["acs:edas:$regionid:*:namespace/$namespace/application/$applicationId"] } ], "Version": "1" }
设置应用:应用的设置包括对应用端口、Tomcat context、负载均衡、健康检查、JVM参数和同可用区优先等功能的设置。
重要设置应用时还需要授予查看应用的权限。
{ "Statement": [ { "Action": [ "edas:ReadApplication", "edas:ConfigApplication" ], "Effect": "Allow", "Resource": ["acs:edas:$regionid:*:namespace/$namespace/application/$applicationId"] }, ], "Version": "1" }
多个应用
查看应用:授权查看某个地域内的应用列表。
说明一个地域下包括多个微服务空间,查看应用可以查看该某地域的所有微服务空间内的应用列表。
{ "Statement": [ { "Action": [ "edas:ReadApplication" ], "Effect": "Allow", "Resource": ["acs:edas:$regionid:*:namespace/*/application/*"] } ], "Version": "1" }
查看应用:授权查看某命令空间内的应用列表。
{ "Statement": [ { "Action": [ "edas:*Application", "edas:ReadCluster" ], "Effect": "Allow", "Resource": [ "acs:edas:$regionid:*:namespace/$namespace/application/*", "acs:edas:$regionid:*:namespace/$namespace/cluster/*" ] } ], "Version": "1" }
微服务管理
与微服务管理使用相关的场景授权说明如下:
查询服务
如果需查询所有应用服务,您可将下述权限策略中的$applicationId
替换为星号(*)。
{
"Statement": [
{
"Action": [
"edas:ReadService"
],
"Effect": "Allow",
"Resource": [
"acs:edas:$regionid:*:namespace/$namespace/application/$applicationId"
]
}
],
"Version": "1"
}
测试服务
如果需测试所有微服务空间和应用服务,您可将下述权限策略中的$namespace
和$applicationId
替换为星号(*)。
{
"Statement": [
{
"Action": [
"edas:TestService"
],
"Effect": "Allow",
"Resource": [
"acs:edas:$regionid:*:namespace/$namespace/application/$applicationId"
]
}
],
"Version": "1"
}
服务鉴权
如果需授权所有应用,您可将下述权限策略中的$applicationId
替换为星号(*)。
{
"Statement": [
{
"Action": [
"edas:ManageService"
],
"Effect": "Allow",
"Resource": [
"acs:edas:$regionid:*:namespace/$namespace/application/$applicationId"
]
}
],
"Version": "1"
}
离群实例摘除
离群摘除会影响微服务空间下的相关应用,所以授权粒度为微服务空间。
{
"Statement": [
{
"Action": [
"edas:ManageService"
],
"Effect": "Allow",
"Resource": [
"acs:edas:$regionid:*:namespace/$namespace"
]
}
],
"Version": "1"
}
配置管理
EDAS集成了ACM的配置管理能力。与配置管理相关的权限控制,请参见访问权限控制。
系统管理
系统管理包含管理RAM用户、查看产品用量、查看操作日志等系统级的权限。
{
"Version": "1",
"Statement": [
{
"Action": ["edas:ManageSystem"],
"Resource": ["acs:edas:*:*:*"],
"Effect": "Allow"
}
]
}
系统权限不涉及具体的资源,故权限策略中的Resource
直接用acs:edas:*:*:*
即可。
系统运维
系统运维包含查看操作日志、执行批量运维和管理资源组的权限。
{
"Version": "1",
"Statement": [
{
"Action": ["edas:ManageOperation"],
"Resource": ["acs:edas:*:*:*"],
"Effect": "Allow"
}
]
}
操作日志
{
"Version": "1",
"Statement": [
{
"Action": ["edas:ReadOperationLog"],
"Resource": ["acs:edas:*:*:*"],
"Effect": "Allow"
}
]
}