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集群容器运行日志收集

Kubernetes_16_静态Pod网关apiserver的audit审计日志

Kubernetes组件_APIServer_静态Pod网关apiserver的audit审计日志

弄明白Kubernetes的RBAC政策

Kubernetes访问控制之RBAC