Introducción a los registros de auditoría de BigQuery
Los registros son registros de texto que se generan en respuesta a eventos o acciones concretos. Por ejemplo, BigQuery crea entradas de registro para acciones como crear o eliminar una tabla, comprar ranuras o ejecutar una tarea de carga.
Google Cloud también escribe registros, incluidos los registros de auditoría, que proporcionan información valiosa sobre los problemas operativos relacionados con el uso de los servicios de Google Cloud . Para obtener más información sobre cómo gestiona los registros, consulta la documentación de Cloud Logging y la información general de Cloud Audit Logs. Google Cloud
Registros de auditoría frente a vistas de INFORMATION_SCHEMA
Tus Google Cloud proyectos contienen registros de auditoría solo de los recursos que están directamente en el Google Cloud proyecto. Otros Google Cloud recursos, como las carpetas, las organizaciones y las cuentas de facturación, contienen sus propios registros de auditoría.
Los registros de auditoría te ayudan a responder a la pregunta "¿Quién hizo qué, dónde y cuándo?" en tus Google Cloud recursos. Los registros de auditoría son la fuente de información definitiva sobre la actividad del sistema por usuario y los patrones de acceso, y deben ser tu fuente principal para las preguntas sobre auditoría o seguridad.
Las vistas de INFORMATION_SCHEMA
en BigQuery son otra fuente de estadísticas que puedes usar junto con las métricas y los registros. Estas vistas contienen metadatos sobre tareas, conjuntos de datos, tablas y otras entidades de BigQuery. Por ejemplo, puedes obtener metadatos en tiempo real sobre los trabajos de BigQuery que se han ejecutado durante un periodo determinado. Después, puede agrupar o filtrar los resultados por proyecto, usuario, tablas a las que se hace referencia y otras dimensiones.
Las vistas INFORMATION_SCHEMA
te proporcionan información para llevar a cabo un análisis más detallado de tus cargas de trabajo de BigQuery, como la siguiente:
- ¿Cuál es el uso medio de ranuras de todas las consultas de un proyecto concreto en los últimos siete días?
- ¿Qué errores de streaming se han producido en los últimos 30 minutos, agrupados por código de error?
Los registros de auditoría de BigQuery contienen entradas de registro de llamadas a la API, pero no describen el impacto de las llamadas a la API. Un subconjunto de llamadas a la API crea trabajos (como consultas y cargas) cuya información se registra en las vistas INFORMATION_SCHEMA
. Por ejemplo, puedes encontrar información sobre la hora y los intervalos que utiliza una consulta específica en las vistas de INFORMATION_SCHEMA
, pero no en los registros de auditoría.
Para obtener información valiosa sobre el rendimiento de tus cargas de trabajo de BigQuery en concreto, consulta los metadatos de las tareas, los metadatos de la transmisión y los metadatos de las reservas.
Para obtener más información sobre los tipos de registros de auditoría que escriben los servicios de Google Cloud , consulta Tipos de registros de auditoría.
Formato del registro de auditoría
Google Cloud Los servicios escriben registros de auditoría en formato JSON estructurado. El tipo de datos base de las entradas de registro de Google Cloud es la estructura LogEntry
. Esta estructura contiene el nombre del registro, el recurso que ha generado la entrada de registro, la marca de tiempo (UTC) y otra información básica.
Los registros incluyen detalles del evento registrado en un subcampo denominado campo de carga útil. En los registros de auditoría, el campo de carga útil se llama protoPayload
. El tipo de este campo (protoPayload.@type
) se define como type.googleapis.com/google.cloud.audit.AuditLog
, lo que indica que el campo usa la estructura de registro AuditLog
.
En el caso de las operaciones en conjuntos de datos, tablas y tareas, BigQuery escribe registros de auditoría en dos formatos diferentes, aunque ambos comparten el tipo base AuditLog
.
El formato antiguo incluye los siguientes campos y valores:
- El valor del campo
resource.type
esbigquery_resource
. - BigQuery escribe los detalles de una operación en el campo
protoPayload.serviceData
. El valor de este campo usa la estructura de registroAuditData
.
El formato más reciente incluye los siguientes campos y valores:
- El valor del campo
resource.type
esbigquery_project
obigquery_dataset
. El recursobigquery_project
tiene entradas de registro sobre trabajos, mientras que el recursobigquery_dataset
tiene entradas de registro sobre almacenamiento. - BigQuery escribe los detalles de una operación en el campo
protoPayload.metadata
. El valor de este campo usa la estructuraBigQueryAuditMetadata
.
Te recomendamos que uses los registros en el formato más reciente. Para obtener más información, consulta la guía de migración de registros de auditoría.
A continuación, se muestra un ejemplo abreviado de una entrada de registro que muestra una operación fallida:
{
"protoPayload": {
"@type": "type.googleapis.com/google.cloud.audit.AuditLog",
"status": {
"code": 5,
"message": "Not found: Dataset myproject:mydataset was not found in location US"
},
"authenticationInfo": { ... },
"requestMetadata": { ... },
"serviceName": "bigquery.googleapis.com",
"methodName": "google.cloud.bigquery.v2.JobService.InsertJob",
"metadata": {
},
"resource": {
"type": "bigquery_project",
"labels": { .. },
},
"severity": "ERROR",
"logName": "projects/myproject/logs/cloudaudit.googleapis.com%2Fdata_access",
...
}
En las operaciones de reservas de BigQuery, el campo protoPayload
usa la estructura AuditLog
, y los campos protoPayload.request
y protoPayload.response
contienen más información. Puede consultar las definiciones de los campos en la API de reserva de BigQuery. Para obtener más información, consulta Monitorizar reservas de BigQuery.
Para obtener más información sobre el formato de los registros de auditoría, consulta el artículo Interpretar los registros de auditoría.
Limitaciones
Los mensajes de registro tienen un límite de tamaño de 100.000 bytes. Para obtener más información, consulta el artículo Entrada de registro truncada.
Visibilidad y control de acceso
Los registros de auditoría de BigQuery pueden incluir información que los usuarios consideren sensible, como texto SQL, definiciones de esquemas e identificadores de recursos, como tablas y conjuntos de datos. Para obtener información sobre cómo gestionar el acceso a esta información, consulta la documentación sobre control de acceso de Cloud Logging.
Siguientes pasos
- Para saber cómo usar Cloud Logging para auditar actividades relacionadas con etiquetas de políticas, consulta Auditar etiquetas de políticas.
- Para saber cómo usar BigQuery para analizar la actividad registrada, consulta la descripción general de los registros de auditoría de BigQuery.