审计 日志按照时间顺序记录了每个用户操作记录,并可以将日志存储在文件或 webhook。 【注意】会增加api-server内存消耗
为k8s管理员提供了:
- 发生了什么?
- 什么时候发生的?
- 谁触发的?
- 活动发生在哪个(些)对象上?
- 在哪观察到的?
- 它从哪触发的?
- 活动的后续处理行为是什么?
每个请求都可被记录其相关的阶段(stage)。已定义的阶段有:
RequestReceived
- 此阶段对应审计处理器接收到请求后, 并且在委托给其余处理器之前生成的事件。ResponseStarted
- 在响应消息的头部发送后,响应消息体发送前生成的事件。 只有长时间运行的请求(例如 watch)才会生成这个阶段。ResponseComplete
- 当响应消息体完成并且没有更多数据需要传输的时候。Panic
- 当 panic 发生时生成。
第一个匹配规则设置事件的审计级别(Audit Level)。 已定义的审计级别有:
None
- 符合这条规则的日志将不会记录。Metadata
- 记录请求的元数据(请求的用户、时间戳、资源、动词等等), 但是不记录请求或者响应的消息体。Request
- 记录事件的元数据和请求的消息体,但是不记录响应的消息体。 这不适用于非资源类型的请求。RequestResponse
- 记录事件的元数据,请求和响应的消息体。这不适用于非资源类型的请求。
你可以使用 --audit-policy-file
标志将包含策略的文件传递给 kube-apiserver
。 如果不设置该标志
--audit-policy-file=/etc/kubernetes/audit-policy.yaml \
--audit-log-path=/tmp/audit-log \
--audit-log-maxage=1 \
--audit-log-maxbackup=2
/etc/kubernetes/audit-policy.yaml
来源于审计 | Kubernetes