Journaux d'audit Kubernetes

Kubernetes collecte et enregistre les journaux d'audit. L'audit Kubernetes fournit un ensemble d'enregistrements chronologiques pertinents pour la sécurité, qui documentent la séquence d'actions dans un cluster.

Représentation 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
}
Champs
kind

string

Type d'objet Kubernetes généré automatiquement en réponse aux modifications apportées à d'autres ressources. Par exemple : "Event"

apiVersion

string

Version du groupe d'API contenant l'objet référencé. Par exemple : "audit.k8s.io/v1"

level

string

Niveau d'audit auquel l'événement s'est produit. Par exemple : "Metadata"

auditID

string

Valeur d'identification unique de l'audit, générée pour chaque demande. Par exemple : "c5f48f91-d4da-4659-97eb-56bdbcd0817c"

stage

string

Étape du traitement de la requête lors de la génération de l'instance d'événement. Par exemple : "RequestReceived"

requestURI

string

URI de la requête que le client envoie à un serveur. Par exemple : "/apis/fleet.gpc.gke.io/v1/namespaces/gpc-system/fleets/root?fieldManager=kubectl-edit"

verb

string

Verbe Kubernetes associé à la requête. Pour les requêtes non liées à des ressources, cette valeur correspond à la méthode HTTP en minuscules.

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

user

object

Informations sur le nom d'utilisateur et les groupes de l'utilisateur authentifié. Par exemple,

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

sourceIPs

string array

Tableau des adresses IP d'où provient la requête et de tous les proxys intermédiaires. Les adresses IP sources sont présentées dans la liste ordonnée suivante :

  1. Adresses IP de l'en-tête de requête X-Forwarded-For
  2. En-tête X-Real-IP, s'il n'est pas présent dans la liste X-Forwarded-For
  3. Adresse distante de la connexion, si elle ne correspond pas à la dernière adresse IP de la liste jusqu'à présent

Toutes les adresses IP, à l'exception de la dernière, peuvent être définies de manière arbitraire par le client. Par exemple : ["10.200.0.3"]

userAgent

string

Chaîne de l'agent utilisateur signalée par le client. Par exemple : "kubectl/v1.19.4 (linux/amd64) kubernetes/d360454"

objectRef

object

Informations sur la référence d'objet ciblée par la requête. Par exemple,

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

requestReceivedTimestamp

string

Heure à laquelle la requête a atteint l'apiserver Kubernetes. Par exemple : "2022-05-05T05:38:57.155218Z"

stageTimestamp

string

Heure à laquelle la demande a atteint l'étape d'audit actuelle. Par exemple : "2022-05-05T05:38:57.155218Z"

hostname

string

Nom de l'hôte du journal d'audit. Par exemple : "audit-logs-forwarder-2k4d9"