Registros de auditoría de Kubernetes

Kubernetes recopila y registra registros de auditoría. La auditoría de Kubernetes proporciona un conjunto de registros cronológicos y relevantes para la seguridad que documentan la secuencia de acciones en un clúster.

Representación 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
}
Campos
kind

string

Es el tipo de objeto de Kubernetes que se genera automáticamente en respuesta a los cambios con otros recursos. Por ejemplo, "Event".

apiVersion

string

Es la versión del grupo de API que contiene el objeto al que se hace referencia. Por ejemplo, "audit.k8s.io/v1".

level

string

Es el nivel de auditoría en el que ocurrió el evento. Por ejemplo, "Metadata".

auditID

string

Es el valor de identificación de auditoría único, generado para cada solicitud. Por ejemplo, "c5f48f91-d4da-4659-97eb-56bdbcd0817c".

stage

string

Es la etapa del control de solicitudes cuando se generó la instancia del evento. Por ejemplo, "RequestReceived".

requestURI

string

Es el URI de solicitud que el cliente envía a un servidor. Por ejemplo, "/apis/fleet.gpc.gke.io/v1/namespaces/gpc-system/fleets/root?fieldManager=kubectl-edit".

verb

string

Es el verbo de Kubernetes asociado a la solicitud. Para las solicitudes que no son de recursos, este valor es el método HTTP en minúscula.

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

user

object

Información sobre el nombre de usuario y los grupos del usuario autenticado. Por ejemplo,

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

sourceIPs

string array

Es un array de IPs desde donde se originó la solicitud y todos los proxies intermedios. Las IPs de origen se presentan en la siguiente lista ordenada:

  1. IPs del encabezado de la solicitud X-Forwarded-For
  2. Encabezado X-Real-IP, si no está presente en la lista X-Forwarded-For
  3. La dirección remota de la conexión, si no coincide con la última IP de la lista hasta aquí

El cliente puede configurar todas las IPs, excepto la última, de forma arbitraria. Por ejemplo, ["10.200.0.3"].

userAgent

string

Es la cadena del agente de usuario que informa el cliente. Por ejemplo, "kubectl/v1.19.4 (linux/amd64) kubernetes/d360454".

objectRef

object

Información sobre la referencia del objeto al que se dirige la solicitud. Por ejemplo,

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

requestReceivedTimestamp

string

Es la hora en la que la solicitud llegó al apiserver de Kubernetes. Por ejemplo, "2022-05-05T05:38:57.155218Z".

stageTimestamp

string

Es la hora en la que la solicitud llegó a la etapa de auditoría actual. Por ejemplo, "2022-05-05T05:38:57.155218Z".

hostname

string

Es el nombre del host del registro de auditoría. Por ejemplo, "audit-logs-forwarder-2k4d9".