Kubernetes rbac 用户审计日志
Posted
技术标签:
【中文标题】Kubernetes rbac 用户审计日志【英文标题】:Kubernetes rbac users audit logging 【发布时间】:2021-10-04 18:52:04 【问题描述】:我正在尝试找到某种方法来记录每个用户的审计事件,即用户执行的 kubectl 命令以及用户通过登录集群中的任何 pod 运行的命令。这些日志可以推送到 elasticsearch 或任何其他类似的日志记录应用程序,以审计集群。
有人可以在这里帮助我吗,有什么工具可以帮助我做到这一点,或者有什么方法可以实现这个要求。
【问题讨论】:
【参考方案1】:审核记录在 kube-apiserver 组件中开始其生命周期。每个请求在其执行的每个阶段都会生成一个审计事件,然后根据一定的策略对其进行预处理并写入后端。该策略确定记录的内容,后端保留记录。现在,这个后端可以有两种类型:
-
WebHook 后端(将审核事件发送到远程 Web API)
日志后端(将事件发送到日志文件)
您需要将策略文件传递给您的 kubeapi-server,并为您的资源定义规则。因为,每个事件都会被审计,但是如果有策略,你只会得到你在策略 yaml 中指定为规则的那些。
更多信息可在 k8s 文档中找到:
https://kubernetes.io/docs/tasks/debug-application-cluster/audit/
【讨论】:
我遇到了这个审计 k8s api,只是好奇这也会记录在 pod 内执行的命令吗? 当然,这是一般性的。 Pod 通过服务(通常使用 kubernetes.default.svc 主机名)与 api 服务器通信,并且如链接中所述,审计日志在 api 服务器内开始其生命周期。 api 服务器从 pod 接收审计事件,然后根据我们为资源配置的策略对其进行审计。为了审计 Pod 内的事件,需要将 Pod 配置为规则之一中的资源。有关 pod 如何与 api 服务器通信的更多信息:kubernetes.io/docs/tasks/run-application/access-api-from-pod 太棒了!会试试这个。以上是关于Kubernetes rbac 用户审计日志的主要内容,如果未能解决你的问题,请参考以下文章
云原生 kubernetes - 基于角色的访问控制RBAC
Kubernetes_16_静态Pod网关apiserver的audit审计日志