Audit log di Kubernetes

Kubernetes raccoglie e registra gli audit log. Il controllo di Kubernetes fornisce un insieme di record cronologici 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 API che contiene l'oggetto a cui si fa 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 di identificazione univoco del controllo, generato per ogni richiesta. Ad esempio, "c5f48f91-d4da-4659-97eb-56bdbcd0817c"

stage

string

La fase di gestione delle richieste 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 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 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 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 di 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"