Serverless应用引擎SAE(Serverless App Engine)的权限管理通过阿里云的访问控制RAM(Resource Access Management)实现,避免多用户共享阿里云账号密码或访问密钥(AccessKey ID和AccessKey Secret),从而降低安全风险。本文介绍如何基于RAM在SAE中创建权限策略以及进行授权配置。
前提条件
了解权限策略语言的基本结构和语法。具体信息,请参见权限策略语法和结构和权限策略基本元素。RAM权限策略
权限指在某种条件下允许或拒绝对某些资源执行某些操作;权限策略是用语法结构描述的一组权限的集合,可以精确地描述被授权的资源集、操作集以及授权条件。权限策略是描述权限集的一种简单语言规范。
在RAM中,权限策略是一种资源实体。SAE支持以下权限策略。
- 系统权限策略:统一由阿里云创建,您只能使用不能修改,策略的版本更新由阿里云维护,适用于粗粒度地控制RAM用户权限。
- 自定义权限策略:您可以自主创建、更新和删除,策略的版本更新由您自己维护,适用于细粒度地控制RAM用户权限。
系统策略
当您首次以RAM用户的身份登录SAE控制台时,SAE会弹出欢迎使用Serverless应用引擎SAE对话框,提示您需要为RAM用户授权,使RAM用户可以访问相应的阿里云资源。

您需要为RAM用户授予以下系统策略。
权限策略名称 | 说明 |
---|---|
AliyunSAEFullAccess | 管理SAE的权限,授权后才能执行应用管理相关的操作。若不需要SAE Full权限,可以通过SAE权限助手进行细粒度定制化权限设置。 |
AliyunSLBReadOnlyAccess | 只读访问SLB的权限,授权后才能使用SLB的相关功能。 |
AliyunACMFullAccess | 管理ACM的权限,授权后才能使用SAE内置的分布式配置管理的功能。 |
AliyunECSReadOnlyAccess | 只读ECS的权限,授权后才能在创建应用时选择已有的安全组列表。 |
AliyunOOSReadOnlyAccess | 只读OOS的权限,授权后才能使用SAE的批量定时启停应用的功能。 |
AliyunBSSReadOnlyAccess | 只读BSS的权限,授权后才能在SAE概览页查看购买的资源包的余量。 |
AliyunARMSReadOnlyAccess | 只读ARMS的权限,授权后才能使用SAE内置的应用监控管理功能。 |
AliyunContainerRegistryReadOnlyAccess | 只读容器镜像服务的权限,授权后才能在SAE应用部署镜像时,选择容器镜像服务企业版。 |
AliyunALBReadOnlyAccess | 只读访问应用型负载均衡服务(ALB)的权限。 |
AliyunYundunCertReadOnlyAccess | 只读访问云盾证书服务的权限。 |
AliyunEventBridgeReadOnlyAccess | 只读EB的权限,授权后才能使用创建更新Job的功能。 |
自定义策略
如果系统策略无法满足需求,您可以通过创建自定义策略实现更细粒度的权限管理。
SAE权限助手能够协助您对SAE的权限进行可视化配置,生成对应的权限语句,无需手动编辑自定义脚本,并通过RAM控制台创建相应的自定义策略并授权给RAM用户。
鉴权规则
资源描述如下。
资源类型 | 授权策略中的资源描述 |
---|---|
application | acs:sae:${regionid}:${accountid}:application/${namespaceid}/${appid}} |
参数说明如下。
参数 | 说明 |
---|---|
$regionid | 地域ID,可用* 代替。 |
$accountid | 云账号数字ID,可用* 代替。 |
$namespaceid | 命名空间ID,其中由于默认命名空间ID为空,采用_default 进行转义。说明 命名空间ID仅允许输入小写英文字母或数字。 |
$appid | 应用ID,可用* 代替。 |
示例如下。
以华东2(上海)地域为例。
- 命名空间ID为test,应用ID为0c815215-46a1-46a2-ba1e-0102a740****的资源描述。
acs:sae:cn-shanghai:*:application/test/0c815215-46a1-46a2-ba1e-0102a740****
- 命名空间(默认)的资源描述。
acs:sae:cn-shanghai:*:application/_default/*
权限策略示例
- 场景一:命名空间级别的授权配置
场景描述:授权产品读权限和特定命名空间及所属应用写权限。
例如允许使用RAM用户操作默认命名空间和命名空间ID为test的命名空间及其所属应用的资源。
Resource Action 描述 acs:sae:cn-shanghai:* sae:Query* 名称以Query开头的API可以对华东2(上海)地域下所有相关资源进行操作。 sae:List* 名称以List开头的API可以对华东2(上海)地域下所有相关资源进行操作。 sae:Describe* 名称以Describe开头的API可以对华东2(上海)地域下所有相关资源进行操作。 sae:*Ingress* 名称中包含Ingress的API可以对华东2(上海)地域下所有相关资源进行操作。 sae:*ChangeOrder* 名称中包含ChangeOrder的API可以对华东2(上海)地域下所有相关资源进行操作。 sae:*Pipeline* 名称中包含Pipeline的API可以对华东2(上海)地域下所有相关资源进行操作。 acs:sae:cn-shanghai:*:application/test/* sae:* 可以对华东2(上海)地域下命名空间ID为test的命名空间与所有应用资源进行操作。 { "Version": "1", "Statement": [ { "Action": [ "sae:Query*", "sae:List*", "sae:Describe*", "sae:*Ingress*", "sae:*ChangeOrder*", "sae:*Pipeline*" ], "Resource": "acs:sae:cn-shanghai:*:*", "Effect": "Allow" }, { "Action": [ "sae:*" ], "Resource": [ "acs:sae:cn-shanghai:*:application/test/*" ], "Effect": "Allow" } ] }
- 场景二:应用级别的授权配置
场景描述:授权产品读权限和特定应用写权限。
例如允许使用RAM用户操作如下应用。
应用 命名空间 应用ID 应用1 test 0c815215-46a1-46a2-ba1e-102a740**** 应用2 默认 e468a92b-1529-4d20-8ab1-9d1595dc**** Resource Action 描述 acs:sae:cn-shanghai:*:* sae:Query* 名称以Query开头的API可以对华东2(上海)地域下所有命名空间与应用资源进行操作。 sae:List* 名称以List开头的API可以对华东2(上海)地域下所有命名空间与应用资源进行操作。 sae:Describe* 名称以Describe开头的API可以对华东2(上海)地域下所有命名空间与应用资源进行操作。 sae:*Ingress* 名称中包含Ingress的API可以对华东2(上海)地域下所有命名空间与应用资源进行操作。 sae:*ChangeOrder* 名称中包含ChangeOrder的API可以对华东2(上海)地域下所有命名空间与应用资源进行操作。 sae:*Pipeline* 名称中包含Pipeline的API可以对华东2(上海)地域下所有命名空间与应用资源进行操作。 acs:sae:cn-shanghai:*:application/test/0c815215-46a1-46a2-ba1e-0102a740**** sae:* 可以对华东2(上海)地域下命名空间ID为test的命名空间与应用1的所有资源进行操作。 acs:sae:cn-shanghai:*:application/_default/e468a92b-1529-4d20-8ab1-9d1595dc**** 可以对华东2(上海)地域下默认命名空间与应用2的所有资源进行操作。 { "Version": "1", "Statement": [ { "Action": [ "sae:Query*", "sae:List*", "sae:Describe*", "sae:*Ingress*", "sae:*ChangeOrder*", "sae:*Pipeline*" ], "Resource": "acs:sae:cn-shanghai:*:*", "Effect": "Allow" }, { "Action": [ "sae:*" ], "Resource": [ "acs:sae:cn-shanghai:*:application/test/0c815215-46a1-46a2-ba1e-0102a740****", "acs:sae:cn-shanghai:*:application/_default/e468a92b-1529-4d20-8ab1-9d1595dc****" ], "Effect": "Allow" } ] }
- 场景三:与SAE相关联云产品授权
由于业务需要,应用在SAE运行时会调用类似ECS、SLB、ARMS等其他云产品的业务接口,因此RAM授权时应对相关产品的权限进行配置。例如添加只读访问ECS的权限(AliyunECSReadOnlyAccess)、只读访问SLB的权限(AliyunSLBReadOnlyAccess)和只读访问ARMS的权限(AliyunARMSReadOnlyAccess)。