06监控 日志记录和运行时安全
考试大纲
监控、日志记录和运行时安全:20%
- 在主机和容器级别执行系统调用进程和文件活动的行为分析,以检测恶意活动
- 检测物理基础架构,应用程序,网络,数据,用户和工作负载中的威胁
- 检测攻击的所有阶段,无论它发生在哪里,如何扩散
- 对环境中的不良行为者进行深入的分析调查和识别
- 确保容器在运行时不变
- 使用审计日志来监视访问
日志审计
题目描述:
-
在 cluster 中启用审计日志。为此,请启用日志后端,并确保:
-
日志存储在
/var/log/kubernetes/audit-logs.txt
- 日志文件能保留
10
天 - 最多保留
2
个旧审计日志文件 /etc/kubernetes/logpolicy/sample-policy.yaml
提供了基本策略。它仅指定不记录内容-
注意:基本策略位于 cluster 的 master 节点上
-
编辑和扩展基本策略以记录:
- RequestResponse 级别的
persistentvolumes
更改 - namespace
front-apps
中configmaps
更改的请求体 -
Metadata
级别的所有 namespace 中的ConfigMap
和Secret
的更改 -
此外,添加一个全方位的规则以在
Metadata
级别记录所有其他请求 -
注意:不要忘记应用修改后的策略
官方文档:
参考解答:
修改/etc/kubernetes/logpolicy/sample-policy.yaml
文件
apiVersion: audit.k8s.io/v1
kind: Policy
omitStages:
- "RequestReceived"
rules:
- level: RequestResponse
resources:
- group: ""
resources: ["persistentvolumes"]
- level: Metadata
resources:
- group: ""
resources: ["secrets", "configmaps"]
- level: Request
resources:
- group: ""
resources: ["configmaps"]
namespaces: ["front-apps"]
- level: Metadata
omitStages:
- "RequestReceived"
开启审计日志,修改/etc/kubernetes/manifests/kube-apiserver.yaml
# 添加以下配置
- --audit-policy-file=/etc/kubernetes/logpolicy/sample-policy.yaml
- --audit-log-path=/var/log/kubernetes/audit-logs.txt
- --audit-log-maxage=10
- --audit-log-maxbackup=2
# 检查一下是否挂载这两个配置文件,如果有挂载就不用管,如果未挂载则需要手动添加
volumeMounts:
- mountPath: /etc/kubernetes/logpolicy/sample-policy.yaml
name: audit
readOnly: true
- mountPath: /var/log/kubernetes/audit/
name: audit-log
readOnly: false
volumes:
- hostPath:
path: /etc/kubernetes/logpolicy/sample-policy.yaml
type: File
name: audit
- hostPath:
path: /var/log/kubernetes
type: DirectoryOrCreate
检查/var/log/kubernetes/audit/audit.log
日志文件是否有日志产生