如果某人具有任何正在运行的服务的yaml或属性文件,那么我应该如何知道谁以及何时在该特定服务上使用了edit命令。
kubectl编辑部署ServiceName -n NameSpace
Kubernetes审核日志应该告诉您。Kubernetes审核提供了与安全性有关的按时间顺序排列的记录集,记录了影响单个用户,管理员或系统其他组件的系统的活动顺序。
已知的审计级别为:
无-不记录与此规则匹配的事件。
元数据-记录请求元数据(请求用户,时间戳,资源,动词等),但不记录请求或响应正文。
Request-记录事件元数据和请求正文,但不记录响应正文。这不适用于非资源请求。
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/