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/v1alpha1/namespaces/gpc-system/fleets/root?fieldManager=kubectl-edit"

verb

string

与请求关联的 Kubernetes 动词。对于非资源请求,此值为小写的 HTTP 方法。例如 "patch"

user

object

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

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

sourceIPs

string array

发出请求的 IP 和所有中间代理的 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": "v1alpha1"
}

requestReceivedTimestamp

string

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

stageTimestamp

string

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

hostname

string

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