本文说明如何通过自定义 RAM 权限策略,允许 RAM 用户或角色访问、管理观测分组。
您可以通过 RAM 权限策略,按地域和观测分组控制访问范围。分组列表按调用者的详情查看权限返回结果;查询成员、修改、删除、关注和取消关注等操作需要分别授权。
授权流程与操作身份
授权流程:管理员创建自定义 RAM 策略 → 将策略授予 RAM 用户、用户组或角色 → 使用被授权身份验证权限。
由阿里云账号或具备 RAM 策略创建、授权权限的管理员操作。普通 RAM 用户需要联系管理员授权。
使用场景 | 授权对象 | 说明 |
人员访问控制台或调用 API | RAM 用户或 RAM 用户组 | 多人使用时可通过用户组统一管理 |
程序通过 STS 调用 API | 实际调用 API 的 RAM 角色 | 还需配置角色信任策略及调用方扮演权限 |
本文配置的是调用者访问观测分组的权限。云监控通过服务关联角色 AliyunServiceRoleForCloudMonitor 访问您的云资源时,需要单独完成服务关联角色授权。
控制台配置步骤
登录 RAM 控制台。
进入,创建自定义权限策略。
选择 JSON 编辑方式,粘贴本文中的策略模板,并替换地域、账号 UID 和 GroupId。
保存策略,例如命名为
ObserveGroupReadOnly。为目标 RAM 用户、用户组或角色添加该自定义策略。本文模板可使用账号级授权,由策略中的
Resource限定访问范围。使用被授权身份重新访问观测分组或调用 API,验证权限。
官方操作说明:
模板参数说明
参数 | 含义 | 示例 |
地域 | 观测分组所在地域,需要与 API 请求地域一致 |
|
| 资源所属阿里云账号 UID,不是 RAM 用户 ID | 替换为实际账号 UID |
| 需要授权的观测分组 ID | 替换为实际 GroupId |
模板中的占位符必须替换后再保存。观测分组的资源 ARN 格式为:
acs:cms:<地域>:<账号UID>:observegroup/<GroupId>该 ARN 不包含 WorkspaceId,不要写成 observegroup/<WorkspaceId>/<GroupId>。
策略模板
指定地域下全部观测分组只读权限
允许查询指定账号、指定地域下的观测分组列表、详情、成员,以及支持的资源类型。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"cms:ListObserveGroups",
"cms:GetObserveGroup",
"cms:ListObserveGroupSupportedEntityTypes",
"cms:ListObserveGroupInstances"
],
"Resource": "acs:cms:cn-hangzhou:<账号UID>:observegroup/*"
}
]
}指定地域下观测分组管理权限
允许查询、创建、修改、删除、关注和取消关注指定账号、指定地域下的观测分组。此模板是完整策略,可独立使用。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"cms:ListObserveGroups",
"cms:GetObserveGroup",
"cms:ListObserveGroupSupportedEntityTypes",
"cms:ListObserveGroupInstances",
"cms:UpdateObserveGroup",
"cms:DeleteObserveGroup",
"cms:FollowObserveGroup",
"cms:UnfollowObserveGroup"
],
"Resource": "acs:cms:cn-hangzhou:<账号UID>:observegroup/*"
},
{
"Effect": "Allow",
"Action": "cms:CreateObserveGroup",
"Resource": "acs:cms:cn-hangzhou:<账号UID>:*"
}
]
}只允许查看、修改指定分组
允许调用指定分组的详情和修改接口,不包含创建、删除、列表、成员查询或关注权限。只需要查看时,移除 cms:UpdateObserveGroup。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"cms:GetObserveGroup",
"cms:UpdateObserveGroup"
],
"Resource": "acs:cms:cn-hangzhou:<账号UID>:observegroup/<GroupId>"
}
]
}此模板适用于直接调用分组详情和修改 API。如需在控制台浏览分组列表或查看成员,还需添加相应权限,参见"在控制台浏览列表、查看成员和关注分组"。
Action 与资源授权范围
以下资源后缀均需加上 acs:cms:<地域>:<账号UID>: 前缀。
操作 | RAM Action | 资源后缀 |
查看分组详情 |
|
|
修改分组 |
|
|
删除分组 |
|
|
查询分组列表 |
|
|
查询支持的资源类型 |
|
|
查询分组成员 |
|
|
创建分组 |
|
|
关注分组 |
|
|
取消关注分组 |
|
|
使用限制
详情、修改、删除、成员查询、关注、取消关注接口均支持按 GroupId 指定资源。
ListObserveGroupInstances使用observegroup/<GroupId>资源鉴权,可将成员查询权限限定到指定分组。查询分组列表需要
cms:ListObserveGroups权限,资源范围为observegroup/*;列表仅返回调用者具有cms:GetObserveGroup权限的分组,返回总数和分页结果均以有权查看的分组为准。仅授予列表权限,不会获得所有分组的详情查看权限。资源 ARN 不包含 WorkspaceId。需要限制某个 Workspace 中的分组访问时,请在策略中列举对应的 GroupId;新增分组后需更新策略。
控制台页面可能使用多个 API。出现无权限错误时,请根据报错中的 Action 核对所需权限,并按实际使用范围授权。
实际场景:一个 Workspace,三个团队分别授权
场景与分工
假设同一阿里云账号在杭州地域有一个 Workspace ws-observe-prod,其中包含以下观测分组。账号 UID、WorkspaceId、GroupId 和 RAM 用户名均为示例,使用时替换为实际值。
Workspace | 团队 | 分组名称 | GroupId |
| 研发部 | 研发应用 |
|
| 研发部 | 研发测试 |
|
| 运维 | 基础设施 |
|
| 大模型 | 模型训练 |
|
| 大模型 | 模型推理 |
|
将人员按团队加入 RAM 用户组,为用户组绑定策略:
RAM 用户组 | 示例 RAM 子账号 | 策略名称 | 本例权限 |
|
|
| 查看、修改研发部的两个分组 |
|
|
| 查看、修改这五个分组并查询其成员;列表仅显示有权查看的分组 |
|
|
| 查看、修改大模型团队的两个分组 |
本例采用"业务团队维护自己的分组,运维跨团队维护"的分工。如果运维也应只维护自己的分组,可按"常见变体与人员调整"收缩权限。
本例通过列举 GroupId 限定各团队的分组访问范围。WorkspaceId 是查询条件,不是 RAM 资源授权边界。观测分组权限不包含关联 metrics、trace、日志等数据的查询权限;如需访问这些数据,请单独配置相应权限。
研发部:维护自己的两个分组
创建 ObserveGroupDevEditor 策略,绑定到 ObserveGroupDevelopers 用户组。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"cms:GetObserveGroup",
"cms:UpdateObserveGroup"
],
"Resource": [
"acs:cms:cn-hangzhou:<账号UID>:observegroup/og-dev-app",
"acs:cms:cn-hangzhou:<账号UID>:observegroup/og-dev-test"
]
}
]
}在没有其他策略授予额外权限时,dev-zhang 和 dev-li 可查看、修改研发分组,不能查看或修改运维、大模型分组的详情,也不能删除任何分组。本策略未授予列表和成员查询权限,如需浏览列表和查看成员,请按"在控制台浏览列表、查看成员和关注分组"补充权限。
大模型团队:维护训练和推理分组
创建 ObserveGroupLLMEditor 策略,绑定到 ObserveGroupLLM 用户组。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"cms:GetObserveGroup",
"cms:UpdateObserveGroup"
],
"Resource": [
"acs:cms:cn-hangzhou:<账号UID>:observegroup/og-llm-train",
"acs:cms:cn-hangzhou:<账号UID>:observegroup/og-llm-infer"
]
}
]
}在没有其他策略授予额外权限时,llm-chen 和 llm-zhao 可查看、修改训练和推理分组,不能查看或修改研发、运维分组的详情。本策略同样未授予列表和成员查询权限。
运维:跨团队维护指定分组
创建 ObserveGroupOpsMaintainer 策略,绑定到 ObserveGroupOperators 用户组。详情、修改和成员查询权限限定为本例五个分组,列表和支持的资源类型查询使用 observegroup/* 资源。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"cms:GetObserveGroup",
"cms:UpdateObserveGroup",
"cms:ListObserveGroupInstances"
],
"Resource": [
"acs:cms:cn-hangzhou:<账号UID>:observegroup/og-dev-app",
"acs:cms:cn-hangzhou:<账号UID>:observegroup/og-dev-test",
"acs:cms:cn-hangzhou:<账号UID>:observegroup/og-ops-infra",
"acs:cms:cn-hangzhou:<账号UID>:observegroup/og-llm-train",
"acs:cms:cn-hangzhou:<账号UID>:observegroup/og-llm-infer"
]
},
{
"Effect": "Allow",
"Action": [
"cms:ListObserveGroups",
"cms:ListObserveGroupSupportedEntityTypes"
],
"Resource": "acs:cms:cn-hangzhou:<账号UID>:observegroup/*"
}
]
}此策略允许查询上述五个分组的成员,分组列表仅返回这五个分组。未授予创建、删除、关注或取消关注权限。请求中的 WorkspaceId 用于筛选查询范围,不能替代资源 ARN 授权。
如果运维需要删除这五个分组,可在第一个 Statement 的 Action 中增加 cms:DeleteObserveGroup。如果需要创建分组,需另行授予 cms:CreateObserveGroup 和 acs:cms:cn-hangzhou:<账号UID>:*,不能用本例 ARN 将创建权限限定到 ws-observe-prod。
常见变体与人员调整
实际需求 | 配置方式 | 边界说明 |
运维只维护基础设施分组 | 将运维策略第一个 Statement 的 Resource 收缩为 | 成员查询、详情和修改权限使用相同的分组 ARN;列表查询使用 |
团队只查看,不允许修改 | 从对应团队策略中移除 | 只保留已列举分组的详情权限 |
某位研发兼任大模型维护 | 将该 RAM 用户同时加入研发与大模型用户组 | 两组 Allow 权限叠加;仍受显式 Deny 等限制 |
新增一个研发分组 | 将新 GroupId 的 ARN 加入研发策略;运维需维护时也加入运维策略 | 显式枚举不会自动包含新分组 |
人员调岗或离职 | 移出原用户组,并核查直接绑定策略、其他用户组及可扮演角色 | 避免其他授权路径保留权限 |
部门还要查询关联日志、metrics 或 trace | 单独配置相应产品的数据查询权限 | 观测分组权限不自动授予关联数据访问权限 |
在控制台浏览列表、查看成员和关注分组
研发和大模型团队的模板仅包含详情和修改权限。根据使用需求,在原策略中补充以下权限:
使用需求 | 添加的 Action | Resource 范围 |
浏览分组列表 |
|
|
查询支持的资源类型 |
|
|
查看分组成员 |
| 本部门具体分组的 ARN |
关注分组 |
| 本部门具体分组的 ARN |
取消关注分组 |
| 本部门具体分组的 ARN |
列表和支持的资源类型查询可单独放在一个 Statement 中。成员查询、关注和取消关注的 Action 可加入原策略中列举本部门 GroupId 的 Statement。查询列表时,仅返回具有 cms:GetObserveGroup 权限的分组。
例如,研发用户增加列表及成员查询权限后,可在列表中看到研发应用和研发测试两个分组,并查看其成员;访问运维或大模型分组的详情和成员时,请求被拒绝。"本例验收矩阵"对应补充权限前的原始模板。
本例验收矩阵
以下预期以本例策略为唯一相关 Allow 授权、没有其他额外权限且未受到显式 Deny 或其他权限限制为前提。
操作 | 研发子账号 | 运维子账号 | 大模型子账号 |
查看、修改 | 允许 | 允许 | 拒绝 |
查看、修改 | 拒绝 | 允许 | 拒绝 |
查看、修改 | 拒绝 | 允许 | 允许 |
查询分组列表 | 未授权 | 仅返回上述五个分组 | 未授权 |
查询分组成员 | 未授权 | 仅允许上述五个分组,其他 GroupId 拒绝 | 未授权 |
创建、删除、关注、取消关注分组 | 未授权 | 未授权 | 未授权 |
查看、修改后来新增的第六个分组 | 未授权 | 未授权 | 未授权 |
验证时,请使用其他部门的 GroupId 调用详情或成员查询接口,确认请求被拒绝;同时检查列表不返回未授权分组。运维账号还需验证未列举的 GroupId 无法访问。
权限验收
使用目标 RAM 用户或实际扮演的 RAM 角色验证,不能用管理员身份代替验收。
场景 | 验证内容 | 预期结果 |
只读策略 | 查询列表、详情、成员 | 授权范围内成功 |
只读策略 | 创建、修改、删除分组 | 在没有其他策略授予这些权限时被拒绝 |
管理策略 | 在测试分组上验证管理操作 | 授权范围内成功 |
单分组策略 | 查看、修改指定 GroupId | 成功 |
单分组策略 | 查看、修改其他 GroupId | 在没有其他策略授予这些权限时被拒绝 |
地域限制 | 访问未授权地域中的分组 | 在没有其他策略授予这些权限时被拒绝 |
验证拒绝场景时,需要检查该身份是否通过其他策略、用户组或角色获得了额外权限。
无权限排查
核对实际身份:确认请求使用的是目标 RAM 用户,或预期的 STS 角色。
核对失败的 Action:查看报错中的
AuthAction,确认策略包含对应权限。核对 Resource:检查地域、资源所属账号 UID、GroupId 和 ARN 格式。
核对策略绑定对象:使用 STS 时,确认权限授予了实际扮演的 RAM 角色。
检查显式 Deny 及其他权限限制:排除其他策略对请求的限制。
保留错误信息:若仍无法访问,请记录 API 名称、错误码和 RequestId,并提交工单寻求支持。请勿提交 AccessKey Secret 或 STS Token。