Cómo Exportar Registros de Auditoría de Google Cloud

Cómo Exportar Registros de Auditoría de Google Cloud

SOC Prime Team
SOC Prime Team linkedin icon Seguir

Usa gcloud logging read con un filtro en cloudaudit.googleapis.com, o ejecuta la misma consulta en Logs Explorer y descarga los resultados como JSON:

gcloud logging read 'logName:"cloudaudit.googleapis.com" AND timestamp>="2026-10-19T00:00:00Z" AND timestamp<"2026-10-20T00:00:00Z"' 

  --project=my-project --format=json > gcp_audit_1019.json

Los registros de auditoría de actividad administrativa siempre están activados y se conservan durante 400 días. Los registros de acceso a datos están desactivados por defecto, excepto para BigQuery, y se conservan durante 30 días una vez habilitados.

Cloud Audit Logs registra quién cambió qué en tus proyectos de Google Cloud: concesiones de IAM, nuevas claves de cuenta de servicio, cambios de firewall, máquinas virtuales lanzadas en regiones inusuales. Prime Core tiene 140 reglas de detección para los registros de auditoría de Google Cloud, mapeadas a 74 técnicas MITRE ATT&CK. Entre ellas: abuso de cuentas en la nube (T1078.004), credenciales adicionales como nuevas claves de cuenta de servicio (T1098.001) y manipulación del propio registro (T1562.008).

Empieza gratis

Antes de empezar

Conoce qué registro de auditoría necesitas.

Tipo¿Por defecto activado?RetenciónQué contiene
Actividad administrativaSiempre, no puede deshabilitarse400 díasCambios de configuración e IAM
Evento del sistemaSiempre400 díasAcciones que los sistemas de Google tomaron en tus recursos
Acceso a datosNo (excepto BigQuery)30 díasLecturas de datos y metadatos
Política denegadaYes30 díasSolicitudes bloqueadas por políticas de seguridad

Si la pregunta es “¿quién leyó este bucket?” y los registros de acceso a datos nunca se habilitaron, la respuesta no está en Cloud Logging.

Permisos. Logs Viewer (roles/logging.viewer) cubre Actividad administrativa, Evento del sistema y Política denegada. Los registros de Acceso a datos requieren Private Logs Viewer (roles/logging.privateLogViewer).

Alcance. Los registros de auditoría viven por proyecto. La actividad a nivel de organización y carpeta tiene sus propios registros. Consulta esos con –organization=<ORG_ID> o –folder=<FOLDER_ID> en lugar de –project.

Opción 1: Logs Explorer

En la consola, abre Logging → Logs Explorer, ingresa logName:»cloudaudit.googleapis.com», establece el rango de tiempo, ejecuta la consulta, luego descarga los resultados como JSON. La descarga está limitada. Para rangos más grandes, usa gcloud.

Opción 2: gcloud logging read

El comando en la parte superior es la forma básica. Tres detalles ahorran tiempo.

Siempre coloca la ventana de tiempo en el filtro. Sin una condición de marca de tiempo, gcloud logging read se limita silenciosamente al último día (–freshness predetermina a 1d). Eso sorprende a casi todos una vez.

Aumenta el límite cuando sea necesario. Agrega –limit=100000 (o lo que ajuste) para ventanas grandes.

Aplanar para cargar. La salida es un solo array JSON. Conviértelo en una entrada por línea:

jq -c '.[]' gcp_audit_1019.json > gcp_audit_1019.jsonl

Filtros más útiles y específicos:

# Solo actividad administrativa

logName="projects/my-project/logs/cloudaudit.googleapis.com/activity"


# nuevas claves de cuenta de servicio

protoPayload.methodName="google.iam.admin.v1.CreateServiceAccountKey"


# todo lo que hizo una identidad

protoPayload.authenticationInfo.principalEmail="suspicious-sa@my-project.iam.gserviceaccount.com"

Opción 3: Historial masivo desde sinks

Si tu organización envía registros de auditoría a través de un sink a Cloud Storage o BigQuery, esa copia puede ir más atrás que los buckets anteriores. Descarga los archivos con gcloud storage cp, o consulta BigQuery y exporta el resultado como JSON.

Qué buscar

Método o campoPor qué importa
CreateServiceAccountKeyCredenciales de larga duración que un atacante puede llevarse
SetIamPolicyConcesiones de roles; vigila roles/owner, roles/editor y allUsers
UpdateSink, DeleteSink, nuevas exclusionesAlguien redirigiendo o silenciando registros
v1.compute.instances.insert en regiones inusualesLa clásica huella de minería de criptomonedas
Ráfagas con status.code: 7 (PERMISSION_DENIED)Credenciales robadas viendo lo que pueden hacer

Carga, sanitiza y revisa en LogTotal

  1. Carga. Abre logtotal.com y arrastra el archivo .jsonl. 
  2. Sanitiza. [what gets masked: principal emails, project IDs, IPs, resource names]. Look it over before you continue.
  3. Revisa. 

Cuando las cosas salen mal

SíntomaProbable causaFix
Solo las últimas 24 horas regresanNo hay marca de tiempo en el filtro, por lo que –freshness=1d se aplicaPon la ventana en el filtro
No hay entradas de Acceso a DatosLos registros de acceso a datos nunca se habilitaronEsperado; habilítalos para el futuro
PERMISSION_DENIED al leer registrosFalta Private Logs Viewer para Acceso a DatosSolicita roles/logging.privateLogViewer
Los resultados se detienenSe alcanzó el límite predeterminado o explícitoAumenta –limit, o divide la ventana
Faltan cambios a nivel de organizaciónConsultaste un proyectoUsa –organization

FAQ

¿Los registros de Google Workspace están aquí?

Solo si tu organización comparte datos de Workspace con Google Cloud, y luego a nivel de organización.

¿Qué hay de GKE?

GKE también escribe sus registros de auditoría de Kubernetes en Cloud Audit Logs

Únete a la plataforma Detection as Code de SOC Prime para mejorar la visibilidad de las amenazas más relevantes para tu negocio. Para ayudarte a comenzar y obtener valor inmediato, programa una reunión ahora con los expertos de SOC Prime.