一、什么是审计
Kubernetes 审计(Auditing) 功能提供了与安全相关的、按时间顺序排列的记录集, 记录每个用户、使用 Kubernetes API 的应用以及控制面自身引发的活动
审计功能解决如下问题:
二、kubernetes审计基础概念
2.1 阶段stage
每个对API的请求,在不同的执行阶段会生成审计事件,审计事件根据特定的策略处理并写入后端
已定义如下阶段:
2.2 审计策略
审计策略定义了关于应记录哪些事件以及应包含哪些数据的规则
已定义的审计级别有:
官网审计策略样板:
2.3 审计后端
审计后端实现将审计事件导出到外部存储。kube-apiserver
默认提供两个后端:
Log后端配置参数:
注意:如果是kubeadm部署,kube-apiserver以Pod形式运行,需要通过挂载卷的形式:
volumes:
- name: audit
hostPath:
path: /etc/kubernetes/audit-policy.yaml
type: File
- name: audit-log
hostPath:
path: /var/log/kubernetes/audit/
type: DirectoryOrCreate
Webhook 后端:
Webhook 后端将审计事件发送到远程 Web AP
三、kubernetes添加审计功能
3.1 添加策略文件
参见2.2 审计策略配置模板
3.2 kube-apiserver服务添加audit功能
备注:详细资料,参见:审计 | Kubernetes