You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Elasticsearch自定义Action报indices:admin/get/relation未授权错误如何解决

报错原因

X-Pack安全功能开启后,所有未在权限体系中注册的自定义Action都会被默认拦截,即使是elastic超级用户也没有这类未注册Action的访问权限。


解决方案

方法1:配置白名单(适用于ES 7.10及以上版本)

无需修改代码,直接在elasticsearch.yml中添加如下配置,将你的自定义Action加入权限放行列表即可:

xpack.security.authz.actions.allow_list: ["indices:admin/get/relation"]

修改配置后重启ES节点生效。

方法2:注册自定义权限(全版本通用,适合生产环境)

在你的ES插件主类中重写权限扩展方法,将自定义Action注册到ES权限体系中:

@Override
public List<PrivilegedAction> getAdditionalPermissions() {
    // NAME取值必须和自定义Action中定义的名称完全一致
    return Collections.singletonList(new PrivilegedAction(RelationAdminGetAction.NAME, ActionPrivilege.Type.ALLOWED));
}

如果需要精细化控制权限,可通过安全API给指定角色分配该Action的访问权限:

PUT _security/role/custom_relation_admin
{
  "indices": [
    {
      "names": ["*"],
      "privileges": ["manage"]
    }
  ],
  "actions": ["indices:admin/get/relation"]
}

将该角色绑定到相应用户后,调用POST _security/refresh刷新权限缓存即可生效。


注意事项

  • 需确认自定义Action的NAME属性值和报错信息中的Action名称完全一致,避免拼写错误导致校验不通过
  • 白名单配置方式简单快捷,适合测试场景;权限注册方式更符合ES安全规范,适合正式上线的插件使用

内容的提问来源于stack exchange,提问作者lanicc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 21:15:06