文本介绍了在RAM中可以授权的跟EDAS相关的权限细分规则和权限策略。

权限策略中Resource的变量说明

权限策略声明中Resource包含的变量说明如下:

  • $regionid:所在地域的ID,如cn-shanghai,具体取值参见地域和可用区
  • $namespace:命名空间租户ID,详情可在EDAS控制台左侧导航栏选择应用管理 > 命名空间,进入命名空间页面获取,以下截图圈住部分即为命名空间的租户ID。查看命名空间租户ID
  • $clusterId:集群ID,如8c349f69-505c-436f-8dc7-xxxxxxxxx,您可在集群详情页面获取。查看集群ID
  • $applicationId:应用ID,如ec8e38a3-3dca-47a7-b6f9-5xxxxxxxxxx,具体可在应用基本信息页面获取。应用详情

权限细分规则

本章节介绍了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
表 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: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:*
表 7. EDAS商用相关功能
Code Description Dependency action Resource
7 EDAS商用相关功能 edas:ManageCommercialization acs:edas:$regionid:$accountid:*

集群授权

跟集群使用相关的场景授权说明如下:

查看集群详情

集群相关的只读权限,例如查看单个集群详情,查看集群下的实例或应用等信息。
说明 通过给子账号授予资源组,子账号才能在集群列表中查看到被授权的集群。
{
   "Version": "1",
   "Statement": [
     {
       "Action": ["edas:ReadCluster"],
       "Resource": ["acs:edas:$regionid:*:namespace/$namespace/cluster/$clusterId"],
       "Effect": "Allow"
      }
   ]
 }

删除集群 

{
   "Version": "1",
   "Statement": [
     {
       "Action": ["edas:ReadCluster","edas:DeleteCluster"],
       "Resource": ["acs:edas:$regionid:*:namespace/$namespace/cluster/$clusterId"],
       "Effect": "Allow"
      }
   ]
 }

创建集群 

注意 创建集群时,Resourcecluster/后面的必须是星号(*)。

{
   "Version": "1",
   "Statement": [
     {
       "Action": ["edas:CreateCluster"],
       "Resource": ["acs:edas:$regionid:*:namespace/$namespace/cluster/*"],
       "Effect": "Allow"
      }
   ]
 }

管理集群

包括创建集群、导入实例到集群、编辑集群信息和删除集群等。

注意 使用管理集群的权限策略来创建集群时, Resource cluster/后面的必须是星号(*)。

{
   "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:ReadNamespace","edas:DeleteNamespace"],
       "Resource": ["acs:edas:$regionid:*:namespace/$namespace"],
       "Effect": "Allow"
      }
   ]
 }

创建命名空间

注意 创建命名空间时, Resource namespace/后面的必须是星号(*)。
{
   "Version": "1",
   "Statement": [
     {
       "Action": ["edas:CreateNamespace"],
       "Resource": ["acs:edas:$regionid:*:namespace/*"],
       "Effect": "Allow"
      }
   ]
 }

管理命名空间

当编辑或修改命名空间名称时,需授予管理命名空间权限。

{
   "Version": "1",
   "Statement": [
     {
       "Action": ["edas:ManageNamespace"],
       "Resource": ["acs:edas:$regionid:*:namespace/$namespace"],
       "Effect": "Allow"
      }
   ]
 }

应用管理

跟应用相关的场景授权说明如下:

单个应用的授权

  • 管理应用:使子账号可以查看该应用的基本信息、管理配置和应用日志,但不允许创建和删除应用。
    {
        "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"
}

管理服务

  • 服务鉴权
    说明 如果要授权所有应用,您可将下述权限策略中的$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的配置管理能力,与配置管理相关的权限控制详情请参见访问权限控制

系统管理

系统管理包含了管理子账号、查看产品用量、查看操作日志等系统级的权限。

{
   "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"
      }
   ]
 }