本文档为您介绍阿里云Elasticsearch(简称ES)的访问鉴权规则,包括通用权限策略和自定义权限策略,同时提供了授权示例供您参考。

通用权限策略

阿里云ES为常见访问需求的用户提供以下2种通用权限策略,您可以根据需求选择适合的权限。
  • AliyunElasticsearchReadOnlyAccess:只读访问ES的权限,可用于只读用户。
  • AliyunElasticsearchFullAccess:管理ES的权限,可用于管理员。
说明 如果以上2种通用权限策略无法满足您的需求,可参考下文的自定义权限策略自定义符合您需求的权限策略。
  1. 云账号登录RAM控制台
  2. 在左侧导航栏的权限管理菜单下,单击授权
  3. 单击新增授权
  4. 被授权主体区域下,输入目标授权主体名称后,单击需要授权的主体。
    说明 输入RAM用户、用户组或RAM角色名称可以进行模糊搜索。
  5. 在左侧权限策略名称列表下,单击需要授予目标主体的权限策略。
    说明 在右侧区域框,选择某条策略并单击×,可撤销该策略。
  6. 单击确定
  7. 单击完成

自定义权限策略

  1. 云账号登录RAM控制台
  2. 在左侧导航栏的权限管理菜单下,单击权限策略管理
  3. 单击新建权限策略
  4. 填写策略名称备注
  5. 配置模式选择脚本配置
  6. 策略内容区域可以选择并导入已有系统策略后进行适当修改。
    {
        "Statement": [
            {
                "Effect": "Allow",
                "Action": "",
                "Resource": ""
            }
        ],
        "Version": "1"
    }
    说明 在搜索框输入关键字可以进行模糊搜索。
    根据需求输入具体的权限脚本。
    • 访问主用户VPC权限。
      [“vpc:DescribeVSwitch*”,“vpc:DescribeVpc*”] 
      说明 可参考系统模板AliyunVPCReadOnlyAccess
    • 子用户订单权限。
      [“bss:PayOrder”] 
      说明 可参考系统模板AliyunBSSOrderAccess
    • API对应权限。
      Method URI Resource Action
      GET /instances instances/* ListInstance
      POST /instances instances/* CreateInstance
      GET /instances/$instanceId instances/$instanceId DescribeInstance
      DELETE /instances/$instanceId instances/$instanceId DeleteInstance
      POST /instances/$instanceId/actions/restart instances/$instanceId RestartInstance
      PUT /instances/$instanceId instances/$instanceId UpdateInstance
  7. 单击确定

授权示例一

以下示例给accountId1234的主账号下的某个子账号,赋予华东1所有实例在控制台中除了创建实例权限之外的所有操作权限,同时限制只能指定的IP才能访问。

创建策略脚本如下。

{
  "Statement": [
    {
      "Action": [
        "elasticsearch:ListInstance",
        "elasticsearch:DescribeInstance",
        "elasticsearch:DeleteInstance",
        "elasticsearch:RestartInstance",
        "elasticsearch:UpdateInstance"
      ],
      "Condition": {
        "IpAddress": {
          "acs:SourceIp": "xxx.xx.xxx.x/xx"
        }
      },
      "Effect": "Allow",
      "Resource": "acs:elasticsearch:cn-hangzhou:1234:instances/*"
    }
  ],
  "Version": "1"
}

参考为RAM角色授权,将当前策略授权给您指定的子账号。

注意 授权策略在主账号控制台中创建后,需再通过主账号在RAM控制台中对子账号授权,或通过RAM SDK对子账号授权才能生效。

授权示例二

以下示例给accountId1234的主账号下的某个子账号,赋予华东1指定实例在控制台中除了创建实例权限之外的所有操作权限,同时限制只能指定的IP才能访问。

创建策略脚本如下。

{
  "Statement": [
    {
      "Action": [
        "elasticsearch:ListInstance"
      ],
      "Condition": {
        "IpAddress": {
          "acs:SourceIp": "xxx.xx.xxx.x/xx"
        }
      },
      "Effect": "Allow",
      "Resource": "acs:elasticsearch:cn-hangzhou:1234:instances/*"
    },
    {
      "Action": [
        "elasticsearch:DescribeInstance",
        "elasticsearch:DeleteInstance",
        "elasticsearch:RestartInstance",
        "elasticsearch:UpdateInstance"
      ],
      "Condition": {
        "IpAddress": {
          "acs:SourceIp": "xxx.xx.xxx.x/xx"
        }
      },
      "Effect": "Allow",
      "Resource": "acs:elasticsearch:cn-hangzhou:1234:instances/$instanceId"
    }
  ],
  "Version": "1"
}

参考为RAM角色授权,将当前策略授权给您指定的子账号。

注意 授权策略在主账号控制台中创建后,需再通过主账号在RAM控制台中对子账号授权,或通过RAM SDK对子账号授权才能生效。

授权示例三

以下示例给accountId1234的主账号下的某个子账号,赋予所有区域下的阿里云Elasticsearch实例,在控制台中拥有所有操作权限。

创建策略脚本如下。

{
  "Statement": [
    {
      "Action": [
          "elasticsearch:*"
            ],
      "Effect": "Allow",
      "Resource": "acs:elasticsearch:*:1234:instances/*"
    }
  ],
  "Version": "1"
}

参考为RAM角色授权,将当前策略授权给您指定的子账号。

注意 授权策略在主账号控制台中创建后,需再通过主账号在RAM控制台中对子账号授权,或通过RAM SDK对子账号授权才能生效。

授权示例四

以下示例给accountId1234的主账号下的某个子账号,赋予所有区域下的阿里云Elasticsearch实例,在控制台中除了创建实例和查看实例列表权限之外的所有操作权限。

创建策略脚本如下。

{
  "Statement": [
    {
      "Action": [
          "elasticsearch:DescribeInstance",
          "elasticsearch:DeleteInstance",
          "elasticsearch:UpdateInstance",
          "elasticsearch:RestartInstance"
            ],
      "Effect": "Allow",
      "Resource": "acs:elasticsearch:*:1234:instances/$instanceId"
    }
  ],
  "Version": "1"
}

参考为RAM角色授权,将当前策略授权给您指定的子账号。

注意 授权策略在主账号控制台中创建后,需再通过主账号在RAM控制台中对子账号授权,或通过RAM SDK对子账号授权才能生效。

常见问题

Q:为什么通过子账号在阿里云ES购买页找不到VPC?

A:如果您通过子账号在阿里云ES购买页找不到VPC,请参考查看RAM用户基本信息,检查是否为对应子账号授予了VPC访问权限。如果没有授权,请参考上文的自定义权限策略,为子账户进行授权。