OpenSearch/ElasticSearch -仅使用通配符删除别名时出现授权错误

uubf1zoe  于 2023-01-08  发布在  ElasticSearch
关注(0)|答案(1)|浏览(255)

我尝试做一些相当简单的事情-我有一个别名,它可能与一个或多个索引关联,我想删除所有关联并添加一个单独的。下面是我所做的一个示例(如here中所建议的):

POST _aliases
{
  "actions": [
    {
      "remove": {
        "index": "*",          // or "index": "_all"
        "alias": "my_index"
      }
    },
    {
      "add": {
        "index": "my_index_2023_01_05_17_18_29",
        "alias": "my_index"
      }
    }
  ]
}

我使用的是管理员用户,但由于某种原因,我收到以下错误消息:

{
  "error" : {
    "root_cause" : [
      {
        "type" : "security_exception",
        "reason" : "no permissions for [] and User [name=admin, backend_roles=[], requestedTenant=]"
      }
    ],
    "type" : "security_exception",
    "reason" : "no permissions for [] and User [name=admin, backend_roles=[], requestedTenant=]"
  },
  "status" : 403
}

有点奇怪的消息-它没有指定失败的操作(no permissions for []),所以我不知道我错过了哪些权限...
无论哪种方式,如果我不使用通配符("index": "*"),而是使用"index": "my_index*",它就可以工作--这不是我想要的,但它会执行。
你知道为什么会这样吗?我该怎么解决?
谢谢!
(使用开放搜索2.3)

gjmwrych

gjmwrych1#

将index_pattern指定为**""时,系统索引也将包括在内。即使是管理员用户,默认情况下也无法更改系统索引的设置。可以使用“index_name""2022"等参数而不是"*"**来删除别名。例如:

POST _aliases
{
  "actions": [
    {
      "remove": {
        "index": "index_name*",
        "alias": "my_index"
      }
    }
  ]
}

相关问题