权限策略示例库

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

权限策略中Resource的变量说明

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

  • $regionid:所在地域的ID,例如cn-shanghai。具体取值,请参见地域和可用区

  • $namespace:微服务空间租户ID,如下图所示,方框内为微服务空间的租户ID。

    可登录EDAS控制台,在左侧导航栏,选择资源管理 > 微服务空间,进入微服务空间页面获取。

    查看命名空间租户ID

  • $clusterId:集群ID,例如8c349f69-505c-436f-8dc7-**********,如下图所示,方框内为集群ID。

    可登录EDAS控制台,在左侧导航栏,选择资源管理 > EDAS ECS集群,单击集群ID/名称进入集群详情页面获取。

    查看集群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:*

集群授权

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

创建集群

重要

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

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

微服务空间

与微服务空间使用相关的场景授权说明如下:

创建微服务空间

重要

创建微服务空间时,Resourcenamespace/后面的必须是星号(*),否则鉴权失败。

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