Determinar los filtros de eventos de los registros de auditoría de Cloud

Un activador de Eventarc declara su interés en un evento o en un conjunto de eventos determinados, lo que le permite capturar eventos específicos y tomar medidas al respecto. Los activadores de Eventarc con type=google.cloud.audit.log.v1.written envían solicitudes a un destino cuando se crea un registro de auditoría que coincide con los criterios de filtro del activador. Las coincidencias se basan en los siguientes valores de la entrada del registro de auditoría:

  • serviceName: el servicio que ha escrito el registro de auditoría.
  • methodName: la operación que se está auditando
  • resourceName: el recurso que se está auditando

Para ver una lista de los Google Cloud servicios que proporcionan registros de auditoría, consulta los Google Cloud servicios con registros de auditoría. También puede recuperar los valores del filtro de eventos que se aplican al tipo de evento google.cloud.audit.log.v1.written.

Identificar filtros de eventos

Para identificar los filtros de eventos exactos que se necesitan para crear un activador, genere el evento que quiera capturar y, a continuación, consulte la entrada de registros de auditoría de Cloud correspondiente. Ten en cuenta que los datos de una entrada de registro se pueden dividir y distribuir en varias entradas.

  1. Asegúrate de que has habilitado los tipos de registros de auditoría de acceso a datos de tu servicio.

    Ir a Registros de auditoría

    Ten en cuenta que no se muestran los servicios que tienen la auditoría habilitada de forma predeterminada.

    1. En la tabla principal de la página Registros de auditoría, selecciona un Google Cloud servicio.

    2. En la pestaña Tipos de registro, selecciona las casillas Actividad de administración, Lectura de datos y Escritura de datos y, a continuación, haz clic en Guardar.

  2. Realiza la operación para la que quieras crear un filtro de eventos y genera una entrada de registro de auditoría. Por ejemplo, almacenar un archivo en un segmento de Cloud Storage.

  3. En la Google Cloud consola, ve al Explorador de registros.

    Ir a Explorador de registros

  4. En el panel Creador de consultas, crea y ejecuta una consulta para filtrar las entradas de registro y obtener los resultados. Por ejemplo:

    resource.type="gcs_bucket" resource.labels.bucket_name="eventarc-bucket"
    

    Para obtener más información sobre cómo crear consultas para obtener y acotar registros, consulta el artículo Crear consultas con el lenguaje de consultas de almacenamiento de registros.

  5. Para ver todos los detalles de una entrada de registro, haz clic en la flecha de expansión (▸) al principio de la entrada.

    El campo protoPayload distingue una entrada de registro de auditoría de otras entradas de registro. En el siguiente ejemplo, se omiten algunas partes de la entrada de registro y se destacan algunos campos:

    {
       protoPayload:{
          @type:"type.googleapis.com/google.cloud.audit.AuditLog",
          status:{},
          authenticationInfo:{},
          requestMetadata:{},
          serviceName:"storage.googleapis.com",
          methodName:"storage.objects.create",
          authorizationInfo:[],
          resourceName:"projects/_/buckets/eventarc-bucket/objects/random.txt",
          resourceLocation:{}
       },
       insertId:"il9evleafpdk",
       resource:{
          type:"gcs_bucket",
          labels:{
             project_id:"cloud-run-test",
             location:"us-central1",
             bucket_name:"eventarc-bucket"
          }
       },
       timestamp:"2021-03-05T15:55:20.754688805Z",
       severity:"INFO",
       logName:"projects/cloud-run-test/logs/cloudaudit.googleapis.com%2Fdata_access",
       receiveTimestamp:"2021-03-05T15:55:20.884984611Z"
    }

    • La siguiente información se puede usar para verificar el contenido de esta entrada del registro de auditoría:

      • El campo protoPayload.@type es type.googleapis.com/google.cloud.audit.AuditLog.

      • El campo logName incluye el dominio cloudaudit.googleapis.com.

    • El campo protoPayload.serviceName es el servicio que ha escrito el registro de auditoría.

    • El campo protoPayload.methodName es la operación que se está auditando.

    • El campo protoPayload.resourceName es el recurso que se está auditando.

    Para obtener más información sobre cómo encontrar información en una entrada de registro de auditoría, consulta el artículo Interpretar los registros de auditoría.

Recuperar valores de filtro de eventos

Puedes usar el comando gcloud eventarc audit-logs-provider para consultar y enumerar los valores de serviceName y methodName del proveedor para el tipo de evento google.cloud.audit.log.v1.written.

Para enumerar los nombres de los servicios, ejecuta el siguiente comando:

gcloud eventarc audit-logs-provider service-names list

Devuelve todos los valores del atributo serviceName del tipo de evento google.cloud.audit.log.v1.written.

Para enumerar los nombres de los métodos de un servicio específico, ejecuta el siguiente comando:

gcloud eventarc audit-logs-provider method-names list \
     --service-name=SERVICE_NAME

Sustituye SERVICE_NAME por un valor de serviceName; por ejemplo, bigquery.googleapis.com.

Ejemplos de activadores de Eventarc

En el siguiente ejemplo se crea un activador llamado cal-workflows-trigger para un destino de Workflows. Los filtros de activador de los registros de auditoría que escribe bigquery.googleapis.com y de la operación identificada como google.cloud.bigquery.v2.JobService.InsertJob:

gcloud eventarc triggers create cal-workflows-trigger \
   --location=us-central1 \
   --destination-workflow=my-workflow \
   --destination-workflow-location=europe-west4 \
   --event-filters="type=google.cloud.audit.log.v1.written" \
   --event-filters="serviceName=bigquery.googleapis.com" \
   --event-filters="methodName=google.cloud.bigquery.v2.JobService.InsertJob" \
   --service-account=${TRIGGER_SA}@${PROJECT_ID}.iam.gserviceaccount.com

En el siguiente ejemplo se crea un activador llamado cal-run-trigger para un destino de Cloud Run. Los filtros de activador de los registros de auditoría que escribe workflows.googleapis.com y de la operación identificada como google.cloud.workflows.v1.Workflows.GetWorkflow:

gcloud eventarc triggers create cal-run-trigger \
   --location=us-central1 \
   --destination-run-service=helloworld-events \
   --destination-run-region=us-central1 \
   --event-filters="type=google.cloud.audit.log.v1.written" \
   --event-filters="serviceName=workflows.googleapis.com" \
   --event-filters="methodName=google.cloud.workflows.v1.Workflows.GetWorkflow" \
   --event-filters="resourceName=projects/_/locations/us-central1/workflows/test-workflow" \
   --service-account=${PROJECT_NUMBER}-compute@developer.gserviceaccount.com

Entradas de registro de auditoría de gran tamaño

Cloud Logging divide las entradas de registro de auditoría que superan el límite de uso y distribuye los datos contenidos en la entrada de registro de auditoría original en varias entradas divididas. Si una entrada de registro contiene un campo split, significa que es el resultado de dividir una entrada de registro original más grande. El campo split es un objeto LogSplit que contiene la información necesaria para identificar las entradas divididas relacionadas.

Cada entrada dividida tiene un protoPayload que incluye los mismos valores de serviceName, methodName y resourceName para ayudar a filtrar los eventos de los registros de auditoría de Cloud. Los activadores de Eventarc envían un evento por cada entrada dividida.

Si tienes una entrada de registro de auditoría que se ha dividido en varias entradas, puedes filtrar por cualquiera de los campos de LogEntry. Por ejemplo, si necesitas la primera entrada de una serie de entradas de registro divididas, puedes ejecutar el siguiente comando de la CLI de gcloud, usando split.index=0 para indicar la posición de la primera entrada:

gcloud logging read "split.index=0"

Para obtener más información, incluido cómo reconocer las entradas y consultas de ejemplo, consulta el artículo Dividir entradas de registro de auditoría.

Siguientes pasos