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 APIs 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 se produjo el evento. Por ejemplo, "Metadata"

auditID

string

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

stage

string

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

requestURI

string

Es el URI de la 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

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

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

user

object

Es la 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 solicitud X-Forwarded-For
  2. Encabezado X-Real-IP, si no está presente en la lista X-Forwarded-For
  3. Dirección remota de la conexión, si no coincide con la última IP de la lista hasta este punto

El cliente puede establecer 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

Es 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 fecha y hora en que la solicitud llegó al servidor de la API de Kubernetes. Por ejemplo, "2022-05-05T05:38:57.155218Z"

stageTimestamp

string

Es la fecha y hora en 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"