您在EDAS上托管的应用可能包含多个服务或子系统,这些服务或子系统又可能由不同团队、成员进行开发、运维。EDAS通过账号体系及基于账号体系的一系列权限管理操作,提供企业级的权限管理系统,帮助您对应用、资源和数据进行必要的隔离和权限控制,以保证其安全性。

EDAS内置权限管理和RAM权限管理

EDAS内置了一套权限管理系统,又接入了阿里云访问控制RAM(Resource Access Management)的权限管理。

为了能够统一管理EDAS和其它阿里云产品的权限,推荐您使用RAM权限管理。EDAS也提供了将内置的权限管理迁移至RAM权限管理的方案。具体操作,请参见将EDAS内置的权限管理切换为RAM权限管理

说明 EDAS内置权限管理模式下,阿里云账号如果要对子账号进行权限管理,需要登录EDAS控制台,为子账号分配EDAS的权限和资源。迁移至RAM后,阿里云账号在EDAS控制台无法再为子账号授权,需要登录到RAM控制台为子账号授予EDAS的相关权限。

EDAS目前处于EDAS内置权限管理与RAM权限管理共存的过渡状态,目前您的RAM用户或子账号所使用的权限管理规则如下:

  • 未使用过EDAS内置权限管理的子账号,直接使用RAM权限管理,不能再使用EDAS内置权限管理。
  • 使用过EDAS内置权限管理的子账号:

为什么要使用RAM权限管理

RAM是阿里云提供的资源访问控制服务。通过设置权限策略(Policy),您可以集中管理您的用户(例如员工、系统或应用程序),以及控制用户可以访问哪些资源,例如限制您的用户只拥有对某一个EDAS应用的读权限。

更细粒度的鉴权

EDAS内置权限管理 RAM权限管理
EDAS内置权限资源对应图 RAM权限资源对应图
阿里云账号为子账号分配资源后,所有的权限都会匹配这些资源。例如,当授予子账号APP1和APP2的资源后,如果再授予子账号部署应用和停止应用的权限,那么,该子账号会有权限对APP1和APP2进行部署和停止操作。资源粒度较为粗糙,不能更精确地控制权限。 相比EDAS内置的权限管理,RAM的权限控制更为精细。每条权限都可以配置所拥有的资源。例如,阿里云账号可以授予RAM用户部署APP和停止APP的权限,同时,部署APP的权限配置上资源APP1和APP2,停止APP的权限配置上资源APP2和APP3。此时,RAM用户可以部署APP1和APP2,不能部署APP3;可以停止APP2和APP3,不能停止APP1。

更强大的语法

相比EDAS内置权限管理,RAM权限管理的语法更为丰富,不仅支持用通配符进行模糊匹配,还支持多种鉴权策略组合,实现更复杂的鉴权逻辑。

以下面的RAM策略为例:

{
    "Statement": [
      {
        "Action": [
          "edas:ReadApplication"
        ],
        "Effect": "Allow",
        "Resource": ["acs:edas:*:*:namespace/*/application/*"]
      },
      {
        "Action": [
          "edas:ReadApplication"
        ],
        "Effect": "Deny",
        "Resource": ["acs:edas:cn-beijing:*:namespace/*/application/12345678"]
      }
    ],
    "Version": "1"
}

该RAM策略有2条语句:

  • 第1条是允许语句,权限动作edas:ReadApplication代表查看APP,针对的资源是通配符*,代表所有APP。第1条语句的意思就是授予RAM用户查看EDAS中所有的APP的权限。
  • 第2条是禁止语句,资源是ID为12345678的APP,代表的意思为禁止查看ID为12345678的APP。

以上两条语句相结合,则代表:授予RAM用户查看除ID为12345678的APP之外的其它所有APP的权限。

RAM权限管理语法还有条件表达式等多种功能。更多信息,请参见权限策略概览

EDAS内置权限和RAM权限的映射关系

EDAS内置权限与RAM权限并不完全匹配,因此是无法等效替换的。EDAS提供了权限策略转换功能,可将EDAS内置权限转换为尽量一致的RAM权限。其中,子账号拥有的EDAS的资源(应用和集群)默认会赋给RAM的所有权限点使用。

表 1. 权限映射对照表
EDAS内置权限 RAM权限 RAM资源
Super Admin(All privileges) edas:* acs:edas:*:*:*
代理主账号 edas:ManageSystem acs:edas:*:*:*
系统管理-操作日志 edas:ReadOperationLog acs:edas:*:*:*
应用管理-编辑命名空间 edas:ManageNamespace acs:edas:*:*:namespace/${namespaceId}
应用管理-查询命名空间 edas:ReadNamespace acs:edas:*:*:namespace/${namespaceId}
资源管理-创建集群 edas:CreateCluster acs:edas:*:*:namespace/*
资源管理-查看集群 edas:ReadCluster acs:edas:*:*:namespace/${namespaceId}
资源管理-管理和删除集群 edas:ReadCluster

edas:ManageCluster

acs:edas:*:*:namespace/*/cluster/${clusterId}
应用管理-创建应用 edas:CreateApplication acs:edas:*:*:namespace/*
应用管理-部署、启动、扩容和删除应用 edas:ManageApplication

edas:ReadApplication

acs:edas:*:*:namespace/*/application/${applicationId}
应用管理-查看应用信息 edas:ReadApplication acs:edas:*:*:namespace/*/application/${applicationId}
应用管理-配置容器和编辑应用JVM参数 edas:ConfigApplication

edas:ReadApplication

acs:edas:*:*:namespace/*/application/${applicationId}
应用管理-设置日志路径 edas:ManageAppLog

edas:ReadApplication

acs:edas:*:*:namespace/*/application/${applicationId}