Audit log di Kubernetes

Kubernetes raccoglie e registra gli audit log. Il controllo Kubernetes fornisce un insieme di record cronologici e pertinenti alla sicurezza che documentano la sequenza di azioni in un cluster.

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 apportate ad altre risorse. Ad esempio, "Event"

apiVersion

string

La versione del gruppo di API che contiene l'oggetto a cui viene fatto 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 dell'audit, 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 indirizzi IP da cui ha avuto origine la richiesta e tutti i proxy intermedi. Gli IP di origine sono presentati nel seguente elenco ordinato:

  1. Indirizzi 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 per la connessione, se non corrisponde all'ultimo IP nell'elenco fino a questo punto

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

userAgent

string

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

objectRef

object

Informazioni sul riferimento all'oggetto a cui è destinata la 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 attuale. Ad esempio, "2022-05-05T05:38:57.155218Z"

hostname

string

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