应用监控自定义RAM授权策略

如果系统权限策略不能满足您的要求,您可以创建自定义权限策略实现最小授权。使用自定义权限策略有助于实现权限的精细化管控,是提升资源访问安全的有效手段。本文介绍ARMS应用监控如何使用自定义权限策略。

什么是自定义权限策略

在基于RAM的访问控制体系中,自定义权限策略是指在系统权限策略之外,您可以自主创建、更新和删除的权限策略。自定义权限策略的版本更新需由您来维护。

  • 创建自定义权限策略后,需为RAM用户、用户组或RAM角色绑定权限策略,这些RAM身份才能获得权限策略中指定的访问权限。

  • 已创建的权限策略支持删除,但删除前需确保该策略未被引用。如果该权限策略已被引用,您需要在该权限策略的引用记录中移除授权。

  • 自定义权限策略支持版本控制,您可以按照RAM规定的版本管理机制来管理您创建的自定义权限策略版本。

操作文档

前提条件

重要

202204010点之后开通ARMS的阿里云账号默认支持此功能,202204010点之前开通ARMS的阿里云账号需要提交工单开通此功能。

  • 在创建自定义授权策略时,您需要了解授权策略语言的基本结构和语法。更多信息,请参见权限策略基本元素

  • 已为RAM用户添加系统权限策略ReadOnlyAccessAliyunARMSReadOnlyAccess,用于登录ARMS控制台。

    重要

    为了实现对ARMS所有功能的只读权限,除了添加AliyunARMSReadOnlyAccess权限策略外,还需要再为特定的资源组配置ReadTraceApp权限,否则ARMS将无法展示资源组鉴权下的应用列表。

  • 请确认RAM用户没有添加系统权限策略AliyunARMSFullAccess。

背景信息

ARMS提供粗粒度的系统授权策略,如果这种粗粒度授权策略不能满足您的需要,那么您可以创建自定义授权策略。例如,您想控制RAM用户对某个具体应用的操作权限,您必须使用自定义授权策略才能满足这种细粒度要求。

步骤一:创建自定义权限策略

  1. 使用RAM管理员登录RAM控制台

  2. 在左侧导航栏,选择权限管理 > 权限策略

  3. 权限策略页面,单击创建权限策略

  4. 创建权限策略页面,单击脚本编辑页签。在策略文档中编写您的授权策略内容。

    授权策略内容中各元素说明,请参见权限策略元素说明

    示例:杭州地域标签为key0: value01key0: value02应用的只读权限。

    {
      "Version": "1",
      "Statement": [
        {
          "Action": [
            "arms:ReadTraceApp"
          ],
          "Resource": "acs:arms:cn-hangzhou:*:armsapp/*",
          "Effect": "Allow",
          "Condition": {
            "StringEquals": {
              "arms:tag/key0":[
                "value01",
                "value02"
              ]
            }
          }
        }
      ]
    }
  5. 编写完成后,单击继续编辑基本信息

  6. 输入权限策略名称备注

  7. 单击确定

步骤二:添加权限策略

RAM用户添加权限策略

  1. 使用RAM管理员登录RAM控制台

  2. 在左侧导航栏,选择身份管理 > 用户

  3. 用户页面,单击目标RAM用户操作列的添加权限

    image

    您也可以选中多个RAM用户,单击用户列表下方的添加权限,为RAM用户批量授权。

  4. 新增授权面板,为RAM用户添加权限。

    1. 选择资源范围。

    2. 选择授权主体。

      授权主体即需要添加权限的RAM用户。系统会自动选择当前的RAM用户。

    3. 选择权限策略。

      权限策略是一组访问权限的集合,分为以下两种。支持批量选中多条权限策略。

      • 系统策略:由阿里云创建,策略的版本更新由阿里云维护,用户只能使用不能修改。更多信息,请参见支持RAM的云服务

        说明

        系统会自动标识出高风险系统策略(例如:AdministratorAccess、AliyunRAMFullAccess等),授权时,尽量避免授予不必要的高风险权限策略。

      • 自定义策略:由用户管理,策略的版本更新由用户维护。用户可以自主创建、更新和删除自定义策略。更多信息,请参见创建自定义权限策略

    4. 单击确认新增授权

  5. 单击关闭

RAM角色添加权限策略

  1. 使用RAM管理员登录RAM控制台

  2. 在左侧导航栏,选择身份管理 > 角色

  3. 角色页面,单击目标RAM角色操作列的新增授权

    image

    您也可以选中多个RAM角色,单击角色列表下方的新增授权,为RAM角色批量授权。

  4. 新增授权面板,为RAM角色授权。

    1. 选择资源范围。

      • 账号级别:权限在当前阿里云账号内生效。

      • 资源组级别:权限在指定的资源组内生效。

        说明

        指定资源组授权生效的前提是该云服务及资源类型已支持资源组,详情请参见支持资源组的云服务

    2. 选择授权主体。

      授权主体即需要添加权限的RAM角色。系统会自动选择当前的RAM角色。

    3. 选择权限策略。

      权限策略是一组访问权限的集合。支持批量选中多条权限策略。

      • 系统策略:由阿里云创建,策略的版本更新由阿里云维护,用户只能使用不能修改。更多信息,请参见支持RAM的云服务

        说明

        系统会自动标识出高风险系统策略(例如:AdministratorAccess、AliyunRAMFullAccess等),授权时,尽量避免授予不必要的高风险权限策略。

      • 自定义策略:由用户管理,策略的版本更新由用户维护。用户可以自主创建、更新和删除自定义策略。更多信息,请参见创建自定义权限策略

    4. 单击确认新增授权

  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)由一个或多个条件子句构成。一个条件子句由条件操作类型、条件关键字和条件值组成。 条件块判断逻辑

逻辑说明:

  • 条件满足:一个条件关键字可以指定一个或多个值,在条件检查时,如果条件关键字的值与指定值中的某一个相同(OR),即可判定条件满足。

  • 条件子句满足:同一条件操作类型的条件子句下,若有多个条件关键字,所有条件关键字必须同时满足(AND),才能判定该条件子句满足。

  • 条件块满足:条件块下的所有条件子句同时满足(AND)的情况下,才能判定该条件块满足。

应用监控支持通过标签键值对指定被授权的对象。设置应用标签的操作,请参见标签管理

  • 标签键值对支持的条件操作类型:

    • StringEquals

    • StringNotEquals

    • StringEqualsIgnoreCase

    • StringNotEqualsIgnoreCase

    • StringLike

    • StringNotLike

  • 条件关键字:arms:tag。

  • 条件关键值:标签键值对。

示例:对标签键值对等于key0: value01key0: value02的应用授权。

"Condition": {
  "StringEquals": {       //条件操作类型。
    "arms:tag/key0":[      //条件关键字
      "value01",        //条件关键值
      "value02"
    ]
  }
}

授权信息参考

使用自定义权限策略,您需要了解业务的权限管控需求,并了解ARMS的授权信息。详细内容请参见授权信息