自定义权限策略

如果Elasticsearch Serverless服务的系统策略无法满足您的业务需求,可以通过自定义权限策略实现精细化权限管理。本文提供了ES Serverless服务权限策略配置的脚本示例和授权资源列表。

背景信息

默认情况下,阿里云主账号和RAM用户均可以使用ES Serverless控制台或ES Serverless API操作本账号内创建的ES Serverless资源。

以下场景中,会涉及授权问题:

  • 刚创建的RAM用户没有权限操作阿里云主账号的资源。

  • 具有权限控制的ES Serverless资源。

  • 从其他阿里云服务访问ES Serverless资源或ES Serverless资源访问其他阿里云服务。

注意事项

自定义权限策略仅在账号级别生效,不会在资源组级别生效。如果您想对特定RAM用户仅显示控制台的特定资源,可以采用资源组授权的方式,具体操作,请参见通过资源组授权特定实例

ES Serverless权限脚本

您可以通过RAM访问控制或者调用RAM API CreatePolicy创建自定义权限策略。

ES Serverless权限策略的脚本示例。

  • AliyunElasticsearchServerlessReadOnlyAccess:只读访问阿里云ES Serverless服务的权限,用于只读用户。

  • {
      "Version": "1",
      "Statement": [
        {
          "Action": [
            "es-serverless:List*",
            "es-serverless:Describe*",
            "es-serverless:Get*"
          ],
          "Resource": "*",
          "Effect": "Allow"
        }
      ]
    }
  • AliyunElasticsearchServerlessFullAccess:管理阿里云ES Serverless服务的权限,拥有ES Serverless服务的所有操作权限,用于管理员。

  • {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "es-serverless:*",
          "Resource": "*"
        }
      ]
    }
  • 管控指定应用的权限。

    {
      "Statement": [
        {
          "Action": [
            "es-serverless:*"
          ],
          "Effect": "Allow",
          "Resource": "acs:es-serverless:*:<yourAccountId>:apps/{appName}"
        }
      ],
      "Version": "1"
    }
    • 关于ActionResource,请参见授权资源列表

    • Effect:是否允许RAM用户执行Action中设置的操作,取值包括Allow(允许)和Deny(拒绝)。

    • <yourAccountId>: 阿里云主账号ID。

    • {appName}:指定的应用名。

说明

创建自定义权限策略后,您可以通过RAM访问控制或者RAM SDK对RAM用户授权。具体操作,请参见为RAM用户授权

授权资源列表

  • 所有管控权限

    Action

    Resource

    Action描述

    es-serverless:*

    acs:es-serverless:<yourRegionId>:<yourAccountId>:apps/{appName}

    ES Serverless服务的所有管控API的权限。

    说明

    es-serverless:*不包括控制台外部依赖的权限,外部依赖的权限需要单独设置。

  • 管理应用

    Action

    Resource

    Action描述

    es-serverless:CreateApp

    acs:es-serverless:<yourRegionId>:<yourAccountId>:apps/*

    创建应用。

    es-serverless:ListApps

    获取应用列表。

    es-serverless:DeleteApp

    acs:es-serverless:<yourRegionId>:<yourAccountId>:apps/{appName}

    删除应用。

    es-serverless:UpdateApp

    更新应用。

    es-serverless:GetApp

    查询指定应用的详细信息。

    es-serverless:GetAppQuota

    查询指定应用的配额信息。

  • 监控数据

    Action

    Resource

    Action描述

    es-serverless:GetMonitorData

    acs:es-serverless:<yourRegionId>:<yourAccountId>:apps/{appName}

    查询应用监控数据。