Información de registros de auditoría de GKE


En este documento, se describen los registros de auditoría que Google Kubernetes Engine crea como parte de los Registros de auditoría de Cloud.

Descripción general

Los servicios de Google Cloud escriben registros de auditoría para ayudarte a responder las preguntas “¿Quién hizo qué, dónde y cuándo?”. dentro de tus recursos de Google Cloud.

Los proyectos de Google Cloud contienen solo los registros de auditoría de los recursos que están de forma directa dentro del proyecto de Google Cloud. Otros recursos de Google Cloud, como las carpetas, organizaciones y cuentas de facturación, contienen los registros de auditoría correspondientes a la entidad.

Consulta Descripción general de los registros de auditoría de Cloud para obtener una descripción general de estos registros. Para comprender mejor el formato del registro de auditoría, consulta Información sobre los registros de auditoría.

Registros de auditoría disponibles

Los siguientes tipos de registros de auditoría están disponibles para GKE:

  • Registros de auditoría de actividad del administrador

    Incluye operaciones de “escritura de administrador” que escriben metadatos o información de configuración.

    No puedes inhabilitar los registros de auditoría de actividad del administrador.

  • Registros de auditoría de acceso a los datos

    Incluye operaciones de “lectura de administrador” que leen metadatos o información de configuración. También incluye las operaciones de “lectura de datos” y “escritura de datos” que leen o escriben datos proporcionados por el usuario.

    Para recibir registros de auditoría de acceso a los datos, debes habilitarlos de forma explícita.

Para obtener descripciones más completas de los tipos de registros de auditoría, consulta Tipos de registros de auditoría.

Operaciones auditadas

A continuación, se resume qué operaciones de la API corresponden a cada tipo de registro de auditoría en GKE:

Categoría de registros de auditoría Operaciones de GKE
Registros de auditoría de actividad del administrador io.k8s.authorization.rbac.v1
io.k8s.authorization.rbac.v1.roles

Formato de registro de auditoría

Las entradas del registro de auditoría incluyen los siguientes objetos:

  • La entrada de registro, que es un objeto de tipo LogEntry. Los campos útiles incluyen los siguientes:

    • El campo logName contiene el ID del recurso y el tipo de registro de auditoría.
    • El campo resource contiene el objetivo de la operación auditada.
    • El campo timeStamp contiene la hora de la operación auditada.
    • El campo protoPayload contiene la información auditada.
  • Los datos de registro de auditoría, que son un objeto AuditLog alojado en el campo protoPayload de la entrada de registro.

  • La información opcional de auditoría específica del servicio, que es un objeto específico del servicio. En las integraciones anteriores, este objeto se mantiene en el campo serviceData del objeto AuditLog. Las integraciones posteriores usan el campo metadata.

Para obtener información acerca de otros campos en estos objetos, además de cómo interpretarlos, consulta Información de los registros de auditoría.

Nombre del registro

Los nombres de Registros de auditoría de Cloud incluyen identificadores de recursos que indican el proyecto de Cloud o cualquier otra entidad de Google Cloud que posee los registros de auditoría y si el registro contiene datos de registro de auditoría de actividad de administrador, acceso a los datos, política denegada o eventos del sistema.

A continuación, se muestran los nombres de los registros de auditoría, incluidas las variables para los identificadores de recursos:

   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity
   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fdata_access
   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event
   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fpolicy

   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Factivity
   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fdata_access
   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fsystem_event
   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fpolicy

   billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Factivity
   billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Fdata_access
   billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event
   billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Fpolicy

   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Factivity
   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fdata_access
   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fsystem_event
   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fpolicy

Nombre del servicio

Los registros de auditoría de Kubernetes usan el nombre de servicio k8s.io.

El servicio k8s.io se usa para los registros de auditoría de Kubernetes. El componente del servidor de la API de Kubernetes genera estos registros, que contienen información sobre las acciones realizadas mediante la API de Kubernetes. Por ejemplo, el servicio k8s.io registra cualquier cambio que realices en un recurso de Kubernetes mediante el comando de kubectl. Las entradas de registro de auditoría de Kubernetes son útiles a fin de investigar solicitudes a la API sospechosas, recopilar estadísticas o crear alertas de supervisión para llamadas a la API no deseadas.

Para obtener una lista de los nombres de los servicios de la API de Cloud Logging y su tipo de recurso supervisado correspondiente, consulta Asigna servicios a recursos.

Tipos de recursos

Los registros de auditoría de Kubernetes usan el tipo de recurso k8s_cluster. Las entradas de registro escritas por el servidor de la API de Kubernetes se aplican al tipo de recurso k8s_cluster. En estas entradas de registro, se describen operaciones en los recursos de Kubernetes del clúster, por ejemplo, pods, implementaciones y secretos.

Para obtener una lista de todos los tipos de recursos supervisados de Cloud Logging y la información descriptiva, consulta Tipos de recursos supervisados.

Identidades de los emisores

La dirección IP del emisor se encuentra en el campo RequestMetadata.caller_ip del objeto AuditLog. Logging podría ocultar ciertas direcciones IP e identidades de emisores.

Para obtener información de la información que se oculta en los registros de auditoría, consulta Identidades de los emisores en los registros de auditoría.

Habilita el registro de auditoría

Los registros de auditoría de actividad del administrador siempre están habilitados; no puedes inhabilitarlos.

Los registros de auditoría de acceso a los datos están inhabilitados de forma predeterminada y no se escriben, a menos que se habiliten explícitamente (excepto los registros de auditoría de acceso a los datos de BigQuery, que no pueden inhabilitarse).

Si deseas obtener más información para habilitar algunos o todos tus registros de auditoría de acceso a los datos, consulta Configura registros de auditoría de acceso a los datos.

Permisos y roles

Los permisos y los roles de IAM determinan tu capacidad para acceder a los datos de registros de auditoría en los recursos de Google Cloud.

Cuando decidas qué roles y permisos específicos de Logging se aplican a tu caso de uso, considera lo siguiente:

  • El rol visor de registros (roles/logging.viewer) te otorga acceso de solo lectura a los registros de auditoría de la actividad del administrador, la política denegada y los eventos del sistema. Si solo tienes este rol, no podrás ver los registros de auditoría de acceso a los datos que se encuentren en el bucket _Default.

  • El visor de registros privados ((roles/logging.privateLogViewer) incluye los permisos que contiene roles/logging.viewer, además de la capacidad de leer registros de auditoría de acceso a los datos del bucket _Default.

    Ten en cuenta que si estos registros privados se almacenan en buckets definidos por el usuario, cualquier usuario que tenga permisos para leer registros en esos buckets puede leer los registros privados. Para obtener más información de los buckets de registros, consulta Descripción general del enrutamiento y el almacenamiento.

Para obtener más información de los permisos y los roles de IAM que se aplican a los datos de registros de auditoría, consulta Control de acceso con IAM.

Ver registros

Puedes consultar todos los registros de auditoría o puedes consultar los registros por su nombre de registro de auditoría. El nombre del registro de auditoría incluye el identificador de recursos del proyecto de Google Cloud, la carpeta, la cuenta de facturación o la organización cuya información de registro de auditoría deseas ver. Tus consultas pueden especificar los campos LogEntry indexados, y si usas la página Análisis de registros, que admite consultas de SQL, puedes visualizar los resultados de consultas con un gráfico.

Para obtener más información para consultar tus registros, consulta las siguientes páginas:

Puedes ver los registros de auditoría en Cloud Logging a través de la consola de Google Cloud, Google Cloud CLI o la API de Logging.

Console

En la consola de Google Cloud, puedes usar el Explorador de registros para recuperar las entradas de registro de auditoría de tu carpeta, organización o proyecto de Google Cloud:

  1. En la consola de Google Cloud, ve a la página Explorador de registros.

    Ir al Explorador de registros

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Logging.

  2. Selecciona una organización, una carpeta o un proyecto existente de Google Cloud.

  3. Para mostrar todos los registros de auditoría, ingresa cualquiera de las siguientes consultas en el campo de editor de consultas y, luego, haz clic en Ejecutar consulta:

    logName:"cloudaudit.googleapis.com"
    
    protoPayload."@type"="type.googleapis.com/google.cloud.audit.AuditLog"
    
  4. Para mostrar los registros de auditoría de un recurso específico y un tipo de registro de auditoría, en el panel Compilador de consultas, haz lo siguiente:

    • En Tipo de recurso, selecciona el recurso de Google Cloud cuyos registros de auditoría deseas ver.

    • En Nombre del registro, selecciona el tipo de registro de auditoría que deseas ver:

      • En el caso de los registros de auditoría de la actividad del administrador, selecciona activity.
      • En los registros de auditoría de acceso a los datos, selecciona data_access.
      • En el caso de los registros de auditoría de eventos del sistema, selecciona system_event.
      • En el caso de los registros de auditoría de política denegada, selecciona policy.
    • Haz clic en Ejecutar consulta.

    Si no ves estas opciones, significa que no hay registros de auditoría de ese tipo disponibles en la carpeta, la organización o el proyecto de Google Cloud.

    Si tienes problemas cuando intentas ver registros en el Explorador de registros, consulta la información acerca de la solución de problemas.

    Para obtener más información de las consultas con el Explorador de registros, visita Compila consultas en el Explorador de registros. Para obtener información acerca de cómo resumir las entradas de registro en el Explorador de registros a través de Gemini, consulta Resume entradas de registro con la asistencia de Gemini.

gcloud

Google Cloud CLI proporciona una interfaz de línea de comandos para la API de Logging. Proporciona un identificador de recurso válido en cada uno de los nombres de registro. Por ejemplo, si tu consulta incluye un PROJECT_ID, el identificador del proyecto que proporciones debe hacer referencia al proyecto de Google Cloud que se encuentra seleccionado.

Para leer las entradas de registro de auditoría a nivel de proyecto de Google Cloud, ejecuta el siguiente comando:

gcloud logging read "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com" \
    --project=PROJECT_ID

Para leer las entradas del registro de auditoría a nivel de las carpetas, ejecuta el siguiente comando:

gcloud logging read "logName : folders/FOLDER_ID/logs/cloudaudit.googleapis.com" \
    --folder=FOLDER_ID

Para leer las entradas del registro de auditoría a nivel de organización, ejecuta el siguiente comando:

gcloud logging read "logName : organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com" \
    --organization=ORGANIZATION_ID

Para leer las entradas del registro de auditoría a nivel de la cuenta de Facturación de Cloud, ejecuta el siguiente comando:

gcloud logging read "logName : billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com" \
    --billing-account=BILLING_ACCOUNT_ID

Agrega la marca --freshness a tu comando para leer los registros que tienen más de 1 día de antigüedad.

Para obtener más información del uso de gcloud CLI, consulta gcloud logging read.

API

Cuando compiles tus consultas, proporciona un identificador de recurso válido en cada uno de los nombres de registro. Por ejemplo, si tu consulta incluye un PROJECT_ID, el identificador del proyecto que proporciones debe hacer referencia al proyecto de Google Cloud que se encuentra seleccionado.

Por ejemplo, si quieres usar la API de Logging para ver las entradas del registro de auditoría a nivel de proyecto, haz lo siguiente:

  1. Ve a la sección Probar esta API en la documentación del método entries.list.

  2. Ingresa lo siguiente en el cuerpo de la solicitud del formulario Prueba esta API. Si haces clic en este formulario prepropagado, se completará el cuerpo de la solicitud de manera automática, pero deberás proporcionar un PROJECT_ID válido para cada nombre de registro.

    {
      "resourceNames": [
        "projects/PROJECT_ID"
      ],
      "pageSize": 5,
      "filter": "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com"
    }
    
  3. Haz clic en Ejecutar.

Consultas de muestra

Para usar las consultas de muestra en la siguiente tabla, completa estos pasos:

  1. Reemplaza las variables en la expresión de consulta con la información de tu proyecto y, luego, copia la expresión con el ícono de portapapeles .

  2. En la consola de Google Cloud, ve a la página Explorador de registros.

    Ir al Explorador de registros

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Logging.

  3. Habilita Mostrar consulta para abrir el campo query-editor y, luego, pega la expresión en el campo query-editor:

    El editor de consultas en el que ingresas consultas de muestra.

  4. Haz clic en Ejecutar consulta. Los registros que coincidan con la consulta se enumerarán en el panel Resultados de la consulta.

Para encontrar registros de auditoría de GKE, usa las siguientes consultas en el Explorador de registros:

Nombre de la consulta o del filtro Expresión
Registros de auditoría de las cargas de trabajo
log_id("cloudaudit.googleapis.com/activity")
resource.type="k8s_cluster"
resource.labels.cluster_name="CLUSTER_NAME"
protoPayload.request.metadata.name="WORKLOAD_NAME"
Actualización de metadatos del nodo para el objeto de nodo
resource.type="k8s_cluster"
log_id("cloudaudit.googleapis.com/activity")
protoPayload.methodName="io.k8s.core.v1.nodes.update"
resource.labels.cluster_name="CLUSTER_NAME"
resource.labels.location="LOCATION_NAME"
Cambios en el control de acceso basado en roles, excepto los cambios automatizados del sistema
logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity"
resource.type="k8s_cluster"
protoPayload.methodName:"io.k8s.authorization.rbac.v1"
NOT protoPayload.authenticationInfo.principalEmail:"system"
Cambios en los roles del control de acceso basado en roles, excepto los cambios automatizados del sistema
logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity"
resource.type="k8s_cluster"
protoPayload.methodName:"io.k8s.authorization.rbac.v1.roles"
NOT protoPayload.authenticationInfo.principalEmail:"system"
Cambios en las vinculaciones de roles de control de acceso basado en roles, excepto los cambios automatizados del sistema
logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity"
resource.type="k8s_cluster"
protoPayload.methodName:"io.k8s.authorization.rbac.v1.rolebindings"
NOT protoPayload.authenticationInfo.principalEmail:"system"
Solicitudes de firma de certificados
logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity"
resource.type="k8s_cluster"
protoPayload.resourceName:"certificates.k8s.io/v1beta1/certificatesigningrequests"
Solicitudes web no autenticadas
logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity"
resource.type="k8s_cluster"
protoPayload.authenticationInfo.principalEmail:"system:anonymous"
Llamadas de identidad de bootstrap de Kubelet
logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity"
resource.type="k8s_cluster"
protoPayload.authenticationInfo.principalEmail:"kubelet"
Solicitudes autenticadas de nodo
logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity"
resource.type="k8s_cluster"
protoPayload.authenticationInfo.principalEmail:"system:node"
Llamadas fuera de un rango de direcciones IP
logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity"
resource.type="k8s_cluster"
protoPayload.requestMetadata.callerIp!="127.0.0.1"
protoPayload.requestMetadata.callerIp!="::1"
NOT protoPayload.requestMetadata.callerIp:"IP_ADDRESS_PREFIX"
Entradas de registro de auditoría de la actividad del administrador que se aplican al tipo de recurso k8s_cluster y que describen la creación de una implementación
logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity"
resource.type="k8s_cluster"
protoPayload.methodName:"deployments.create"
Entradas de registro de auditoría de la actividad del administrador que se aplican al tipo de recurso k8s_cluster y tienen un valor principalEmail de system:anonymous. Estas entradas probablemente representan intentos fallidos de autenticación.
logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity"
resource.type="k8s_cluster"
protoPayload.authenticationInfo.principalEmail="system:anonymous"
Entradas de registro de auditoría de la actividad del administrador que se aplican al tipo de recurso gke_cluster y tienen un valor severity de ERROR.
logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity"
resource.type="gke_cluster"
severity="ERROR"
Entradas de registro de auditoría de la actividad del administrador que se aplican al tipo de recurso k8s_cluster y que describen una solicitud de escritura a un secreto.
logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity"
resource.type="k8s_cluster"
protoPayload.methodName:"io.k8s.core.v1.secrets"
NOT protoPayload.methodName:"get"
NOT protoPayload.methodName:"list"
NOT protoPayload.methodName:"watch"
Entradas de registro de auditoría de la actividad del administrador que se aplican al tipo de recurso k8s_cluster y que describen una solicitud de Pod de un usuario en particular.
logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity"
resource.type="k8s_cluster"
protoPayload.methodName:"io.k8s.core.v1.pods"
protoPayload.authenticationInfo.principalEmail="dev@example.com"

Enruta registros de auditoría

Puedes enrutar registros de auditoría a destinos compatibles de la misma manera en la que enrutas otros tipos de registros. Estos son algunos de los motivos por los que es posible que desees enrutar tus registros de auditoría:

  • Para mantener los registros de auditoría por un período más extenso o usar capacidades de búsqueda más potentes, puedes enrutar copias de tus registros de auditoría a Cloud Storage, BigQuery o Pub/Sub. Puedes enrutar a otras aplicaciones, otros repositorios y a terceros a través de Pub/Sub.

  • Para administrar los registros de auditoría en toda la organización, puedes crear receptores agregados que puedan enrutar registros desde cualquier proyecto de Google Cloud de la organización o desde todos los proyectos.

  • Si tus registros de auditoría de acceso a los datos habilitados sobrepasan las asignaciones de registros de los proyectos de Google Cloud, puedes crear receptores que excluyan los registros de auditoría de acceso a los datos de Logging.

Para obtener instrucciones sobre el enrutamiento de registros, consulta Enruta registros a destinos compatibles.

Precios

Para obtener más información sobre los precios, consulta Resumen de precios de Cloud Logging.

Configura métricas y alertas

Para configurar métricas basadas en las entradas de registro, puedes usar Cloud Monitoring. Para configurar gráficos y alertas, puedes usar métricas basadas en registros.

Política de auditoría

La política de auditoría de Kubernetes determina qué entradas de registro exporta el servidor de API de Kubernetes. La política de auditoría de Kubernetes Engine determina qué entradas van al registro de auditoría de actividad de administrador y cuáles van al registro de acceso a los datos.

Para obtener más información sobre las políticas de auditoría en Kubernetes Engine, consulta la Política de auditoría de Kubernetes Engine.