【发布时间】:2020-07-28 10:28:24
【问题描述】:
如果有人编辑了任何正在运行的服务的 yaml 或属性文件,那么我应该如何知道在该特定服务上使用了编辑命令的人员和时间。
kubectl edit deploy ServiceName -n NameSpace
【问题讨论】:
标签: kubernetes yaml edit kubectl
如果有人编辑了任何正在运行的服务的 yaml 或属性文件,那么我应该如何知道在该特定服务上使用了编辑命令的人员和时间。
kubectl edit deploy ServiceName -n NameSpace
【问题讨论】:
标签: kubernetes yaml edit kubectl
Kubernetes 审计日志应该告诉您这一点。Kubernetes 审计提供了一组与安全相关的按时间顺序排列的记录,记录了单个用户、管理员或系统其他组件影响系统的活动顺序。
已知的审计级别是:
无 - 不记录符合此规则的事件。
元数据 - 记录请求元数据(请求用户、时间戳、资源、动词等),但不记录请求或响应正文。
请求 - 记录事件元数据和请求正文,但不记录响应正文。这不适用于非资源请求。
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 一样使用 Fluentd 收集审核日志
https://kubernetes.io/docs/tasks/debug-application-cluster/audit/
【讨论】: