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.username、user.groups、verb、objectRef、responseStatus.code、sourceIPs 和 userAgent。使用 auditID 可关联同一请求的多个阶段。
保障日志链路
- 审计存储与业务管理员权限适当隔离
- 传输加密并验证接收端身份
- 监控 webhook 缓冲、丢弃和写入失败
- 时间同步并使用不可篡改的长期归档
收尾清单
定期演练查询 Secret 访问、exec、权限提升和资源删除。策略变更后测量事件量与敏感字段,确认没有因降噪留下审计空白。