Elasticsearch 7.15开启xpack认证时监控用户所需最小权限角色是什么
Elasticsearch 7.15 只读监控用户最小权限配置
内置monitoring_user角色是为Elastic Stack内部监控采集组件设计的,默认不包含原生集群状态、_cat类接口的访问权限,无法满足你的使用需求。
你需要创建自定义的最小权限角色,具体配置如下:
1. 自定义角色配置
该角色仅覆盖监控所需的只读权限,无任何配置修改、业务数据读写权限:
- 集群级别权限:
monitor,覆盖所有集群状态类接口的访问权限,包括_cluster/health、_cat/health、_cat/nodes等 - 索引级别权限:所有索引的
monitor权限,覆盖索引健康度、存储大小、文档数量等统计信息的读取权限,包括_cat/indices、_stats等接口
你可以通过以下curl命令创建该角色(替换命令中占位符为你实际的ES地址、管理员账号):
curl -X POST "http://<ES节点地址>:9200/_security/role/readonly_monitor" \ -H 'Content-Type: application/json' \ -u <具备安全管理权限的账号> \ -d '{ "cluster": ["monitor"], "indices": [ { "names": ["*"], "privileges": ["monitor"] } ] }'
2. 创建监控用户并绑定角色
角色创建完成后,执行以下命令创建监控用户,绑定上述readonly_monitor角色:
curl -X POST "http://<ES节点地址>:9200/_security/user/monitor_user" \ -H 'Content-Type: application/json' \ -u <具备安全管理权限的账号> \ -d '{ "password": "<自定义用户密码>", "roles": ["readonly_monitor"], "full_name": "只读监控专用账号" }'
3. 权限验证
创建完成后可以执行以下命令验证权限是否正常:
curl -u monitor_user:<你设置的密码> "http://<ES节点地址>:9200/_cluster/health"
返回正常的集群健康信息即为配置成功。
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

