Kubernetes 中的审计是一项记录向 API 服务器发出的请求的功能,提供了一种跟踪谁在何时访问了哪些资源的方法。这对安全性和合规性至关重要。


下面的示例展示了如何在 Kubernetes 中通过配置审计策略和使用适当的标记启动 API 服务器来启用审计。

【代码清单】

# Define an audit policy file (audit-policy.yaml)
apiVersion: audit.k8s.io/v1
kind: Policy
rules:
 - level: Metadata # Log metadata for all requests
 resources:
 - group: ""
  resources: ["pods"]
To start the API server with auditing enabled, you would add the following flags:
--audit-policy-file=/etc/kubernetes/audit-policy.--audit-log-path=/var/log/audit.log

【执行结果】

审计策略配置不会产生直接输出。不过,一旦 API 服务器运行并启用了审计,就可以通过查看指定的日志文件来检查审计日志:
cat /var/log/audit.log

在本示例中,我们创建了一个审计策略,用于记录与 pod 相关的所有请求的元数据。API 服务器被配置为使用该策略,并将日志写入 /var/log/audit.log。

审计对于了解 Kubernetes 集群内的操作至关重要,有助于识别潜在的安全问题或未经授权的访问。可以对审计日志进行分析,以确保符合组织政策和监管要求。

【小知识】

Kubernetes 审计可根据数据的敏感性和组织的需求,配置为记录不同级别的详细信息,包括元数据、请求体和响应体。

您可以使用各种工具分析审计日志,包括 ELK 堆栈(Elasticsearch、Logstash 和 Kibana),以实现更好的可视化和监控。

审计是 Kubernetes 安全最佳实践的关键组成部分,尤其是在生产环境中。