Si usas registros de actividad para ver la actividad de administrador y los eventos del sistema de Compute Engine, consulta esta guía para saber cómo encontrar entradas de registro similares con registros de auditoría.
Los registros de actividad de Compute Engine están obsoletos. Puedes identificar las entradas de registro de actividad por su nombre de registro:
logName: "projects/PROJECT_ID/logs/compute.googleapis.com%2Factivity_log"
Los registros de auditoría de Compute Engine contienen la misma información que está disponible en los registros de actividad, y más. Sin embargo, los registros de auditoría presentan la información de forma diferente a los registros de actividad. Por lo tanto, tendrás que ajustar tus consultas.
Cómo migrar de registros de actividad a registros de auditoría
Para usar registros de auditoría en lugar de registros de actividad, ajusta tus consultas. Sigue estos pasos.
Busca tus consultas antiguas. Por ejemplo, puede que los hayas guardado en una búsqueda guardada en el Explorador de registros o que hayas creado una secuencia de comandos con la API o el SDK. Para obtener más información sobre cómo monitorizar tus recursos, consulta la documentación de registro.
Sustituye los campos del registro de actividad por los campos del registro de auditoría correspondientes. Consulta la tabla para ver cómo se asignan los campos entre sí.
Por ejemplo, si tu consulta del registro de actividad antiguo buscaba un campo llamado
jsonPayload.resource.name
, tu nueva consulta del registro de auditoría debería buscarprotoPayload.resourceName
.Guarda y usa tu nueva consulta de registro de auditoría. Por ejemplo, puedes crear una búsqueda guardada en Cloud Logging o actualizar tus secuencias de comandos.
Ejemplos
Estos son algunos ejemplos de consultas convertidas:
Consultar la actividad relacionada con un recurso específico
Ejemplo de consulta | |
---|---|
Registro de actividad antiguo | gcloud logging read jsonPayload.resource.name="VM_NAME"
|
Registro de auditoría | Usa una de las siguientes opciones
Con la opción 1, el operador "tiene" ( |
Consultar entradas recientes del registro de actividad del administrador
Ejemplo de consulta | |
---|---|
Registro de actividad antiguo | gcloud logging read logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Factivity_log"
|
Registro de auditoría | gcloud logging read logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity" |
Consultar entradas de registro de creación de instancias recientes
Ejemplo de consulta | |
---|---|
Registro de actividad antiguo | gcloud logging read 'logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Factivity_log" AND jsonPayload.event_subtype="compute.instances.insert"' |
Registro de auditoría | gcloud logging read 'logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity" AND protoPayload.methodName:"compute.instances.insert"' |
Consultar el inicio de todas las operaciones de creación de instancias
Ejemplo de consulta | |
---|---|
Registro de actividad antiguo | gcloud logging read 'jsonPayload.event_type="GCE_API_CALL" AND jsonPayload.event_subtype="compute.instances.insert"' |
Registro de auditoría | gcloud logging read 'operation.first="true" AND protoPayload.methodName:"compute.instances.insert"' |
Consultar si se ha completado alguna operación
Ejemplo de consulta | |
---|---|
Registro de actividad antiguo | gcloud logging read jsonPayload.event_type="GCE_OPERATION_DONE" |
Registro de auditoría | gcloud logging read operation.last="true" |
Diferencias entre los registros de actividad y los registros de auditoría
Lee esta sección para saber cómo se estructuran los registros de auditoría de forma diferente a los registros de actividad. Ten en cuenta estas diferencias al convertir las consultas del registro de actividad antiguo en consultas del registro de auditoría. Por ejemplo, en tus consultas, sustituye todos los nombres de campos de registros de actividad antiguos por los nombres de campos de registros de auditoría correspondientes.
Aunque los registros de auditoría y de actividad devuelven objetos LogEntry, tienen las siguientes diferencias:
- Nombres de campo diferentes. Consulta la tabla de asignación de nombres de campos para obtener más información.
- Diferentes valores de campo, entre los que se incluyen los siguientes:
- Diferentes nombres de registro: los registros de auditoría tienen nombres que contienen
cloudaudit.googleapis.com
. - Diferentes cargas útiles: los registros de auditoría devuelven un campo
protoPayload
en lugar de unjsonPayload
. - Nombres de recursos completos: los registros de auditoría devuelven nombres de recursos que incluyen su ruta. Por ejemplo:
projects/my-project/zones/us-east1-b/instances/my-instance-name
. - Nombres de métodos con versiones: los registros de auditoría devuelven nombres de métodos que incluyen su versión, por ejemplo,
v1
.
- Diferentes nombres de registro: los registros de auditoría tienen nombres que contienen
A continuación, se muestra un ejemplo de las diferencias en los nombres de los registros y las cargas útiles:
Ejemplo de entrada de registro | |
---|---|
Registro de actividad antiguo | { insertId: "1x3bbhjg2wwvz1x" jsonPayload: { event_subtype: "compute.instances.stop" ... resource: { id: "12345678900123456789" name: "my-instance-name" type: "instance" zone: "us-east1-b" } ... } labels: {…} logName: "projects/my-project/logs/compute.googleapis.com%2Factivity_log" receiveTimestamp: "2019-08-26T12:22:44.602794616Z" ... } |
Registro de auditoría | { insertId: "-w6o499e22fwk" logName: "projects/my-project/logs/cloudaudit.googleapis.com%2Factivity" protoPayload: { ... methodName: "beta.compute.instances.stop" ... resourceName: "projects/my-project/zones/us-east1-b/instances/my-instance-name" } receiveTimestamp: "2019-08-26T12:22:46.881198276Z" ... } |
Asignar campos de registros de actividad a registros de auditoría
Usa las siguientes tablas para asignar los campos del registro de actividad a los campos del registro de auditoría correspondientes en tus consultas.
Campos
Usa la siguiente tabla para sustituir los campos del registro de actividad antiguo por los campos del registro de auditoría en las consultas actualizadas.
Por ejemplo, si tu consulta del registro de actividad antiguo contenía un filtro basado en jsonPayload.resource.type
, tu nueva consulta del registro de auditoría debería filtrar por resource.type
.
Campo de registro de actividad antiguo | Campo del registro de auditoría |
---|---|
insertId |
insertId |
jsonPayload.actor.user |
protoPayload.authenticationInfo.principalEmail |
jsonPayload.event_subtype |
protoPayload.methodName |
jsonPayload.event_timestamp_us |
timestamp |
jsonPayload.event_type="GCE_API_CALL" |
operation.first="true" |
jsonPayload.event_type="GCE_OPERATION_DONE" |
operation.last="true" |
jsonPayload.request |
protoPayload.request |
jsonPayload.operation |
operation |
jsonPayload.resource.id |
resource.labels.instance_id |
jsonPayload.resource.name |
protoPayload.resourceName |
jsonPayload.resource.type |
resource.type |
jsonPayload.resource.zone |
resource.labels.zone |
jsonPayload.trace_id |
operation.id |
jsonPayload.user_agent |
protoPayload.requestMetadata.callerSuppliedUserAgent |
labels.compute.googleapis.com/resource_id |
resource.labels.[RESOURCE_TYPE]_id |
labels.compute.googleapis.com/resource_name |
protoPayload.resourceName |
labels.compute.googleapis.com/resource_type |
resource.type |
labels.compute.googleapis.com/resource_zone |
Uno de los siguientes valores:
|
logName |
logName |
receiveTimestamp |
receiveTimestamp |
resource.labels |
resource.labels |
severity |
severity |
timestamp |
timestamp |
Valores de campo
Use las siguientes tablas para asignar los valores de los campos del registro de actividad antiguo a los valores de los campos del registro de auditoría. En comparación con los registros de actividad, los registros de auditoría tienen varios valores de nombre de registro y diferentes valores de carga útil. Las entradas del registro de auditoría también devuelven nombres de recursos completos y nombres de métodos con versiones.
Nombres de registro
Para encontrar una entrada de registro de auditoría, busca un logName
que incluya
cloudaudit.googleapis.com
.
Nombre del registro | Contenido del registro | |
---|---|---|
Registro de actividad antiguo | projects/PROJECT_ID/logs/compute.googleapis.com%2Factivity_log | Actividad del administrador y eventos del sistema |
Registro de auditoría | projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity | Actividad de administrador |
projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event | Eventos del sistema | |
projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fdata_access | Acceso a los datos |
Cargas útiles
En cada entrada del registro de auditoría, busca protoPayload
en lugar de jsonPayload
.
Tipo de carga útil | Ejemplo de carga útil | |
---|---|---|
Registro de actividad antiguo | jsonPayload | jsonPayload: { actor: {…} event_subtype: "compute.instances.start" event_timestamp_us: "1566404493487248" event_type: "GCE_API_CALL" ip_address: "" operation: {…} request: {…} resource: {…} trace_id: "operation-1566404491560-590a2f74b4705-a1ae0686-d896d772" user_agent: "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36" version: "1.2" } |
Registro de auditoría | protoPayload | protoPayload: { @type: "type.googleapis.com/google.cloud.audit.AuditLog" authenticationInfo: {…} methodName: "v1.compute.instances.start" request: {…} requestMetadata: {…} resourceName: "projects/my-project/zones/us-central1-a/instances/alert" serviceName: "compute.googleapis.com" } |
Para saber cómo se relacionan estas cargas útiles entre sí y cómo asignar campos de registro de actividad antiguos a campos de registro de auditoría, consulta Asignaciones de campos de entrada de registro.
Nombres de recursos
En los registros de auditoría, los nombres de recursos de la API (en el campo protoPayload.resourceName
) están
completos. Por ejemplo:
resourceName: "projects/PROJECT_ID/zones/ZONE/instances/VM_NAME"
Puedes seguir usando nombres parciales, pero debes corregir tu consulta para usar el operador "has" (:
) en lugar del operador "equals".
Usa una de las siguientes opciones en tus consultas de registro de auditoría para filtrar por un recurso específico:
gcloud logging read protoPayload.resourceName:"VM_NAME"
gcloud logging read protoPayload.resourceName="projects/PROJECT_ID/zones/ZONE/instances/VM_NAME"
Nombres de métodos
En los registros de auditoría, los nombres de los métodos de la API (en el campo protoPayload.methodName
) tienen como prefijo su versión, como v1.compute.instances.delete
.
Campo | Valor | Ejemplo de consulta | |
---|---|---|---|
Registro de actividad antiguo | jsonPayload.event_subtype | RESOURCE.METHOD | jsonPayload.event_subtype=compute.instances.delete |
Registro de auditoría | protoPayload.methodName | API_VERSION.RESOURCE.METHOD | protoPayload.methodName=v1.compute.instances.delete o protoPayload.methodName=beta.compute.instances.delete o protoPayload.methodName:compute.instances.delete |
Puedes seguir usando nombres de métodos sin versión en tus consultas de registro de auditoría, pero debes corregir la consulta para usar el operador "has" (:
) en lugar del operador "equals" (=
). Por ejemplo, protoPayload.methodName:compute.instances.delete
devuelve todas las llamadas a la API de eliminación de instancias, independientemente de la versión. Para obtener más información sobre los operadores, consulta las comparaciones.
Siguientes pasos
- Consulta la guía de inicio rápido para usar las herramientas de registro.
- Consulte más información sobre cómo ver entradas de registro.
- Consulta información sobre cómo ver los registros con filtros de registro avanzados.
- Consulta más información sobre los registros de auditoría de Cloud de Compute Engine.