欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > K8S开启/关闭审计日志

K8S开启/关闭审计日志

2025/5/9 13:23:59 来源:https://blog.csdn.net/m0_53683186/article/details/145156774  浏览:    关键词:K8S开启/关闭审计日志

K8S默认禁用审计

在这里插入图片描述
在这里插入图片描述

开启/关闭 k8s 审计日志

默认 Kubernetes 集群不会输出审计日志信息。通过以下配置,可以开启 Kubernetes 的审计日志功能。

  1. 准备审计日志的 Policy 文件
  2. 配置 API 服务器,开启审计日志
  3. 重启并验证

准备审计日志 Policy 文件

apiVersion: audit.k8s.io/v1
kind: Policy
rules:
- level: MetadataomitStages:- RequestReceived- ResponseStartedresources:- group: ""resources: ["pods", "services", "deployments"]verbs: ["create", "update", "delete", "patch"]

将以上审计日志文件放到 /etc/kubernetes/audit-policy/ 文件夹下,并取名为 apiserver-audit-policy.yaml

配置 API 服务器

⚠️只有一个控制平面节点禁止操作,此操作会引起api-server重启,但一旦挂掉,就很难恢复,也就是说,一个控制平面节点不能开启审计,除非集群初始化就指定⚠️

打开 API 服务器的配置文件 kube-apiserver.yaml,一般会在 /etc/kubernetes/manifests/ 文件夹下,并添加以下配置信息:

这一步操作前请备份 kube-apiserver.yaml,并且备份的文件不能放在 /etc/kubernetes/manifests/ 下,建议放在 /etc/kubernetes/tmp

  1. spec.containers.command 下添加命令:

    --audit-log-maxage=30
    --audit-log-maxbackup=1
    --audit-log-maxsize=100
    --audit-log-path=/var/log/audit/kube-apiserver-audit.log
    --audit-policy-file=/etc/kubernetes/audit-policy/apiserver-audit-policy.yaml
    
  2. spec.containers.volumeMounts 下添加:

    - mountPath: /var/log/auditname: audit-logs
    - mountPath: /etc/kubernetes/audit-policyname: audit-policy
    
  3. spec.volumes 下添加:

    - hostPath:path: /var/log/kubernetes/audittype: ""name: audit-logs
    - hostPath:path: /etc/kubernetes/audit-policytype: ""name: audit-policy
    

测试并验证

稍等一会,API 服务器会自动重启,执行以下命令查看/var/log/kubernetes/audit 目录下是否有审计日志生成,若有,则表示 k8s 审计日志成功开启。

ls /var/log/kubernetes/audit

审计日志样例

{"kind":"Event","apiVersion":"audit.k8s.io/v1","level":"Metadata","auditID":"0d3e03f1-2c7b-4c55-a457-8153ca3053c7","stage":"ResponseComplete","requestURI":"/api/v1/namespaces/kube-system/pods","verb":"create","user":{"username":"system:node:test3","groups":["system:nodes","system:authenticated"],"extra":{"authentication.kubernetes.io/credential-id":["X509SHA256=f624d02c9b496b091c035973fdebaa49445bc661126811e9e3e0d5254f6a61b5"]}},"sourceIPs":["10.0.2.18"],"userAgent":"kubelet/v1.32.0 (linux/amd64) kubernetes/70d3cc9","objectRef":{"resource":"pods","namespace":"kube-system","name":"etcd-test3","uid":"37d309b452af10f21285eec4372382b6","apiVersion":"v1"},"responseStatus":{"metadata":{},"status":"Failure","message":"pods \"etcd-test3\" already exists","reason":"AlreadyExists","details":{"name":"etcd-test3","kind":"pods"},"code":409},"requestReceivedTimestamp":"2025-01-15T03:04:00.960498Z","stageTimestamp":"2025-01-15T03:04:01.014779Z","annotations":{"authorization.k8s.io/decision":"allow","authorization.k8s.io/reason":"","pod-security.kubernetes.io/enforce-policy":"privileged:latest"}}

如果想关闭,去掉 spec.containers.command 中的相关命令即可。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词