Información de registro de auditoría de Firestore

En este documento, se describen los registros de auditoría que crea Firestore 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 directamente dentro del proyecto de Cloud. Otros recursos de Google Cloud, como carpetas, organizaciones y cuentas de facturación, contienen los registros de auditoría correspondientes a la entidad.

Para obtener una descripción general de estos registros, consulta la Descripción general de los registros de auditoría de Cloud. Para obtener una explicación más detallada sobre el formato de registro de auditoría, consulta Comprende los registros de auditoría.

Registros de auditoría disponibles

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

  • 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 la 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 operaciones de lectura de datos y de escritura de datos que leen o escriben datos proporcionados por el usuario.

    Para recibir los 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 resumen las operaciones de la API que corresponden a cada tipo de registro de auditoría en Firestore:

Categoría de registros de auditoría Operaciones de Firestore
Registros de actividad del administrador (ADMIN_WRITE)
Registros de auditoría de acceso a los datos (ADMIN_READ)
Registros de auditoría de acceso a los datos (DATA_READ)
  • GetDocument
  • ListDocuments
  • BatchGetDocuments
  • BeginTransaction
  • Commit sin escrituras
  • Rollback
  • RunQuery (transmisión)

    RunQuery es una RPC de transmisión de corta duración y emite una entrada de registro cuando se envía el último mensaje (documento).

  • PartitionQuery
  • ListCollectionIds
  • Listen (transmisión)

    Listen es una RPC de larga duración que combina varios objetivos de transmisión. Cada objetivo es una consulta o un conjunto de claves de documento. La transmisión para cada destino incluye un conjunto de resultados iniciales y una secuencia de actualizaciones, adiciones y eliminaciones del conjunto de resultados. Los objetivos son la unidad de auditoría relevante. Firestore audita cada destino de la siguiente manera:

    • Cuando se agrega el destino, emite una entrada de registro con la consulta o la clave del documento configuradas.
    • Emite actualizaciones periódicas que informan el recuento de actualizaciones desde el último registro de auditoría para este objetivo.
    • Emite una entrada de registro cuando se quita el destino de la transmisión, ya sea de forma explícita o debido a la finalización de la RPC de Listen. En esta entrada de registro, se informa el recuento de actualizaciones desde el último registro de auditoría para este destino.
    • Las entradas de registro emitidas usan el mismo operation.id.
Registros de auditoría de acceso a los datos (DATA_WRITE)

Formato de registro de auditoría

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

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

    • 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 almacenado 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 guarda en el campo serviceData del objeto AuditLog. Las integraciones posteriores usan el campo metadata.

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

Nombre del registro

Los nombres de registro de Cloud Audit Logging 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 la actividad del administrador, el acceso a los datos, la política denegada o del evento del sistema.

A continuación, se muestran los nombres de los registros de auditoría, que incluyen 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 Firestore usan el nombre de servicio firestore.googleapis.com.

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

Tipos de recursos

Los registros de auditoría de Firestore usan los tipos de recursos datastore_database y datastore_index.

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

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 manera 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 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 funciones

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

Cuando decidas qué permisos y funciones específicos de Logging se aplican a tu caso práctico, ten en cuenta lo siguiente:

  • La función de visualizador de registros (roles/logging.viewer) te brinda acceso de solo lectura a los registros de auditoría de actividad del administrador, política denegada y eventos del sistema. Si tienes esta función, no podrás ver los registros de auditoría de acceso a los datos que se encuentran en los depósitos _Required y _Default.

  • La función de visualizador de registros privados (roles/logging.privateLogViewer) incluye los permisos contenidos en roles/logging.viewer, además de la capacidad de leer registros de auditoría de acceso a los datos en los depósitos _Required y _Default.

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

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

Ver registros

Si deseas consultar los registros de auditoría, debes conocer el nombre del registro de auditoría, que incluye el identificador de recursos del proyecto, la carpeta, la cuenta de facturación de Cloud o la organización para los que deseas ver la información de registro de auditoría. En la consulta, puedes especificar aún más otros campos LogEntry indexados, como resource.type. Para obtener más información sobre cómo consultar consultas, consulta Compila consultas en el Explorador de registros.

Puedes ver los registros de auditoría en Logging mediante Cloud Console, la CLI de Google Cloud o la API de Logging:

Console

  1. En Cloud Console, ve a la página Logging Explorador de registros.

    Ir al Explorador de registros

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

  3. 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 Actividad.
      • En los registros de auditoría de acceso a los datos, selecciona data_access.
      • En 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 la política.

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

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

    Para obtener más información sobre cómo consultar mediante el Explorador de registros, lee Compila consultas en el Explorador de registros.

gcloud

La CLI de Google Cloud proporciona una interfaz de línea de comandos para la API de Logging. Proporciona un identificador de recursos 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 Cloud que se encuentra seleccionado.

Para leer las entradas de registro de auditoría a nivel de proyecto de 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 la cuenta de facturación, ejecuta el siguiente comando:

gcloud logging read "logName : billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com" \
    --billing-account=BILLING_ACCOUNT_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 obtener más información sobre el uso de la CLI de gcloud, consulta gcloud logging read.

API

Cuando compiles tus consultas, proporciona un identificador de recursos 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 Cloud que se encuentra seleccionado.

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

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

  2. Ingresa lo siguiente en la parte Request body del formulario Try this API. Si haces clic en este formulario rellenado con anterioridad, 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.

Registros de auditoría de ruta

Puedes enrutar los registros de auditoría a destinos compatibles de la misma manera en que puedes enrutar otros tipos de registros. Estos son algunos motivos por los que quizás desees enrutar tus registros de auditoría:

  • Para mantener los registros de auditoría por un período más largo 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. Mediante Pub/Sub, puedes enrutar a otras aplicaciones, otros repositorios y a terceros.

  • Para administrar los registros de auditoría en toda la organización, puedes crear receptores agregados que puedan enrutar registros desde cualquier proyecto de 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 Cloud, puedes crear receptores que excluyan los registros de auditoría de Acceso a los datos de Logging.

A fin de obtener instrucciones para enrutar registros, consulta Configure and manage sinks.

Precios

Para obtener información sobre los precios de Cloud Logging, consulta Precios de Google Cloud's operations suite: Cloud Logging.