用户与角色
在启用 X-Pack 安全功能的 Elasticsearch 中,用户与角色是访问控制的核心。通过角色授予权限,用户继承角色,实现灵活的权限管理体系。
1. 启用用户认证
确保在 elasticsearch.yml 中启用安全功能(默认 7.1+ 开启):
xpack.security.enabled: true
`
启动后,将强制所有请求进行身份认证。
2. 内置用户与角色
Elasticsearch 提供多个内置用户和角色,常见如:
| 用户名 | 说明 |
|---|---|
elastic |
超级管理员(初始默认密码) |
kibana |
Kibana 服务账户 |
logstash_system |
Logstash 服务账户 |
内置角色如:
| 角色名 | 权限说明 |
|---|---|
superuser |
拥有所有权限 |
kibana_user |
可使用 Kibana 的基本功能 |
monitoring_user |
只读权限查看监控信息 |
3. 创建用户与角色
创建角色(使用 API)
PUT /_security/role/data_reader
{
"cluster": ["monitor"],
"indices": [
{
"names": [ "logs-*" ],
"privileges": [ "read", "view_index_metadata" ]
}
]
}
创建用户并绑定角色
POST /_security/user/alice
{
"password" : "password123",
"roles" : [ "data_reader" ],
"full_name" : "Alice",
"email" : "[email protected]"
}
4. Kibana 界面管理用户与角色(推荐)
在 Kibana 中访问:
Stack Management → Security → Users / Roles
提供图形界面创建用户、设置密码、分配角色。
5. 权限粒度
角色支持以下粒度权限控制:
- 集群级权限:如
monitor,manage,manage_security - 索引级权限:如
read,write,create_index,view_index_metadata - 字段级安全:限制用户访问文档字段(需商业授权)
- 文档级安全:基于查询条件限制访问特定文档(需商业授权)
6. 常用命令示例
列出所有用户:
GET /_security/user
列出所有角色:
GET /_security/role
删除用户:
DELETE /_security/user/alice
7. 安全建议
- 修改默认内置账户密码并禁用不必要账户
- 使用 API Key 或服务账户代替明文密码传输
- 为不同功能组件(Kibana、Beats、Logstash)设置独立角色权限
- 定期审查用户列表和权限分配
通过合理配置用户与角色,可构建安全、可控、最小权限原则的 Elasticsearch 权限体系。
相关内容
- 定义与用途 本章介绍 Elasticsearch 的定义、核心功能与适用场景,帮助读者理解它为何成为现代搜索与日志分析的首选解决方案。
- 使用场景 本章总结 Elasticsearch 在全文搜索、日志分析、监控告警、推荐系统等领域的典型应用场景,助力理解其强大用途。
- 核心概念简介 本章概览 Elasticsearch 的核心构成,包括索引、文档、映射、节点、集群等关键概念,为后续使用和架构设计打下基础。
- 本地安装 本章介绍如何在本地环境中安装 Elasticsearch,适配 Windows、macOS 和 Linux 系统,便于开发测试与入门学习。
- Docker 安装 本章讲解如何通过 Docker 安装和运行 Elasticsearch,适合开发者快速搭建测试环境并集成至容器化工作流中。
- 与 Kibana 一起部署 本章介绍如何将 Elasticsearch 与 Kibana 一起部署,使用 Docker Compose 快速构建可视化分析平台,适合开发与测试环境使用。