Kubernetes 审核日志

Kubernetes 会收集和记录审核日志。Kubernetes 审核功能提供了一组与安全相关的时间顺序记录,用于记录集群中的操作序列。

JSON 表示法

{
  "kind": string,
  "apiVersion": string,
  "level": string,
  "auditID": string,
  "stage": string,
  "requestURI": string,
  "verb": string,
  "user": {
    object
  },
  "sourceIPs": [
    string array
  ],
  "userAgent": string,
  "objectRef": {
    object
  },
  "requestReceivedTimestamp": string,
  "stageTimestamp": string,
  "hostname": string
}
字段
kind

string

Kubernetes 对象类型,该类型会自动生成以响应其他资源的变化。例如,"Event"

apiVersion

string

包含所引用对象的 API 组的版本。例如,"audit.k8s.io/v1"

level

string

发生事件时的审核级别。例如,"Metadata"

auditID

string

为每个请求生成的唯一审核标识值。例如,"c5f48f91-d4da-4659-97eb-56bdbcd0817c"

stage

string

生成事件实例时请求处理的阶段。例如,"RequestReceived"

requestURI

string

客户端向服务器发送的请求 URI。例如,"/apis/fleet.gpc.gke.io/v1/namespaces/gpc-system/fleets/root?fieldManager=kubectl-edit"

verb

string

与请求关联的 Kubernetes 动词。对于非资源请求,此值是小写的 HTTP 方法。

  • "verb": "create"
  • "verb": "delete"
  • "verb": "get"
  • "verb": "list"
  • "verb": "patch"
  • "verb": "update"
  • "verb": "watch"

user

object

有关经过身份验证的用户的用户名和群组的信息。例如,

{
  "username": "kubernetes-admin",
  "groups": [
    "system:masters",
    "system:authenticated"
  ]
}

sourceIPs

string array

请求来源的所有 IP 和所有中间代理的数组。来源 IP 按以下顺序显示:

  1. X-Forwarded-For 请求标头 IP
  2. X-Real-IP 标头(如果 X-Forwarded-For 列表中没有此标头)
  3. 连接的远程地址(如果与到目前为止列表中最后一个 IP 不匹配)

除了最后一个 IP 之外,所有 IP 都可以由客户端任意设置。例如,["10.200.0.3"]

userAgent

string

客户端报告的用户代理字符串。例如,"kubectl/v1.19.4 (linux/amd64) kubernetes/d360454"

objectRef

object

有关请求所针对的对象引用的信息。例如,

{
  "resource": "fleets",
  "namespace": "gpc-system",
  "name": "root",
  "apiGroup": "fleet.gpc.gke.io",
  "apiVersion": "v1"
}

requestReceivedTimestamp

string

请求到达 Kubernetes apiserver 的时间。例如,"2022-05-05T05:38:57.155218Z"

stageTimestamp

string

请求到达当前审核阶段的时间。例如,"2022-05-05T05:38:57.155218Z"

hostname

string

审核日志主机的名称。例如,"audit-logs-forwarder-2k4d9"