您在EDAS上托管的应用可能包含多个服务或子系统,这些服务或子系统又可能由不同团队、成员进行开发、运维。EDAS通过账号体系及基于账号体系的一系列权限管理操作,提供企业级的权限管理系统,帮助您对应用、资源和数据进行必要的隔离和权限控制,以保证其安全性。
EDAS内置权限管理和RAM权限管理
EDAS内置了一套权限管理系统,又接入了阿里云访问控制RAM(Resource Access Management)的权限管理。
- RAM权限管理操作,请参见RAM简介。
- EDAS内置权限管理操作,请参见管理EDAS内置权限(不推荐)。
为了能够统一管理EDAS和其他阿里云产品的权限,推荐您使用RAM权限管理。EDAS也提供了将内置的权限管理迁移至RAM权限管理的方案。具体操作,请参见将EDAS内置的权限管理切换为RAM权限管理。
EDAS目前处于EDAS内置权限管理与RAM权限管理共存的过渡状态,目前您的RAM用户或子账号所使用的权限管理规则如下:
- 未使用过EDAS内置权限管理的子账号,直接使用RAM权限管理,不能再使用EDAS内置权限管理。
- 使用过EDAS内置权限管理的子账号:
- 拥有RAM中AliyunEDASFullAccess权限的子账号,直接使用RAM鉴权,不再开放EDAS内置鉴权。
- 使用过EDAS内置权限管理的子账号,建议手动切换为RAM鉴权,具体操作,请参见将EDAS内置的权限管理切换为RAM权限管理。如果不做任何改动,可继续使用EDAS内置鉴权。
为什么要使用RAM权限管理
RAM是阿里云提供的资源访问控制服务。通过设置权限策略(Policy),您可以集中管理您的用户(例如员工、系统或应用程序),以及控制用户可以访问哪些资源,例如限制您的用户只拥有对某一个EDAS应用的读权限。
更细粒度的鉴权
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的所有权限点使用。
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/*/cluster/${clusterId} |
资源管理-管理和删除集群 | 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} |
ECS代购 | edas:ECSPurchase | acs:edas:*:*:* |
SLB代购 | edas:SLBPurchase | acs:edas:*:*:* |
SLS代购 | edas:SLSPurchase | acs:edas:*:*:* |