如何识别在Kubernetes中编辑过Yaml或属性文件的人?

问题描述 投票:0回答:1

如果某人具有任何正在运行的服务的yaml或属性文件,那么我应该如何知道谁以及何时在该特定服务上使用了edit命令。

kubectl编辑部署ServiceName -n NameSpace

kubernetes yaml edit kubectl cm
1个回答
1
投票

Kubernetes审核日志应该告诉您。Kubernetes审核提供了与安全性有关的按时间顺序排列的记录集,记录了影响单个用户,管理员或系统其他组件的系统的活动顺序。

已知的审计级别为:

  1. 无-不记录与此规则匹配的事件。

  2. 元数据-记录请求元数据(请求用户,时间戳,资源,动词等),但不记录请求或响应正文。

  3. Request-记录事件元数据和请求正文,但不记录响应正文。这不适用于非资源请求。

  4. RequestResponse-记录事件元数据,请求和响应主体。这不适用于非资源请求。

您可以编写如下的审核政策

apiVersion: audit.k8s.io/v1 # This is required.
kind: Policy
# Don't generate audit events for all requests in RequestReceived stage.
omitStages:
  - "RequestReceived"
rules:
  # Log deployment changes at RequestResponse level
  - level: RequestResponse
    resources:
    - group: "apps/v1"
      resources: ["deployments"]

您需要通过kube API Server的--audit-policy-file标志来应用它。

此外,您也可以像[guide中一样,流利地收集审核日志

https://kubernetes.io/docs/tasks/debug-application-cluster/audit/

© www.soinside.com 2019 - 2024. All rights reserved.