Elasticsearch API密钥认证失败求助:REST调用返回401错误
Elasticsearch API Key认证401错误解决方法
错误原因
你当前使用Bearer认证头传递API Key,但Elasticsearch的API Key认证不采用Bearer格式,服务端将其识别为无效的OAuth2令牌,因此触发401认证失败。
正确的API Key使用方式
生成API Key时会得到id和api_key两个字符串,需按以下方式传递:
方式1:使用ApiKey请求头
将id和api_key用冒号拼接(格式:{id}:{api_key}),对拼接后的字符串做Base64编码,然后在请求头中使用Authorization: ApiKey <编码结果>。
修正后的curl命令示例:
curl --location --request GET 'http://localhost:9200/_search' \ --header 'Authorization: ApiKey 你的Base64编码后的id:api_key字符串'
方式2:使用curl的--api-key参数(推荐)
curl 7.75.0及以上版本支持直接用--api-key参数传递API Key,无需手动编码:
curl --location --request GET 'http://localhost:9200/_search' \ --api-key 'id:api_key'
额外检查项
- 确认生成的API Key拥有
_search接口的访问权限(可在Kibana的API Key管理页面查看权限配置) - 检查API Key是否未被禁用、未过期
- 确认Elasticsearch集群的安全模块已正确启用,且允许API Key认证
内容的提问来源于stack exchange,提问作者riki
相关产品推荐
相关产品推荐

