Kubernetes 監査ログ

Google Distributed Cloud(GDC)エアギャップの監査ログには、Kubernetes クラスタ全体でセキュリティに関連する API リクエストが時系列で記録されます。このドキュメントでは、公開されているアップストリーム仕様から JSON スキーマとフィールド定義を抽出します。Go のリファレンス全体については、監査パッケージの type Event をご覧ください。

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 の配列。送信元 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"