借助资源组进行权限管理

EDAS支持阿里云资源管理的资源组功能。EDAS接入资源组服务后,将EDAS的集群和应用分派给不同的资源组,并为RAM用户配置资源组权限,可以简化权限配置,方便企业管理。

前提条件

  • 非RAM用户(EDAS原有子账号)需要将EDAS自有的权限管理切换为RAM权限管理模式。具体操作,请参见将EDAS内置的权限管理切换为RAM权限管理

  • 云账号(主账号)和RAM用户自动开启资源管理,无需操作。

背景信息

阿里云资源管理服务包含一系列支持企业IT治理的资源管理产品集合。通过资源管理服务,您可以按照业务需要搭建合适的资源组织关系,使用资源组,分层次地组织和管理EDAS中的集群和应用等资源。

资源组(Resource Group)是在阿里云账号下进行资源分组管理的一种机制,资源组能够帮助您解决单个阿里云账号内的资源分组和授权管理的复杂性问题。

  • 对单个阿里云账号下多个地域、多种云资源进行集中的分组管理。

  • 为每个资源组设置管理员,资源组管理员可以独立管理资源组内的所有资源。

EDAS自有权限管理和RAM权限管理的关系

EDAS包含以下两种相互独立的权限管理模式。

说明

一个阿里云的账号,只能同时使用一种权限管理模式,推荐使用RAM权限管理模式。

  • 接入RAM前,EDAS通过自己的账号体系和资源组,独立对子账号进行权限管理。

  • 接入RAM后,EDAS借助资源管理中的资源组,对RAM用户进行权限管理。

为什么要借助资源组进行权限管理

以一个示例场景说明为什么要借助资源组进行权限管理。

资源组场景示意

企业A有两个部门,deptA和deptB。部门deptA使用RAM用户subA管理集群clusterA和应用appA1和appA2;部门deptB使用RAM用户subB管理集群clusterB和应用appB1和appB2。

在RAM中有两种权限管理方式,直接使用RAM进行权限管理和借助资源组进行权限管理。

表 1. 直接使用RAM和借助资源组进行权限管理对比

对比

直接使用RAM权限管理

借助资源组进行权限管理

使用场景

适用于细粒度的权限管理场景

适用于粗粒度的权限管理场景

原理

使用该企业的云账号在RAM控制台中分别为部门deptA和deptB创建RAM用户subA和subB,并为subA和subB创建权限策略policyA和policyB,在策略中分别配置集群、应用资源,以及操作权限。

使用该企业的云账号在资源管理控制台创建资源组groupA和groupB,将部门deptA和deptB的集群和应用资源分别添加到两个资源组中。在RAM控制台为两个部门创建RAM用户subA和subB,并创建通用的自定义策略。该策略可以在两个资源组内对不同的资源和子账号分别生效,互不影响。

特点

这种方式有两个缺点:

  • 配置重复

    subA和subB是一样的权限控制需求,仅仅是管理的资源不同,但需要创建两个策略,分别配给两个RAM用户。

  • 改动频繁

    每次创建或删除资源,例如subA新建了应用appA3、appA4,就需要给在policyA中添加对应的AppId配置。

这种方式的优势:

  • 简化权限配置

    资源组帮助管控资源范围,因此授权的时候,可以粗粒度的调整资源,不需要再精细到单个应用或集群。

  • 复用权限策略

    您不再需要因为资源不同,为每个不同的子账号都配置一份策略,策略只要关注action即可。

说明

两种权限管理方式使用场景不同,需要根据具体需求选择。

使用限制

资源组能够简化EDAS权限配置,但在使用资源组时,需要注意以下限制。

  • 微服务空间不在资源组的管理范围内。资源组能够覆盖的资源类型为应用和集群,微服务空间的相关权限操作需要在RAM配置。

  • 配置管理ACM、应用实时监控服务ARMS等暂不支持资源组。

操作步骤

以上述场景示例为例,介绍如何通过资源管理和RAM联合进行权限控制。

  1. 在资源管理控制台中创建资源组groupA和groupB。具体操作,请参见创建资源组

  2. 为资源组groupA和groupB添加集群和应用资源。具体操作,请参见资源转入到当前资源组

  3. 在RAM控制台中分别为部门deptA和deptB创建RAM用户subA和subB。具体操作,请参见创建RAM用户

  4. 在RAM控制台中创建通用的权限策略。具体操作,请参见创建自定义权限策略

    策略内容如下:

    {
        "Version": "1",
        "Statement": [    
          {
            "Effect": "Allow",
            "Action": [
                  "edas:*Cluster",
                "edas:*Application"
            ],
            "Resource": [
              "acs:edas:*:*:*"
            ]
          }
        ]
    }
  5. 在资源管理控制台中的资源组groupA和groupB中分别为RAM用户subA和subB授予通用权限策略。具体操作,请参见添加RAM身份并授权

  6. 可选:需要调整资源配置时,调整资源组即可。

  7. 可选:为用户subA直接授予非资源组资源的权限,以微服务空间下微服务列表为例。具体操作,请参见为RAM用户授权

    说明

    即使给资源组groupA绑定了AliyunEDASFullAccess并授予了subA,当subA使用微服务空间为条件查询微服务列表时,仍会出现无权限的提醒,因微服务空间不关联资源组,需要将微服务空间权限策略直接授予subA。

    策略内容如下:

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

    同样,对于权限细分规则中的管理集群管理应用微服务管理(使用应用为条件) 之外的权限,也都需要直接授予subA相应的权限策略。

结果验证

在完成权限管理后,请根据您的实际业务需求验证RAM用户的权限是否符合预期。