角色与权限
三档角色对应的 capability、每个功能所在的档位、ES 写回和数据接入需要的 Splunk 权限、登录沿用 Splunk。
App 没有自己的账号体系。用户以 Splunk 账号登录,App 按角色携带的 capability 决定可执行的操作。账号菜单只有偏好设置,密码在 Splunk 中修改。
角色
default/authorize.conf 定义三个 capability 和三个角色,逐级继承:
| 角色 | capability | 权限 |
|---|---|---|
rst_copilot_viewer | copilot_use | 提问、解读、查看所有页面。只写自己的数据(会话、反馈、偏好、常用查询) |
rst_copilot_analyst | 加 copilot_write | 分诊、调查、生成检测规则、生成报告、上传知识库、通知试发、写回 ES、创建工单、存为 Report |
rst_copilot_admin | 加 copilot_admin | AI 配置、系统设置、许可、通道与工单配置、规则部署、启停、删除、资产导入、应用改写、降噪、数据接入写入、MCP 令牌 |
Splunk 自带的 admin 和 sc_admin 拥有全部三个 capability。1.5.x 的旧角色 copilot_user 等价 analyst,下一个大版本删除。
角色分配在 Splunk 的 Settings 下的 Roles 与 Users 页,或 authorize.conf。没有任何 rst 角色的普通 user 能打开 App 但没有 copilot_use,所有 AI 请求返回 forbidden。
权限闸门
| 端点类型 | 闸门位置 |
|---|---|
| 纯管理端点(AI 配置、许可、部署、资产导入、告警源设置) | restmap.conf 要求 copilot_admin,请求到不了 handler |
| 混合端点(知识库、基线、通道、报告、分诊结果、数据接入、MCP) | handler 内按动作检查 capability。读开放,写按上表分档 |
搜索栏命令 | copilot、| splexplain 与 MCP 工具 | 同一套闸门。MCP 令牌绑定签发者的档位,不能签发高于自己的令牌 |
被拒绝的请求返回 {"code":"forbidden","params":{"capability":"copilot_write"}},界面上按钮显示原因,不隐藏。
功能需要的 Splunk 权限
App 以当前用户的会话执行搜索,用户在 Splunk 中不可见的索引,Copilot 同样不可见。以下功能另需:
| 功能 | 需要 |
|---|---|
| 实时告警、安全态势 | 对告警索引(默认 notable)的搜索权限 |
| 写回 ES notable | 已安装 Enterprise Security;用户有 notable_update 权限(ES 的 ess_analyst 及以上) |
| 检测规则部署、存为 Report 或 Alert | schedule_search;写入 search app 的 saved searches |
| 数据接入的写入 | 目标 app local/props.conf 的写权限(edit_props 或 admin) |
| SPL 性能顾问 | 对 _audit 索引的搜索权限(默认只有 admin) |
| 平台健康 | /services/server/health、licenser、kvstore/status 的读权限(默认只有 admin;普通用户看到的项标为 unknown) |
| 基线巡检 | CIM Endpoint 与 Change 数据模型的搜索权限 |
| 资产台账 | 有 ES 时读取 asset_lookup_by_str 与 identity_lookup_expanded;没有 ES 时用 CSV 导入 |
| 定时任务(基线、KB 同步、自动分诊、MCP) | 脚本输入以 splunk-system-user 运行。Splunk Free 许可没有该用户,定时任务无法获得会话 |
脱敏与出网的管理员固定项
| 项 | 作用 |
|---|---|
RST_MASKING_MODE 环境变量(写在 splunk-launch.conf) | 固定脱敏档位,界面不可修改 |
[limits] agentic_index_whitelist | 限制模型自主探查的索引范围 |
| 威胁情报、工单、通道、MCP 的出网开关 | 各自独立,默认关闭 |