Kubernetes Audit Log:记录谁对集群做了什么

设计审计策略、阶段与保留链路,在控制数据量的同时覆盖高风险 API 操作。

文章目录 · 4 节

Kubernetes 审计日志记录请求主体、资源、动作和响应结果,是权限调查与事故取证的重要证据。策略过宽会产生巨大数据量,过窄则可能漏掉关键操作。

按风险设计级别

apiVersion: audit.k8s.io/v1
kind: Policy
rules:
  - level: Metadata
    resources:
      - group: ""
        resources: ["secrets"]
  - level: RequestResponse
    verbs: ["create", "update", "patch", "delete"]
    resources:
      - group: "rbac.authorization.k8s.io"
  - level: Metadata

Secret 通常只记录 Metadata,避免请求或响应正文泄露敏感值。RBAC 变更可记录更详细内容,但仍要控制访问和保留周期。

关注关键字段

检索 user.usernameuser.groupsverbobjectRefresponseStatus.codesourceIPsuserAgent。使用 auditID 可关联同一请求的多个阶段。

保障日志链路

  • 审计存储与业务管理员权限适当隔离
  • 传输加密并验证接收端身份
  • 监控 webhook 缓冲、丢弃和写入失败
  • 时间同步并使用不可篡改的长期归档

收尾清单

定期演练查询 Secret 访问、exec、权限提升和资源删除。策略变更后测量事件量与敏感字段,确认没有因降噪留下审计空白。