应用性能监控(APM)提供了完善了权限管理机制,您可以通过访问管理(CAM)灵活的配置访问权限,详情请参见 APM 访问管理。APM 默认创建了预设策略 QcloudAPMFullAccess(全读写访问权限)和 QcloudAPMReadOnlyFullAccess(只读访问权限),如果您希望针对 APM 进行粗粒度的权限管理,可以参见 策略授予,对子用户授予 APM 的全读写访问权限或者只读访问权限。
另外一种典型的使用场景,是根据业务系统的粒度进行权限管理。例如您的账号下有两个业务系统,它们分别是 A 和 B,您希望某个子用户只能访问业务系统 A,不能访问业务系统 B。您可以参考本文提供的方式,快速实现业务系统级别的访问权限管理。
前置操作
在一个子用户访问 APM 业务系统时,涉及部分前置检查,例如获取该账号 APM 产品的版本信息。这些前置检查涉及的操作,不属于资源级别的操作,因此需要预先对子用户授权这些操作的权限。APM 默认创建了预设策略 QcloudAPMOperationalPrecondition (操作级接口前置条件),包含了所有的前置操作,您可以直接将此预设策略关联到子用户,降低配置复杂度。
1. 使用主账号或拥有 QcloudCamFullAccess 权限的子用户进入 访问控制 > 策略。
2. 通过搜索找到预设策略 QcloudAPMOperationalPrecondition,单击右侧的关联用户组/角色 。

3. 在弹出的对话框中,找到需要授予权限的用户/用户组/角色,选择后单击确定。

授予指定业务系统的访问权限
1. 您需要预先获取业务系统的 ID,可以前往 APM 控制台 > 资源管理 获取,业务系统 ID 带有 apm- 前缀,本文中以 apm-Y7o7aeOPA 为例。
2. 使用主账号或拥有 QcloudCamFullAccess 权限的子用户进入 访问控制 > 策略。
3. 单击新建自定义策略,按照如下两种场景创建自定义策略,并完成自定义策略与用户/用户组/角色的关联。
场景一:授予该业务系统的全读写访问权限
1. 在弹出的对话框中,选择按策略生成器创建。

2. 进入可视化编辑器,按照下图的提示选择服务和操作,在资源栏目中选择特定资源,单击 apm-instance 对应的添加资源六段式。在页面右侧滑出的窗口中,往资源栏目填入业务系统 ID,并单击确定。

您也可以单击 JSON 标签页,检查生成的策略是否如下图所示。

3. 单击下一步,为该自定义策略命名,并将其关联到指定的用户/用户组/角色。

场景二:授予该业务系统的只读访问权限
1. 在弹出的对话框中,选择按策略语法创建。

2. 选择空白模板,单击下一步。
3. 在策略内容中,填入以下 JSON。
注意:
在 resource 字段中,uin/ 后面的数字需要替换为您的主账号 ID,apm-instance/ 后面的内容要替换为您的目标业务系统 ID。
{"statement": [{"action": ["apm:*"],"condition": {"numeric_equal": {"qcs:read_only_action": 1}},"effect": "allow","resource": ["qcs::apm::uin/150000000:apm-instance/apm-Y7o7aeOPA"]}],"version": "2.0"}
4. 填写策略名称,并确认策略内容是否为下图所示,然后单击完成。

5. 自定义策略创建完成后,单击关联用户/用户组/角色,完成与目标用户的关联。
如何同时赋予多个业务系统的访问权限?
CAM 的策略语法支持灵活的配置,您可以在 JSON 内容的 resource 字段中,同时指定多个 APM 业务系统。
1. 进入前一步骤中创建的自定义策略,在策略语法中进入 JSON 模式,单击编辑图标。

2. 在 resource 字段中,基于策略语法加入更多的业务系统,然后单击保存。

除此之外,您也可以基于可视化策略生成器修改策略语法,达到同样的效果,本文不再赘述。