通过API向AWS Elasticsearch Kibana面板添加用户时401错误排查求助
401报错排查与解决指南
该返回{"Message":"Your request: '/_plugins/_security' is not allowed."}是OpenSearch安全插件的专属拦截响应,和常规凭证错误类401不同,属于访问路径/权限范围拦截,按以下步骤排查:
通用优先排查项
- 路径写错是该报错的最高发原因:
/_plugins/_security是OpenSearch生态的专属接口,如果你使用的是原生Elastic Stack(非OpenSearch衍生版),对应的安全接口路径为/_security,路径不匹配会直接触发该拦截。 - 确认集群已安装并启动OpenSearch安全插件,执行本地请求验证:
返回结果需存在curl -u 集群管理员账号:密码 -X GET https://集群节点地址:9200/_cat/plugins?v -kopensearch-security插件且状态为started,未启动的话修改config/opensearch.yml配置,将plugins.security.disabled设为false后重启集群。
场景1:持有all_access权限的Kibana面板发起请求报错
- 确认当前使用的面板为OpenSearch Dashboards,原生Kibana不支持OpenSearch专属的安全插件接口,请求会被默认拦截。
- 检查OpenSearch Dashboards配置文件
opensearch_dashboards.yml,确保安全插件已开启:opensearch_security.enabled: true - 检查当前登录用户的角色配置,确认
cluster_permissions包含security_all_access或cluster:admin/opendistro/security/*类集群级权限,若all_access角色做过自定义裁剪,需补充上述权限。
场景2:绑定all_access权限EC2实例发起请求报错
如果你使用的是AWS托管OpenSearch服务
- 检查OpenSearch域的访问策略,是否允许EC2绑定的IAM角色调用
es:ESHttpGet操作,且资源路径包含/_plugins/_security/*,默认访问策略通常仅放开索引读写路径,需手动补充安全接口的访问权限。 - 确认OpenSearch内部的角色映射配置已将EC2的IAM角色ARN关联到
all_access角色,可通过本地管理员请求查看角色映射:
若返回的curl -u 管理员账号:密码 -X GET https://集群地址/_plugins/_security/api/rolesmapping/all_access -kbackend_roles中没有对应IAM角色ARN,需调用接口补充映射。
如果你使用的是EC2自建OpenSearch集群
- 确认请求时已正确携带身份凭证,EC2绑定的IAM角色需要和OpenSearch内部的角色映射完成关联,仅给EC2绑定AWS IAM权限不会自动同步到OpenSearch的权限体系中。
- 检查集群的IP访问控制配置,是否放开了EC2节点的IP访问限制。
修复验证
修复完成后发起本地请求验证接口连通性:
curl -u 测试账号:密码 -X GET https://集群地址/_plugins/_security -k
正常返回安全插件相关配置即说明问题已解决。
内容的提问来源于stack exchange,提问作者Bhargav Mg
相关产品推荐
相关产品推荐

