Files
Logan.Li e0d652d211 feat: 完善堡垒机与 Agent 智能运维能力
- 支持 Windows Agent 构建、安装脚本和统一上报协议

- 增强 RDP 剪贴板、虚拟盘和文件传输能力

- 新增 AIOps 上下文工具、告警 RCA trace 落库和回放接口

- 重构 docs 模块文档并补充终端、堡垒机、监控、AI Agent 设计
2026-07-05 23:49:36 +08:00

5.9 KiB

安全审计与堡垒机设计说明

更新:2026-07-05 范围:操作审计、登录日志、SSH/RDP/Pod/kubectl 会话、录像回放、命令审计、会话策略、审批联动。 目标:把 AIOps 的终端、RDP、审计、策略和审批统一成“可用堡垒机 → 企业堡垒机”的工程体系。// Logan.Li


定位

安全审计与堡垒机模块解决三个问题:

  1. 谁在什么时间访问了什么资产。
  2. 会话里做了什么操作,是否可回放、可追责。
  3. 高风险操作是否被策略限制、确认或审批。

当前 AIOps 已具备 WebSSH、RDP、Pod exec、kubectl 终端、操作审计、会话录像、水印、剪贴板/文件策略等能力。后续要做的是把这些能力从“分散功能”统一成“协议无关的会话安全模型”。


能力矩阵

能力 当前状态 说明
操作审计 已完成 记录用户、模块、动作、资源、请求/响应、状态
登录日志 已完成 记录登录用户、IP、User-Agent、结果
SSH 会话审计 已完成 sys_terminal_sessions + asciicast 回放
SSH 命令审计 已完成 sys_session_commands 记录命令和输出大小
RDP 会话审计 已完成 sys_rdp_sessions + 图形帧录像
RDP 操作摘要 已完成 复制、粘贴、输入、上传、下载等写入命令审计
RDP 实时审计 已完成 /ws/rdp-audit/:sessionId 只读观看
会话水印 已完成 RDP/SSH 显示当前用户水印
会话策略 已完成 录像、剪贴板、上传、下载、审批预留
Pod/kubectl 审计 部分完成 终端可用,审计模型待独立统一
审批联动 待增强 高危命令、生产资产、AI 操作需接入审批

主要代码落点

层 文件 / 目录 说明
后端控制器 backend/controller/audit.go 操作审计查询、导出、统计
后端控制器 backend/controller/login_log.go 登录日志
后端控制器 backend/controller/terminal_session.go SSH 会话列表、详情、回放、终止
后端控制器 backend/controller/session_command.go 会话命令查询
后端控制器 backend/controller/rdp_session.go RDP 会话列表、录像、终止
后端控制器 backend/controller/audit_setting.go 审计与会话安全策略
后端控制器 backend/controller/audit_hub.go SSH 实时审计广播
后端模型 backend/model/audit.go 操作审计表
后端模型 backend/model/terminal_session.go SSH 会话表
后端模型 backend/model/rdp_session.go RDP 会话表
后端模型 backend/model/session_command.go 命令/操作摘要表
前端 API frontend/src/api/audit/ 审计、终端、RDP API
前端设置 frontend/src/api/system/audit-settings.ts 会话策略 API
前端组件 frontend/src/components/system/LiveMonitorDialog.tsx SSH 实时审计
前端组件 frontend/src/components/system/ReplayDialog.tsx SSH 回放
前端组件 frontend/src/components/system/RdpAuditViewer.tsx RDP 实时/历史查看

统一会话模型

建议逐步抽象出统一会话视图:

Session
  ├── id
  ├── type: ssh | rdp | pod | kubectl | workspace | ai-agent
  ├── user_id / username
  ├── target_type: server | pod | cluster | workspace
  ├── target_id / target_name / target_addr
  ├── status: active | closed | failed | killed
  ├── start_time / end_time / duration
  ├── record_type: asciicast | rdp_bitmap | none
  ├── record_size
  └── risk_level

当前 SSH 和 RDP 分表存储是合理的,因为录像格式不同;但审计页应提供统一查询聚合视图。// Logan.Li


会话策略

策略存储:sys_audit_settings

策略 影响
session_watermark_enabled RDP/SSH 显示用户水印
session_record_enabled 是否保存会话录像/录制
clipboard_enabled 是否允许 RDP 剪贴板
file_upload_enabled 是否允许 RDP 上传
file_download_enabled 是否允许 RDP 下载
command_policy_enabled 命令策略开关,后续用于 SSH/kubectl/AI 工具
approval_required 高危访问或操作是否需要审批

后端必须作为最终边界执行策略,前端只负责按钮禁用和提示。


审批联动建议

场景 建议
访问生产 RDP/SSH 可选审批或双人授权
RDP 文件下载 生产资产可触发审批
kubectl delete/scale/restart 强制二次确认或审批
Agent CLI 高危工具 计划确认 + 操作确认 + 审批
批量远程执行 必须审批
非工作时间变更 强制审批

与现有专题文档关系

专题 文档
字符终端实现 docs/terminal
RDP 实现 docs/rdp
AI Agent 安全 docs/ai-agent
资产和凭证 docs/asset-credential

演进路线

阶段 目标 关键任务
第一阶段 可用堡垒机 SSH/RDP 可访问、可回放、可审计、可禁用剪贴板和文件
第二阶段 企业堡垒机 统一会话中心、策略按用户/角色/资产/协议生效、高危审批
第三阶段 智能堡垒机 AI Agent 工具调用进入统一审计,成功流程沉淀为 Runbook

验收清单

  1. 操作审计能按用户、模块、动作、时间筛选。
  2. SSH 会话能实时查看和历史回放。
  3. RDP 会话能实时查看和历史回放。
  4. RDP 剪贴板、上传、下载策略关闭后前后端都生效。
  5. SSH/RDP 命令或操作能通过会话 ID 关联到回放。
  6. 登录日志能区分成功、失败、来源 IP。
  7. 高危策略开启后,生产资产操作不会绕过后端拦截。