Kubernetes 审计功能提供了与安全相关的按时间顺序排列的记录集,记录单个用户、管理员或系统其他组件影响系统的活动顺序。 它能帮助集群管理员处理以下问题:
- 发生了什么?
- 什么时候发生的?
- 谁触发的?
- 为什么发生?
- 在哪观察到的?
- 它从哪触发的?
- 它将产生什么后果?
首先要启用 API Server 的审计功能。Kubernetes 提供了四个基础参数来定义审计功能:
- audit-log-path 启用审计日志,并将日志内容写入指定文件,“-” 代表 stdout。
- audit-log-maxage 日志文件的最大保存天数,根据文件名中的日期进行确定。
- audit-log-maxbackup 最多保存日志文件的数量。
- audit-log-maxsize 最大文件尺寸,超过尺寸会被翻转。单位是 MB,缺省为 100MB。
--audit-policy-file=/etc/kubernetes/cfg/apiserver-audit-policy.yaml
--audit-log-path=/etc/kubernetes/log/audit/audit.log
--audit-log-maxage=7
--audit-log-maxbackup=10
--audit-log-maxsize=100
审计阶段
及记录事件的时机,这里分为四种类型:
RequestReceived:一旦接收到请求即刻记录审计事件;
ResponseStarted:响应头发出,响应消息体未发出之前,一般适用于长连接或者耗时任务的场景;
ResponseComplete:响应消息体完成;
Panic:出现panic
审计级别
代表记录审计日志的完整程度,常见的也有四种:
None:不记录审计日志;
Metadata:记录请求的原子数据信息比如请求的user、method、时间、资源类型等,但不包括请求体和响应体;
Request:记录包括Metadata和请求体,但不包括响应体;
RequestResponse:记录包括Metadata、请求体、响应体;
网友评论