应用监控自定义RAM授权策略
如果系统权限策略不能满足您的要求,您可以创建自定义权限策略实现最小授权。使用自定义权限策略有助于实现权限的精细化管控,是提升资源访问安全的有效手段。本文介绍ARMS应用监控如何使用自定义权限策略。
什么是自定义权限策略
在基于RAM的访问控制体系中,自定义权限策略是指在系统权限策略之外,您可以自主创建、更新和删除的权限策略。自定义权限策略的版本更新需由您来维护。
创建自定义权限策略后,需为RAM用户、用户组或RAM角色绑定权限策略,这些RAM身份才能获得权限策略中指定的访问权限。
已创建的权限策略支持删除,但删除前需确保该策略未被引用。如果该权限策略已被引用,您需要在该权限策略的引用记录中移除授权。
自定义权限策略支持版本控制,您可以按照RAM规定的版本管理机制来管理您创建的自定义权限策略版本。
操作文档
前提条件
2022年04月01日0点之后开通ARMS的阿里云账号默认支持此功能,2022年04月01日0点之前开通ARMS的阿里云账号需要提交工单开通此功能。
在创建自定义授权策略时,您需要了解授权策略语言的基本结构和语法。更多信息,请参见权限策略基本元素。
已为RAM用户添加系统权限策略ReadOnlyAccess或AliyunARMSReadOnlyAccess,用于登录ARMS控制台。
重要为了实现对ARMS所有功能的只读权限,除了添加AliyunARMSReadOnlyAccess权限策略外,还需要为特定的资源组配置ReadTraceApp权限,否则ARMS将无法展示资源组鉴权下的应用列表。
请确认RAM用户没有添加系统权限策略AliyunARMSFullAccess。
背景信息
ARMS提供粗粒度的系统授权策略,如果这种粗粒度授权策略不能满足您的需要,那么您可以创建自定义授权策略。例如,您想控制RAM用户对某个具体应用的操作权限,您必须使用自定义授权策略才能满足这种细粒度要求。
步骤一:创建自定义权限策略
使用RAM管理员登录RAM控制台。
在左侧导航栏,选择。
在权限策略页面,单击创建权限策略。

在创建权限策略页面,单击脚本编辑页签。在策略文档中编写您的授权策略内容。
授权策略内容中各元素说明,请参见权限策略元素说明。
示例:杭州地域标签为
key0: value01或key0: value02应用的只读权限。{ "Version": "1", "Statement": [ { "Action": [ "arms:ReadTraceApp" ], "Resource": "acs:arms:cn-hangzhou:*:armsapp/*", "Effect": "Allow", "Condition": { "StringEquals": { "arms:tag/key0":[ "value01", "value02" ] } } } ] }单击页面上方的优化策略,然后单击执行,对权限策略内容进行高级优化。
高级权限策略优化功能会完成以下任务:
拆分不兼容操作的资源或条件。
收缩资源到更小范围。
去重或合并语句。
在创建权限策略页面,单击确定。
在创建权限策略对话框,输入策略名称和备注,然后单击确定。
步骤二:添加权限策略
为RAM用户添加权限策略
控制台
RAM控制台提供两种为RAM用户授权的操作入口。两者均支持单个或批量授权,请按操作习惯选择:
从用户页面发起:在用户列表中勾选目标用户后,授权面板会自动选定授权主体。适合“以用户为中心”的视角。
从授权页面发起:需手动选择授权主体,但可看到账号下所有授权记录的总览。适合“以权限为中心”的视角。
大规模批量管理建议:当需要为多名职责相同的 RAM 用户授予相同权限时,建议先将这些用户加入同一用户组,再为用户组授权(控制台路径:身份管理 > 用户组),比为每个用户单独授权更易维护。
从用户页面发起
登录RAM控制台
在左侧导航栏选择。
在用户页面,找到已经创建好的RAM用户,单击操作列的新增授权。
您也可以选中多个RAM用户,单击用户列表下方的新增授权,为多个RAM用户新增授权。
在新增授权面板,为RAM用户添加权限。
选择资源范围:
账号级别:权限在当前阿里云账号内全部资源生效。适用于通用、无需按资源组隔离的场景。
资源组级别:权限仅在指定资源组内生效。适用于多团队共用一个账号、需按资源组隔离权限的场景。如果RAM用户被授予了资源组级别的权限,该用户登录控制台后,必须在顶部导航栏将资源范围切换到被授权的资源组,才能正常访问和管理该资源组内的资源。
说明系统会自动标识出高风险系统策略(例如:AdministratorAccess、AliyunRAMFullAccess等),这些策略通常包含对所有云资源的完全控制权限或对访问控制(RAM)的完全管理权限等,请谨慎授予。
资源组授权示例,请参见使用资源组限制RAM用户管理指定的ECS实例。
选择授权主体:
授权主体即需要添加权限的RAM用户。如果是从用户页面发起,系统会自动选择当前的RAM用户。如果是从授权页面发起,需要手动选择RAM用户,支持批量选中多个。
选择权限策略:
系统策略:可以直接搜索并选择。搜索技巧:您可以利用搜索框快速定位策略。支持按产品名称(如
ECS、OSS)、权限级别(如ReadOnly、FullAccess)或完整的策略名称进行模糊搜索。自定义策略:需要先创建自定义权限策略后再来授权。
(可选)填写备注:建议填写授权原因或场景描述,便于后续审计回溯,例如"OSS 上传任务专项授权"。
提交授权:单击确认新增授权。
确认授权绑定操作结果,单击关闭。
从授权页面发起
登录RAM控制台
在左侧导航栏,选择。
在授权页面,单击新增授权。
在新增授权面板,为RAM用户添加权限。具体内容同上。
确认授权绑定操作结果,单击关闭。
OpenAPI
授予自定义策略
调用CreatePolicy创建一个自定义策略,可以参考权限策略基本元素和权限策略示例库概览。
调用AttachPolicyToUser为RAM用户授予账号级别的权限,注意此处
PolicyType选择Custom。或者调用AttachPolicy为RAM用户授予资源组级别的权限。
授予系统策略
直接调用AttachPolicyToUser将权限策略绑定至指定RAM用户,注意此处
PolicyType选择System,PolicyName详见 系统策略参考。或者调用AttachPolicy为RAM用户授予资源组级别的权限。
为RAM角色添加权限策略
为RAM角色添加权限策略后,您可以使用RAM角色登录ARMS控制台。具体操作,请参见扮演RAM角色。
权限策略元素说明
效果(Effect)
授权效果包括两种:允许(Allow)和拒绝(Deny)。
操作(Action)
Action | 权限说明 |
arms:ReadTraceApp | 应用监控只读权限,用于查看应用概览、接口调用、应用诊断等信息。 |
arms:EditTraceApp | 应用监控编辑权限,即应用自定义配置和设置自定义参数的权限。 |
arms:DeleteTraceApp | 应用监控删除权限,即删除应用的权限。 |
资源(Resource)
用于指定被授权的具体对象。
格式如下:
"Resource": [
"acs:arms:<regionid>:*:armsapp/<appname>"
]请将
<regionid>替换为指定地域ID。如果当前授权针对所有地域,可替换为*。请将
<appname>替换指定应用名称。如果当前授权针对所有应用,可替换为*;如果当前授权针对的应用名称拥有相同前缀,可替换为名称前缀*,例如k8s*。
条件(Condition)
条件块(Condition Block)由一个或多个条件子句构成。一个条件子句由条件操作类型、条件关键字和条件值组成。 
逻辑说明:
条件满足:一个条件关键字可以指定一个或多个值,在条件检查时,如果条件关键字的值与指定值中的某一个相同(OR),即可判定条件满足。
条件子句满足:同一条件操作类型的条件子句下,若有多个条件关键字,所有条件关键字必须同时满足(AND),才能判定该条件子句满足。
条件块满足:条件块下的所有条件子句同时满足(AND)的情况下,才能判定该条件块满足。
应用监控支持通过标签键值对指定被授权的对象。设置应用标签的操作,请参见标签管理。
标签键值对支持的条件操作类型:
StringEquals
StringNotEquals
StringEqualsIgnoreCase
StringNotEqualsIgnoreCase
StringLike
StringNotLike
条件关键字:arms:tag。
条件关键值:标签键值对。
示例:对标签键值对等于key0: value01或key0: value02的应用授权。
"Condition": {
"StringEquals": { //条件操作类型。
"arms:tag/key0":[ //条件关键字
"value01", //条件关键值
"value02"
]
}
}授权信息参考
使用自定义权限策略,您需要了解业务的权限管控需求,并了解ARMS的授权信息。详细内容请参见授权信息。