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

系統會為每項要求產生專屬稽核 ID 值。例如 "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

要求來源和所有中繼 Proxy 的 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"