RAM访问控制

在协同使用资源的场景下,根据实际的职责权限情况,您可以创建多个RAM用户并为其授予不同的权限,实现不同RAM用户可以分权管理不同的资源,从而提高管理效率,降低信息泄露风险。本文介绍如何创建RAM用户并授予特定权限策略,从而控制对Prometheus实例的访问。

前提条件

  • 已开通应用实时监控服务 ARMS(Application Real-Time Monitoring Service)。具体操作,请参见开通ARMS

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

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

步骤一:为RAM用户添加系统权限策略

该步骤是为了让RAM用户具备登录Prometheus控制台的权限。

  1. 使用阿里云账号或RAM管理员登录RAM控制台
  2. 在左侧导航栏,选择身份管理 > 用户
  3. 用户页面,单击目标RAM用户操作列的添加权限

  4. 在弹出的添加权限页面,根据下表说明为RAM用户添加权限。

    image

    参数

    说明

    授权范围

    授权应用范围为整个云账号,权限在当前阿里云账号内生效。

    授权主体

    指定授权主体,即需要添加权限的RAM用户。

    选择权限

    选择系统策略AliyunARMSPrometheusAccessAuth

  5. 单击确定,然后单击完成

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

  1. 使用阿里云账号或RAM管理员登录RAM控制台
  2. 在左侧导航栏,选择权限管理,然后单击权限策略

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

  4. 创建权限策略页面,单击脚本编辑页签,在策略文档中编写您的授权策略内容,策略内容参考如下示例:华东1(杭州)地域资源类型为Prometheus实例的各操作权限。

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "arms:List*",
            "arms:Get*",
            "arms:Update*",
            "arms:Exe*",
            "arms:Create*",
            "arms:Del*",
            "arms:Add*",
            "arms:Check*",
            "arms:Delete*",
            "arms:Restart*",
            "arms:HealthCheck*",
            "arms:BindPrometheus*",
            "arms:install*"
          ],
          "Resource": "acs:arms:cn-hangzhou:*:prometheus/*"
        }
      ]
    }
  5. 编写完授权策略内容之后,单击继续编辑基本内容,然后输入权限策略名称备注,其中策略名称可以自行命名。

  6. 单击确定

步骤三:为RAM用户添加自定义权限策略

  1. 使用阿里云账号或RAM管理员登录RAM控制台
  2. 在左侧导航栏,选择身份管理 > 用户
  3. 用户页面,单击目标RAM用户操作列的添加权限

  4. 在弹出的添加权限页面,根据下表说明为RAM用户添加权限。

    参数

    说明

    授权范围

    授权应用范围为指定资源组,权限在指定的资源组内生效。

    授权主体

    指定授权主体,即需要添加权限的RAM用户。

    选择权限

    自定义策略下,您可以根据需要选择步骤二中自定义的权限策略

  5. 单击确定,然后单击完成

步骤四:权限验证

  1. RAM角色添加权限策略后,您可以使用RAM角色登录ARMS控制台验证。具体操作,请参见管理RAM用户登录设置

  2. 进入控制台后,选择Prometheus 监控,单击实例列表

  3. 实例列表页面,单击image查看被授权资源组的资源列表。

    image

    说明

    对于未授权的资源组,在查看时会提示没有权限,单击关闭即可。

    image

相关操作

  • 推荐使用资源组通过上述方式完成对Prometheus资源的精细粒度分权。

  • 如果您在实际使用过程中,同时需要通过标签来完成分权,可以修改步骤二的自定义策略,添加Condition来完成,如下权限策略所示为具备拥有owner:zaifeng标签的Prometheus实例的权限。

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "arms:List*",
            "arms:Get*",
            "arms:Update*",
            "arms:Exe*",
            "arms:Create*",
            "arms:Del*",
            "arms:Add*",
            "arms:Check*",
            "arms:Delete*",
            "arms:Restart*",
            "arms:HealthCheck*",
            "arms:BindPrometheus*",
            "arms:install*"
          ],
          "Resource": "acs:arms:*:*:prometheus/*",
          "Condition": {
            "StringEquals": {
              "acs:RequestTag/owner": [
                "zaifeng"
              ]
            }
          }
        }
      ]
    }
  • 如果您通过标签完成分权,在控制台的操作顺序如下:

  1. 在首次进入Prometheus实例列表时,会提示权限不足。

    说明

    原因是未选择具体的标签,鉴权不通过。

  2. 选择具体的标签后,便可以查看实例列表

    此处选择的标签需要和自定义权限策略中定义的标签匹配。

    image