Skip to content

审计策略(Audit Policy)

审计策略(Audit Policy)由管理员配置,决定哪些操作记录审计日志、记到哪里去(数据库或文件)。

策略只在 Kuboard 生效:通过 Kuboard 界面或 Kuboard 接口执行的操作才受约束,对 kubectl 等原生 Kubernetes 管理工具不生效。查询与检索已记录的日志见 操作审计

进入审计策略页面

登录后进入 运维与可观测 → 审计策略。页面自上而下依次为:策略说明、两个记录开关(写数据库 / 写文件)、三类规则标签页(Kuboard / Cluster / Namespace)。同一份配置也可从 系统管理 → 系统设置 → 审计策略设置 页签打开,内容一致。

审计策略页全貌

规则如何生效

一次操作先按作用域归入对应规则列表(Kuboard / Cluster / Namespace),只在该列表中匹配:

  1. 列表内从上到下依次校验,第一个命中的规则生效,忽略后面所有规则。
  2. 命中后执行动作:记录(pass)不记录(block);没有任何规则命中时,默认记录(pass)

block 是「整条丢弃」

block 规则命中时,整条审计事件(含用户、客户端、资源信息)都被丢弃,不写数据库、不写文件

记录到哪里:开关与保留策略

配置项类型说明
将审计日志记录到数据库开关审计事件写入数据库(按月分表);开启后出现「审计日志保留时长」
审计日志保留时长数字保留最近 N 个月,默认 6;设为 0 表示不自动删除
将审计日志记录到文件开关写入容器内 /app/logs 目录;开启后出现下面两个长度参数
请求体最大长度数字仅作用于文件形式日志,限制请求体大小,范围 0–65535,默认 4096
响应体最大长度数字仅作用于文件形式日志,限制响应体大小,范围 0–65535,默认 4096

审计日志按月分表,保留时长 N 表示保留最近 N 个月(含当月),系统自动删除更早的数据;设为 0 则永不自动删除,请结合磁盘与合规要求评估 N。两个开关都关闭时,任何操作(包括 MCP 工具调用)都不会被记录,审计页面查不到数据——如需保留合规审计记录,至少开启其中一个。修改后点右下角 保存 立即生效。

审计规则:作用域与可配项

三类规则的区别在作用范围,其余字段一致:

规则类型作用范围典型用途
Kuboard 规则整个 Kuboard,不区分集群 / 命名空间全局策略,如「全局不记录读操作」
Cluster 规则指定的一个或多个集群按集群差异化,如「仅记录 prod 集群的写操作」
Namespace 规则指定集群下的指定命名空间精细到命名空间,如「不记录某命名空间的删除操作」

每条规则卡片的可配项(命中需作用域、apiGroup、resource、verbs 四层全部匹配,任一不匹配则跳过):

字段说明
action 动作记录(pass) / 不记录(block),二选一
verbs 动作类型多选 get / list / create / update / delete,对应 HTTP 的 GET / POST / PUT / PATCH / DELETE
apiGroup API 组规则 API 组,* 匹配全部
resource 资源作用资源类型(如 deployment、pod),仅 apiGroup 为具体组时可选;* 时自动匹配全部
clusters(仅 Cluster 规则)多选作用集群,支持 *
cluster / namespaces(仅 Namespace 规则)单选集群(支持 *)+ 多选命名空间(支持 *

展开的审计规则卡片

管理规则列表

  • 新增:在对应标签页点添加 Kuboard/Cluster/Namespace 审计规则,在新增卡片中填字段。新规则默认 apiGroup=*verbs=[list, get]action=block(Cluster 默认全部集群,Namespace 默认全部集群),即「不记录全部读操作」。
  • 编辑:直接修改卡片字段。
  • 删除:点卡片右上角删除按钮。
  • 排序:列表从上到下匹配,用上下箭头或直接拖拽调整顺序——顺序很重要。

导入与导出规则

规则支持以 JSON 文件整体导入导出,便于跨环境复用。导出:点导出规则,下载 kuboard-audit-rules-*.json导入:点导入规则选文件,已有规则时弹窗确认后整体替换三组规则。

json
{
  "kuboardRules": [
    { "action": "pass", "verbs": ["get", "list", "create", "update", "delete"], "apiGroup": "mcp.kuboard.cn", "resources": ["*"] },
    { "action": "block", "verbs": ["list", "get"], "apiGroup": "*", "resources": [] }
  ],
  "clusterRules": [
    { "action": "pass", "verbs": ["create", "update", "delete"], "apiGroup": "*", "resources": [], "clusters": ["prod"] }
  ],
  "namespaceRules": [
    { "action": "block", "verbs": ["delete"], "apiGroup": "*", "resources": [], "cluster": "prod", "namespaces": ["default"] }
  ]
}

导入是整组替换

导入不是合并,会整体替换现有三组规则,导入前请先导出备份。

MCP 工具调用

审计策略同样作用于 MCP 工具调用(API 组 mcp.kuboard.cn):block 命中时审计事件整条丢弃;上面两个写库 / 写文件开关同样生效,都关闭时 MCP 事件不会记录到任何位置。若 Kuboard 规则列表中没有 apiGroup=mcp.kuboard.cn 的规则,会出现警示,提示默认的「不记录 */[get,list]」规则会丢弃 MCP 只读事件——点击添加 MCP 保护规则,会在列表最顶部插入一条(见下),该规则先于其他规则匹配,保证 mcp.kuboard.cn 只读事件始终被记录;若之后手动删除,警示会再次出现。

json
{ "action": "pass", "verbs": ["get", "list", "create", "update", "delete"], "apiGroup": "mcp.kuboard.cn", "resources": ["*"] }