应用监控自定义RAM授权策略
本文介绍如何通过自定义策略为RAM用户授权。
前提条件
2022年04月01日0点之后开通ARMS的阿里云账号默认支持此功能,2022年04月01日0点之前开通ARMS的阿里云账号需要联系钉钉服务号arms160804协助开通此功能。
在创建自定义授权策略时,您需要了解授权策略语言的基本结构和语法。更多信息,请参见权限策略基本元素。
已为RAM用户添加系统权限策略ReadOnlyAccess或AliyunARMSReadOnlyAccess,用于登录ARMS控制台。
请确认RAM用户没有添加系统权限策略AliyunARMSFullAccess。
背景信息
ARMS提供粗粒度的系统授权策略,如果这种粗粒度授权策略不能满足您的需要,那么您可以创建自定义授权策略。例如,您想控制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用户。
- 选择权限策略。说明 每次最多绑定5条策略,如需绑定更多策略,请分次操作。
- 选择授权应用范围。
- 单击确定。
- 单击完成。
为RAM角色添加权限策略
- 使用阿里云账号登录RAM控制台。
- 在左侧导航栏,选择 。
- 在角色页面,单击目标RAM角色操作列的添加权限。
- 在添加权限面板,为RAM角色添加权限。
- 选择授权范围。
- 整个云账号:权限在当前阿里云账号内生效。
- 指定资源组:权限在指定的资源组内生效。说明 指定资源组授权生效的前提是该云服务已支持资源组。更多信息,请参见支持资源组的云服务。
- 输入授权主体。授权主体即需要授权的RAM角色,系统会自动填入当前的RAM角色,您也可以添加其他RAM角色。
- 选择权限策略。说明 每次最多绑定5条策略,如需绑定更多策略,请分次操作。
- 选择授权范围。
- 单击确定。
- 单击完成。
为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)由一个或多个条件子句构成。一个条件子句由条件操作类型、条件关键字和条件值组成。
逻辑说明:
- 条件满足:一个条件关键字可以指定一个或多个值,在条件检查时,如果条件关键字的值与指定值中的某一个相同,即可判定条件满足。
- 条件子句满足:同一条件操作类型的条件子句下,若有多个条件关键字,所有条件关键字必须同时满足,才能判定该条件子句满足。
- 条件块满足:条件块下的所有条件子句同时满足的情况下,才能判定该条件块满足。
应用监控支持通过标签键值对指定被授权的对象。设置应用标签的操作,请参见标签管理。
标签键值对支持的条件操作类型:
StringEquals
StringNotEquals
StringEqualsIgnoreCase
StringNotEqualsIgnoreCase
StringLike
StringNotLike
条件关键字:arms:tag。
条件关键值:标签键值对。
示例:对标签键值对等于key0: value01
或key0: value02
的应用授权。
"Condition": {
"StringEquals": { //条件操作类型。
"arms:tag/key0":[ //条件关键字
"value01", //条件关键值
"value02"
]
}
}