Kubernetes-Audit-Logs

Kubernetes erfasst und zeichnet Audit-Logs auf. Die Kubernetes-Prüfung bietet eine sicherheitsrelevante, chronologische Reihe von Datensätzen, die die Abfolge von Aktionen in einem Cluster dokumentieren.

JSON-Darstellung

{
  "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
}
Felder
kind

string

Der Kubernetes-Objekttyp, der automatisch als Reaktion auf Änderungen an anderen Ressourcen generiert wird. Beispiel: "Event"

apiVersion

string

Die Version der API-Gruppe, die das referenzierte Objekt enthält. Beispiel: "audit.k8s.io/v1"

level

string

Die Audit-Ebene, auf der das Ereignis aufgetreten ist. Beispiel: "Metadata"

auditID

string

Der eindeutige Prüfungs-ID-Wert, der für jede Anfrage generiert wird. Beispiel: "c5f48f91-d4da-4659-97eb-56bdbcd0817c"

stage

string

Die Phase der Anfragebearbeitung, in der die Ereignisinstanz generiert wurde. Beispiel: "RequestReceived"

requestURI

string

Der Anfrage-URI, den der Client an einen Server sendet. Beispiel: "/apis/fleet.gpc.gke.io/v1/namespaces/gpc-system/fleets/root?fieldManager=kubectl-edit"

verb

string

Das Kubernetes-Verb, das der Anfrage zugeordnet ist. Bei Anfragen ohne Ressourcen ist dieser Wert die HTTP-Methode in Kleinbuchstaben.

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

user

object

Informationen zum Nutzernamen und zu den Gruppen des authentifizierten Nutzers. Beispiel:

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

sourceIPs

string array

Array von IP-Adressen, von denen die Anfrage stammt, und allen zwischengeschalteten Proxys. Die Quell-IPs werden in der folgenden geordneten Liste dargestellt:

  1. IP-Adressen im X-Forwarded-For-Anfrageheader
  2. X-Real-IP-Header, falls nicht in der X-Forwarded-For-Liste vorhanden
  3. Die Remote-Adresse für die Verbindung, wenn sie nicht mit der letzten IP-Adresse in der Liste übereinstimmt

Alle IP-Adressen mit Ausnahme der letzten können vom Client beliebig festgelegt werden. Beispiel: ["10.200.0.3"]

userAgent

string

Der User-Agent-String, den der Client meldet. Beispiel: "kubectl/v1.19.4 (linux/amd64) kubernetes/d360454"

objectRef

object

Informationen zur Objektreferenz, auf die sich die Anfrage bezieht. Beispiel:

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

requestReceivedTimestamp

string

Der Zeitpunkt, zu dem die Anfrage den Kubernetes-API-Server erreicht hat. Beispiel: "2022-05-05T05:38:57.155218Z"

stageTimestamp

string

Der Zeitpunkt, zu dem die Anfrage die aktuelle Prüfungsphase erreicht hat. Beispiel: "2022-05-05T05:38:57.155218Z"

hostname

string

Der Name des Audit-Log-Hosts. Beispiel: "audit-logs-forwarder-2k4d9"