Audit log di Kubernetes

Gli audit log in Google Distributed Cloud (GDC) con air gap registrano una sequenza cronologica di richieste API relative alla sicurezza nei tuoi cluster Kubernetes. Questo documento estrae lo schema JSON e le definizioni dei campi dalla specifica upstream pubblica. Per il riferimento Go completo, consulta type Event del pacchetto di controllo.

Rappresentazione 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
}
Campi
kind

string

Il tipo di oggetto Kubernetes generato automaticamente in risposta alle modifiche di altre risorse. Ad esempio, "Event"

apiVersion

string

La versione del gruppo API che contiene l'oggetto di riferimento. Ad esempio, "audit.k8s.io/v1"

level

string

Il livello di controllo in cui si è verificato l'evento. Ad esempio, "Metadata"

auditID

string

Il valore univoco di identificazione del controllo, generato per ogni richiesta. Ad esempio, "c5f48f91-d4da-4659-97eb-56bdbcd0817c"

stage

string

La fase di gestione della richiesta in cui è stata generata l'istanza dell'evento. Ad esempio, "RequestReceived"

requestURI

string

L'URI della richiesta che il client invia a un server. Ad esempio, "/apis/fleet.gpc.gke.io/v1/namespaces/gpc-system/fleets/root?fieldManager=kubectl-edit"

verb

string

Il verbo Kubernetes associato alla richiesta. Per le richieste non di risorse, questo valore è il metodo HTTP in minuscolo.

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

object

Informazioni sul nome utente e sui gruppi dell'utente autenticato. Ad esempio,

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

string array

Array di IP da cui ha avuto origine la richiesta e tutti i proxy intermedi. Gli IP di origine sono presentati nel seguente elenco ordinato:

  1. IP dell'intestazione della richiesta X-Forwarded-For
  2. Intestazione X-Real-IP, se non presente nell'elenco X-Forwarded-For
  3. L'indirizzo remoto della connessione, se non corrisponde all'ultimo IP nell'elenco fino a questo punto

Tutti gli IP, tranne l'ultimo, possono essere impostati arbitrariamente dal client. Ad esempio, ["10.200.0.3"]

userAgent

string

La stringa dello user agent segnalata dal client. Ad esempio, "kubectl/v1.19.4 (linux/amd64) kubernetes/d360454"

objectRef

object

Informazioni sul riferimento all'oggetto scelto come target dalla richiesta. Ad esempio,

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

string

L'ora in cui la richiesta ha raggiunto l'apiserver Kubernetes. Ad esempio, "2022-05-05T05:38:57.155218Z"

stageTimestamp

string

L'ora in cui la richiesta ha raggiunto la fase di controllo corrente. Ad esempio, "2022-05-05T05:38:57.155218Z"

hostname

string

Il nome dell'host dell'audit log. Ad esempio, "audit-logs-forwarder-2k4d9"