阿里云ES普通服务角色

在插件、词典等上传场景中,如果您的原始文件在OSS中,您可以按照控制台引导使用提供OSS地址的方式完成文件的上传。该过程依赖普通服务角色,需要您授权阿里云Elasticsearch(简称ES)平台访问您提供的OSS路径的权限,从而加载您需要上传的文件。

ES普通服务角色介绍

说明

普通服务角色(Service Role)是一种可信实体为阿里云服务的RAM角色,旨在解决跨云服务的授权访问问题。更多信息,请参见RAM角色概览

在您根据控制台指引,使用提供OSS路径的方式更新词典时,如果不存在具有执行任务权限的角色,需要您主动授权,确认创建普通服务角色。ES通过扮演该角色访问您提供的OSS路径中的文件,更新ES实例中相应类型的词典,且无需您再将OSS Bucket的读权限修改为公共读,数据安全更有保障。

该角色的相关说明如下:

  • 授权服务名称:elasticsearch.aliyuncs.com

  • 角色名称:AliyunElasticsearchAccessingOSSRole

  • 角色权限策略名称:AliyunElasticsearchAccessingOSSRolePolicy

  • 角色权限策略内容

    {
      "Version": "1",
      "Statement": [
        {
          "Action": [
            "oss:GetObject",
            "oss:GetObjectMetadata",
            "oss:GetObjectMeta"
          ],
          "Resource": "*",
          "Effect": "Allow"
        }
      ]
    }

删除普通服务角色

普通服务角色您可以在RAM控制台手动删除。具体操作,请参见删除RAM角色

说明

删除普通服务角色后,依赖该角色的对应功能将无法正常使用,请谨慎删除。

服务角色权限收敛示例

普通服务角色的授权策略,还可进行二次干预和收敛。

  1. 设置Bucket标签

    利用Bucket标签来管理OSS存储空间的权限。更多信息,请参见管理存储空间标签

    1. 登录OSS管理控制台

    2. 单击Bucket 列表,然后单击目标Bucket名称。

    3. 在左侧导航栏,选择Bucket 配置 > Bucket 标签

    4. Bucket 标签页面,单击创建标签

    5. 设置Bucket标签

      image

  2. 新建RAM策略。具体操作,请参见通过脚本编辑模式创建自定义权限策略

    可限制Bucket(修改Resource),或者指定标签下的Bucket(修改Condition)访问。脚本示例如下:

    {
      "Version": "1",
      "Statement": [
        {
          "Action": [
            "oss:GetObject",
            "oss:GetObjectMetadata",
            "oss:GetObjectMeta"
          ],
          "Resource": [
            "acs:oss:*:193248xxxxxxx:*"
          ],
          "Effect": "Allow",
          "Condition": {
            "StingEquals": {
              "oss:BuckteTag/key1":"value1"
            }
          }
        }
      ]
    }
  3. 编辑 AliyunElasticsearchAccessingOSSRole 权限,新增上一步创建的自定义策略。

    image

常见问题

Q:使用UpdateDict、UpdateHotIkDicts、UpdateSynonymsDicts、UpdateAliwsDict等OpenAPI请求出现错误码ElasticsearchNoPermissionForCurrentBucket

A:云原生管控实例(如7.16、8.5、8.9等版本实例),仅支持通过阿里云普通服务角色授权实现读取OSS内的词典文件功能,不支持直接访问公共读的OSS地址,请及时进入授权页完成授权。影响的场景包括以OSS方式更新同义词、IK词典冷更新和热更新、aliws词库更新等。