各位 CSDN 的小伙伴们,大家好!博主正在参与 2025 年 CSDN 博客之星的评选活动,非常需要大家的支持!一直以来,博主专注于大数据、云计算、人工智能等融合方向研究,从基础概念到实战技巧,都精心撰写每一篇文章。博主致力于将复杂的技术知识以通俗易懂的方式呈现,帮助众多初学者快速入门,也为有经验的开发者提供新的思路与视角。在这个活动中,您的一票对我意义重大。您的支持 💖💖💖 将激励 🔥 博主输出更多优质内容!!!
投票链接 :https://www.csdn.net/blogstar2025/detail/112
OpenDistro/OpenSearch 内置系统角色分析
- 1.心角色分类
- 2.详细角色分析
-
- [2.1 Kibana 角色组](#2.1 Kibana 角色组)
- [2.2 告警系统角色组](#2.2 告警系统角色组)
- [2.3 数据访问角色组](#2.3 数据访问角色组)
- [2.4 管理角色组](#2.4 管理角色组)
- [2.5 快照与复制角色组](#2.5 快照与复制角色组)
- [2.6 机器学习角色组](#2.6 机器学习角色组)
- [2.7 工具插件角色组](#2.7 工具插件角色组)
- 3.重要字段说明
- 4.实际使用模式
-
- [4.1 定义映射示例](#4.1 定义映射示例)
- [4.2 多租户数据隔离](#4.2 多租户数据隔离)
- [4.3 团队权限分配](#4.3 团队权限分配)
- [5.与原生 Elasticsearch 的区别](#5.与原生 Elasticsearch 的区别)
- 6.安全最佳实践
1.心角色分类
| 类别 | 包含角色 | 特点 |
|---|---|---|
| Kibana 相关 | kibana_user、kibana_server、kibana_read_only |
管理 Kibana 访问权限 |
| 告警相关 | alerting_full_access、alerting_read_access、alerting_ack_alerts |
OpenDistro Alerting 插件权限 |
| 数据访问 | readall、readall_and_monitor、own_index |
数据读取和监控权限 |
| 系统管理 | all_access |
超级管理员权限 |
| 跨集群复制 | cross_cluster_replication_* |
跨集群数据复制 |
| 机器学习 | anomaly_full_access、anomaly_read_access |
异常检测权限 |
| 工具插件 | reports_*、notebooks_*、asynchronous_search_* |
报表、笔记本、异步搜索等 |
2.详细角色分析
2.1 Kibana 角色组

| 角色 | 权限说明 | 应用场景 |
|---|---|---|
kibana_user |
• 集群组合操作权限 • Kibana 相关索引读写(.kibana*) |
Kibana 普通用户,可以创建/保存仪表板、可视化 |
kibana_read_only |
• 只读权限 | 只查看 Kibana 内容的用户 |
kibana_server |
• 集群监控权限 • Kibana 索引管理 • 模板管理权限 | Kibana 服务器账户,用于 Kibana 服务自身运行 |
2.2 告警系统角色组

| 角色 | 权限说明 | 应用场景 |
|---|---|---|
alerting_full_access |
• 集群监控 • 所有告警管理操作 (cluster:admin/opendistro/alerting/*) • 所有索引访问 |
告警系统管理员,可以创建、修改、删除告警规则 |
alerting_read_access |
• 查看告警、监控器、目的地 | 告警查看者,只能查看告警状态 |
alerting_ack_alerts |
• 确认/处理告警(alerts/*) |
运维人员,可以确认和处理告警 |
2.3 数据访问角色组


| 角色 | 权限说明 | 应用场景 |
|---|---|---|
readall |
• 只读集群操作(cluster_composite_ops.ro) • 所有索引读取权限 |
数据分析师,需要读取所有数据但不需要写入 |
readall_and_monitor |
• 集群监控权限 • 只读集群操作 | 监控人员,需要读取数据和监控集群状态 |
own_index |
• 集群组合操作 • 只能访问与自己用户名相同的索引(${user_name}) |
多租户场景,每个用户有独立的索引空间 |
2.4 管理角色组


| 角色 | 权限说明 | 应用场景 |
|---|---|---|
all_access |
• 所有集群权限(*) • 所有索引权限(*) • 关联内部用户:admin |
系统超级管理员 |
security_rest_api_access |
安全 REST API 访问权限 | 安全管理员,管理用户和角色 |
2.5 快照与复制角色组


| 角色 | 权限说明 | 应用场景 |
|---|---|---|
manage_snapshots |
• 管理快照权限 • 所有索引权限 • 关联后端角色:snapshotrestore |
备份管理员,管理快照和恢复操作 |
cross_cluster_replication_leader/follower |
跨集群复制管理权限 | 跨集群数据同步管理员 |
2.6 机器学习角色组

| 角色 | 权限说明 | 应用场景 |
|---|---|---|
anomaly_full_access |
• 集群监控 • 所有异常检测操作(cluster:admin/opendistro/ad/*) • 所有索引访问 |
机器学习工程师,创建和管理异常检测作业 |
anomaly_read_access |
• 查看异常检测信息、搜索结果 | 业务分析人员,查看异常检测结果 |
2.7 工具插件角色组



| 角色 | 权限说明 | 应用场景 |
|---|---|---|
reports_*_access |
报表系统操作权限 | 报表生成和管理人员 |
notebooks_*_access |
笔记本操作权限 | 数据科学家,使用 Notebook 分析数据 |
asynchronous_search_*_access |
异步搜索操作权限 | 大数据量查询用户 |
3.重要字段说明

| 字段 | 说明 | 示例 |
|---|---|---|
Internal users |
自动分配该角色的内部用户 | own_index → *(所有用户) all_access → admin |
Backend roles |
来自外部系统的角色自动映射 | logstash → logstash(LDAP 组) manage_snapshots → snapshotrestore |
Tenants |
Kibana 多租户空间的访问权限 | Kibana Spaces 功能相关 |
Customization |
Reserved 表示系统保留,不可修改 |
所有内置角色都标记为 Reserved |
4.实际使用模式
4.1 定义映射示例
yaml
# Logstash 服务账户配置
logstash.yml:
xpack.security.authc:
roles_mapping:
logstash:
backend_roles: ["logstash"] # 自动获得 logstash 角色权限
4.2 多租户数据隔离
own_index角色实现:用户alice只能访问索引alice- 适合 SaaS 平台,每个客户有独立索引
4.3 团队权限分配
yaml
开发团队:
backend_roles: ["developers"]
映射到: readall_and_monitor + kibana_user
运维团队:
backend_roles: ["operations"]
映射到: alerting_full_access + manage_snapshots
5.与原生 Elasticsearch 的区别
| 特性 | OpenDistro/OpenSearch | 原生 Elasticsearch |
|---|---|---|
| 告警系统 | cluster:admin/opendistro/alerting/* |
cluster:monitor/elastic_alerting/* |
| 机器学习 | cluster:admin/opendistro/ad/* |
cluster:monitor/ml/* |
| 角色名称 | all_access(超级管理员) |
superuser |
| 插件集成 | 深度集成 OpenDistro 插件 | 模块化 X-Pack 插件 |
6.安全最佳实践
-
1️⃣ 避免直接使用
all_accessyaml错误: 所有操作都用 admin 账户 正确: 创建细分角色,如 data_engineer、monitoring_admin -
2️⃣ 利用后端角色映射
json// 将 LDAP 组映射到 OpenDistro 角色 PUT /_opendistro/_security/api/rolesmapping/logstash { "backend_roles": ["logstash-team"], "hosts": [], "users": [] } -
3️⃣ 定期审计角色使用
- 检查
Reserved角色是否被修改 - 监控异常权限使用
- 检查
这些内置角色为 OpenDistro/OpenSearch 提供了完整的安全框架,特别是针对其特有的插件功能进行了优化设计。