Información de registros de auditoría de Firestore

En este documento, se describe el registro de auditoría de Firestore. Se describen qué métodos se auditan y los detalles sobre el registro de auditoría que produce cada método. Enumera qué métodos no producen registros de auditoría, si los hay. Los servicios de Google Cloud escriben registros de auditoría que registran actividades y accesos administrativos dentro de tus recursos de Google Cloud. Para obtener más información, consulta Descripción general de los Registros de auditoría de Cloud.

Notas

Para ver el tiempo que tomó procesar una solicitud DATA_READ o DATA_WRITE, consulta el campo processing_duration dentro del objeto metadata de un AuditLog. processing_duration describe el tiempo que tardó la base de datos en procesar una solicitud. Esto es menor que la latencia del usuario final. En particular, no incluye la sobrecarga de red.

Para las solicitudes Listen, processing_duration solo está presente en el registro de auditoría del conjunto de resultados inicial que se muestra. No está en los registros de auditoría posteriores para ese mismo Listen objetivo.

Las escrituras individuales de las operaciones de importación y el TTL no se registran de auditoría.

Nombre del servicio

Los registros de auditoría de Firestore usan el nombre de servicio firestore.googleapis.com.

Métodos por tipo de permiso

Firestore también incluye las siguientes operaciones como parte de la herramienta de diagnóstico Key Visualizer. Estos son registros de auditoría de acceso a los datos y tienen el nombre de servicio firestorekeyvisualizer.googleapis.com. Se habilitan cuando se activa DATA_READ para el servicio firestore.googleapis.com.

  • google.cloud.keyvisualizer.KeyVisualizer.GetScan
  • google.cloud.keyvisualizer.KeyVisualizer.ListScans

Los métodos que verifican los tipos de permiso DATA_READ, DATA_WRITE y ADMIN_READ generan registros de auditoría de acceso a los datos. Los métodos que verifican los tipos de permisos ADMIN_WRITE generan registros de auditoría de actividad del administrador.

Tipo de permiso Métodos
ADMIN_READ google.firestore.location.Locations.GetLocation
google.cloud.location.Locations.ListLocations
google.firestore.admin.v1.FirestoreAdmin.GetBackup
google.firestore.admin.v1.FirestoreAdmin.GetBackupSchedule
google.firestore.admin.v1.FirestoreAdmin.GetDatabase.firestore.firestore.admin.v1.FirestoreAdmin.Firestore.firestore.admin.google.Firestore.google.Firestore.google.v.admin.google.v.admin.google.v.v.d. llamar.google.Firestore.d.admin.google.vd.admin.google.v.v.de.v.v......














ADMIN_WRITE google.Firestore.Firestore.admin.v1.FirestoreAdmin.firestore.Firestore.admin.v1.FirestoreAdmin.admin.v1.google.Firestore.Admin.admin.v.admin.google.adminv.admin.google.Firestore.admin.admin.google.Firestore.admin.admin.google.Firestore.admin.admin.google.Firestore.admin.admin.google.Firestore.admin.admin.google.Firestore.admin.admin.google.Firestore.admin.admin.google.Firestore.admin.admin.google.Firestore.admin.ba.google.ja.admin.admin.ja.ja.v. tener.v.v.;






















DATA_READ google.Firestore.v1.Firestore.BatchGetDocuments
google.firestore.v1.Firestore.BeginTransaction
google.firestore.v1.Firestore.GetDocument
google.firestore.v1.Firestore.ListCollectionIds
google.firestore.v1.Firestore.ListDocuments
google.firestore.v1.Firestore.firestore.firestore.google.firestore.v1.Firestore.Firestore.firestore.Firestore.google.Firestore.google.Firestore.beta.hl=es-419.google.Firestore.beta.google.txt
.Firestore.Firestore.beta.Firestore.beta.google.Firestore.google.Firestore.beta.hl=es-41.











DATA_WRITE google.firestore.v1.Firestore.BatchWrite
google.firestore.v1.Firestore.Commit
google.firestore.v1.Firestore.CreateDocument
google.firestore.v1.Firestore.DeleteDocument
google.firestore.v1.Firestore.UpdateDocument
google.firestore.v1.Firestore.Write
google.firestore.v1beta1.Firestore.Firestore.firestore.v1beta1.Firestore.Firestore.Firestore.Firestore.beta1.google.Firestore.Commit.



Registros de auditoría para cada interfaz de API

Si quieres obtener más información sobre qué permisos se evalúan para cada método, consulta la documentación de Identity and Access Management de Firestore.

google.cloud.location.Locations

En la siguiente sección, se brindan detalles sobre los registros de auditoría asociados con métodos que pertenecen a google.cloud.location.Locations.

google.cloud.location.Locations.GetLocation

  • Método: google.cloud.location.Locations.GetLocation
  • Tipo de registro de auditoría: Acceso a los datos
  • Permisos:
    • datastore.locations.get - ADMIN_READ
  • El método es una operación de larga duración o de transmisión: no.
  • Filtra para este método: protoPayload.methodName="google.cloud.location.Locations.GetLocation"

google.cloud.location.Locations.ListLocations

  • Método: google.cloud.location.Locations.ListLocations
  • Tipo de registro de auditoría: Acceso a los datos
  • Permisos:
    • datastore.locations.list - ADMIN_READ
  • El método es una operación de larga duración o de transmisión: no.
  • Filtra para este método: protoPayload.methodName="google.cloud.location.Locations.ListLocations"

google.firestore.admin.v1.FirestoreAdmin

En la siguiente sección, se brindan detalles sobre los registros de auditoría asociados con métodos que pertenecen a google.firestore.admin.v1.FirestoreAdmin.

google.firestore.admin.v1.FirestoreAdmin.CreateBackupSchedule

google.firestore.admin.v1.FirestoreAdmin.CreateDatabase

google.firestore.admin.v1.FirestoreAdmin.CreateIndex

google.firestore.admin.v1.FirestoreAdmin.DeleteBackup

google.firestore.admin.v1.FirestoreAdmin.DeleteBackupSchedule

google.firestore.admin.v1.FirestoreAdmin.DeleteDatabase

google.firestore.admin.v1.FirestoreAdmin.DeleteIndex

google.firestore.admin.v1.FirestoreAdmin.ExportDocuments

google.firestore.admin.v1.FirestoreAdmin.GetBackup

google.firestore.admin.v1.FirestoreAdmin.GetBackupSchedule

google.firestore.admin.v1.FirestoreAdmin.GetDatabase

google.firestore.admin.v1.FirestoreAdmin.GetField

google.firestore.admin.v1.FirestoreAdmin.GetIndex

google.firestore.admin.v1.FirestoreAdmin.ImportDocuments

google.firestore.admin.v1.FirestoreAdmin.ListBackupSchedules

google.firestore.admin.v1.FirestoreAdmin.ListBackups

google.firestore.admin.v1.FirestoreAdmin.ListDatabases

google.firestore.admin.v1.FirestoreAdmin.ListFields

google.firestore.admin.v1.FirestoreAdmin.ListIndexes

google.firestore.admin.v1.FirestoreAdmin.RestoreDatabase

google.firestore.admin.v1.FirestoreAdmin.UpdateBackupSchedule

google.firestore.admin.v1.FirestoreAdmin.UpdateDatabase

google.firestore.admin.v1.FirestoreAdmin.UpdateField

google.firestore.admin.v1beta1.FirestoreAdmin

En la siguiente sección, se brindan detalles sobre los registros de auditoría asociados con métodos que pertenecen a google.firestore.admin.v1beta1.FirestoreAdmin.

google.firestore.admin.v1beta1.FirestoreAdmin.CreateIndex

google.firestore.admin.v1beta1.FirestoreAdmin.DeleteIndex

google.firestore.admin.v1beta1.FirestoreAdmin.ExportDocuments

google.firestore.admin.v1beta1.FirestoreAdmin.GetIndex

google.firestore.admin.v1beta1.FirestoreAdmin.ImportDocuments

google.firestore.admin.v1beta1.FirestoreAdmin.ListIndexes

google.firestore.admin.v1beta2.FirestoreAdmin

En la siguiente sección, se brindan detalles sobre los registros de auditoría asociados con métodos que pertenecen a google.firestore.admin.v1beta2.FirestoreAdmin.

google.firestore.admin.v1beta2.FirestoreAdmin.CreateIndex

google.firestore.admin.v1beta2.FirestoreAdmin.DeleteIndex

google.firestore.admin.v1beta2.FirestoreAdmin.ExportDocuments

google.firestore.admin.v1beta2.FirestoreAdmin.GetField

google.firestore.admin.v1beta2.FirestoreAdmin.GetIndex

google.firestore.admin.v1beta2.FirestoreAdmin.ImportDocuments

google.firestore.admin.v1beta2.FirestoreAdmin.ListFields

google.firestore.admin.v1beta2.FirestoreAdmin.ListIndexes

google.firestore.admin.v1beta2.FirestoreAdmin.UpdateField

google.firestore.v1.Firestore

En la siguiente sección, se brindan detalles sobre los registros de auditoría asociados con métodos que pertenecen a google.firestore.v1.Firestore.

google.firestore.v1.Firestore.BatchGetDocuments

google.firestore.v1.Firestore.BatchWrite

  • Método: google.firestore.v1.Firestore.BatchWrite
  • Tipo de registro de auditoría: Acceso a los datos
  • Permisos:
    • datastore.databases.get - DATA_READ
    • datastore.entities.create - DATA_WRITE
    • datastore.entities.delete - DATA_WRITE
    • datastore.entities.update - DATA_WRITE
  • El método es una operación de larga duración o de transmisión: no.
  • Filtra para este método: protoPayload.methodName="google.firestore.v1.Firestore.BatchWrite"

google.firestore.v1.Firestore.BeginTransaction

  • Método: google.firestore.v1.Firestore.BeginTransaction
  • Tipo de registro de auditoría: Acceso a los datos
  • Permisos:
    • datastore.databases.get - DATA_READ
  • El método es una operación de larga duración o de transmisión: no.
  • Filtra para este método: protoPayload.methodName="google.firestore.v1.Firestore.BeginTransaction"

google.firestore.v1.Firestore.Commit

  • Método: google.firestore.v1.Firestore.Commit
  • Tipo de registro de auditoría: Acceso a los datos
  • Permisos:
    • datastore.databases.get - DATA_READ
    • datastore.entities.create - DATA_WRITE
    • datastore.entities.delete - DATA_WRITE
    • datastore.entities.get - DATA_READ
    • datastore.entities.update - DATA_WRITE
  • El método es una operación de larga duración o de transmisión: no.
  • Filtra para este método: protoPayload.methodName="google.firestore.v1.Firestore.Commit"

google.firestore.v1.Firestore.CreateDocument

  • Método: google.firestore.v1.Firestore.CreateDocument
  • Tipo de registro de auditoría: Acceso a los datos
  • Permisos:
    • datastore.databases.get - DATA_READ
    • datastore.entities.allocateIds - DATA_WRITE
    • datastore.entities.create - DATA_WRITE
  • El método es una operación de larga duración o de transmisión: no.
  • Filtra para este método: protoPayload.methodName="google.firestore.v1.Firestore.CreateDocument"

google.firestore.v1.Firestore.DeleteDocument

  • Método: google.firestore.v1.Firestore.DeleteDocument
  • Tipo de registro de auditoría: Acceso a los datos
  • Permisos:
    • datastore.entities.delete - DATA_WRITE
  • El método es una operación de larga duración o de transmisión: no.
  • Filtra para este método: protoPayload.methodName="google.firestore.v1.Firestore.DeleteDocument"

google.firestore.v1.Firestore.GetDocument

  • Método: google.firestore.v1.Firestore.GetDocument
  • Tipo de registro de auditoría: Acceso a los datos
  • Permisos:
    • datastore.databases.get - DATA_READ
    • datastore.entities.get - DATA_READ
  • El método es una operación de larga duración o de transmisión: no.
  • Filtra para este método: protoPayload.methodName="google.firestore.v1.Firestore.GetDocument"

google.firestore.v1.Firestore.ListCollectionIds

  • Método: google.firestore.v1.Firestore.ListCollectionIds
  • Tipo de registro de auditoría: Acceso a los datos
  • Permisos:
    • datastore.databases.get - DATA_READ
    • datastore.entities.list - DATA_READ
  • El método es una operación de larga duración o de transmisión: no.
  • Filtra para este método: protoPayload.methodName="google.firestore.v1.Firestore.ListCollectionIds"

google.firestore.v1.Firestore.ListDocuments

  • Método: google.firestore.v1.Firestore.ListDocuments
  • Tipo de registro de auditoría: Acceso a los datos
  • Permisos:
    • datastore.databases.get - DATA_READ
    • datastore.entities.get - DATA_READ
    • datastore.entities.list - DATA_READ
  • El método es una operación de larga duración o de transmisión: no.
  • Filtra para este método: protoPayload.methodName="google.firestore.v1.Firestore.ListDocuments"

google.firestore.v1.Firestore.Listen

  • Método: google.firestore.v1.Firestore.Listen
  • Tipo de registro de auditoría: Acceso a los datos
  • Permisos:
    • datastore.databases.get - DATA_READ
    • datastore.entities.get - DATA_READ
    • datastore.entities.list - DATA_READ
  • El método es una operación de transmisión o de larga duración: RPC de transmisión
  • Filtra para este método: protoPayload.methodName="google.firestore.v1.Firestore.Listen"
  • Notas:

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

    • Cuando se agregue el destino, emite una entrada de registro con la consulta de destino o el conjunto de claves del documento. En estas entradas, operation.first es verdadero. Este registro de auditoría se omite cuando la transmisión es la reanudación de una transmisión objetivo de escucha anterior.
    • Emite actualizaciones periódicas que informen 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 manera explícita o debido a la finalización de la RPC de Listen. Esta entrada de registro informa el recuento de actualizaciones desde el último registro de auditoría para este objetivo. En estas entradas, operation.last es verdadero.
    • Las entradas de registro emitidas usan el mismo operation.id.

google.firestore.v1.Firestore.PartitionQuery

  • Método: google.firestore.v1.Firestore.PartitionQuery
  • Tipo de registro de auditoría: Acceso a los datos
  • Permisos:
    • datastore.databases.get - DATA_READ
    • datastore.entities.get - DATA_READ
    • datastore.entities.list - DATA_READ
  • El método es una operación de larga duración o de transmisión: no.
  • Filtra para este método: protoPayload.methodName="google.firestore.v1.Firestore.PartitionQuery"

google.firestore.v1.Firestore.Rollback

  • Método: google.firestore.v1.Firestore.Rollback
  • Tipo de registro de auditoría: Acceso a los datos
  • Permisos:
    • datastore.databases.get - DATA_READ
  • El método es una operación de larga duración o de transmisión: no.
  • Filtra para este método: protoPayload.methodName="google.firestore.v1.Firestore.Rollback"

google.firestore.v1.Firestore.RunAggregationQuery

google.firestore.v1.Firestore.RunQuery

  • Método: google.firestore.v1.Firestore.RunQuery
  • Tipo de registro de auditoría: Acceso a los datos
  • Permisos:
    • datastore.databases.get - DATA_READ
    • datastore.entities.get - DATA_READ
    • datastore.entities.list - DATA_READ
  • El método es una operación de transmisión o de larga duración: RPC de transmisión
  • Filtra para este método: protoPayload.methodName="google.firestore.v1.Firestore.RunQuery"
  • Notas: 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).

google.firestore.v1.Firestore.UpdateDocument

  • Método: google.firestore.v1.Firestore.UpdateDocument
  • Tipo de registro de auditoría: Acceso a los datos
  • Permisos:
    • datastore.databases.get - DATA_READ
    • datastore.entities.create - DATA_WRITE
    • datastore.entities.update - DATA_WRITE
  • El método es una operación de larga duración o de transmisión: no.
  • Filtra para este método: protoPayload.methodName="google.firestore.v1.Firestore.UpdateDocument"

google.firestore.v1.Firestore.Write

  • Método: google.firestore.v1.Firestore.Write
  • Tipo de registro de auditoría: Acceso a los datos
  • Permisos:
    • datastore.databases.get - DATA_READ
    • datastore.entities.create - DATA_WRITE
    • datastore.entities.delete - DATA_WRITE
    • datastore.entities.update - DATA_WRITE
  • El método es una operación de transmisión o de larga duración: RPC de transmisión
  • Filtra para este método: protoPayload.methodName="google.firestore.v1.Firestore.Write"
  • Notas: Write emite una entrada de registro por cada mensaje recibido, ya que cada mensaje corresponde a una escritura independiente en la base de datos. Las entradas de registro emitidas usan el mismo operation.id.

google.firestore.v1beta1.Firestore

En la siguiente sección, se brindan detalles sobre los registros de auditoría asociados con métodos que pertenecen a google.firestore.v1beta1.Firestore.

google.firestore.v1beta1.Firestore.BatchGetDocuments

google.firestore.v1beta1.Firestore.BatchWrite

  • Método: google.firestore.v1beta1.Firestore.BatchWrite
  • Tipo de registro de auditoría: Acceso a los datos
  • Permisos:
    • datastore.entities.create - DATA_WRITE
    • datastore.entities.update - DATA_WRITE
  • El método es una operación de larga duración o de transmisión: no.
  • Filtra para este método: protoPayload.methodName="google.firestore.v1beta1.Firestore.BatchWrite"

google.firestore.v1beta1.Firestore.BeginTransaction

google.firestore.v1beta1.Firestore.Commit

  • Método: google.firestore.v1beta1.Firestore.Commit
  • Tipo de registro de auditoría: Acceso a los datos
  • Permisos:
    • datastore.databases.get - DATA_READ
    • datastore.entities.create - DATA_WRITE
    • datastore.entities.delete - DATA_WRITE
    • datastore.entities.update - DATA_WRITE
  • El método es una operación de larga duración o de transmisión: no.
  • Filtra para este método: protoPayload.methodName="google.firestore.v1beta1.Firestore.Commit"

google.firestore.v1beta1.Firestore.CreateDocument

  • Método: google.firestore.v1beta1.Firestore.CreateDocument
  • Tipo de registro de auditoría: Acceso a los datos
  • Permisos:
    • datastore.databases.get - DATA_READ
    • datastore.entities.allocateIds - DATA_WRITE
    • datastore.entities.create - DATA_WRITE
  • El método es una operación de larga duración o de transmisión: no.
  • Filtra para este método: protoPayload.methodName="google.firestore.v1beta1.Firestore.CreateDocument"

google.firestore.v1beta1.Firestore.DeleteDocument

google.firestore.v1beta1.Firestore.GetDocument

  • Método: google.firestore.v1beta1.Firestore.GetDocument
  • Tipo de registro de auditoría: Acceso a los datos
  • Permisos:
    • datastore.databases.get - DATA_READ
    • datastore.entities.get - DATA_READ
  • El método es una operación de larga duración o de transmisión: no.
  • Filtra para este método: protoPayload.methodName="google.firestore.v1beta1.Firestore.GetDocument"

google.firestore.v1beta1.Firestore.ListCollectionIds

google.firestore.v1beta1.Firestore.ListDocuments

  • Método: google.firestore.v1beta1.Firestore.ListDocuments
  • Tipo de registro de auditoría: Acceso a los datos
  • Permisos:
    • datastore.databases.get - DATA_READ
    • datastore.entities.get - DATA_READ
    • datastore.entities.list - DATA_READ
  • El método es una operación de larga duración o de transmisión: no.
  • Filtra para este método: protoPayload.methodName="google.firestore.v1beta1.Firestore.ListDocuments"

google.firestore.v1beta1.Firestore.PartitionQuery

  • Método: google.firestore.v1beta1.Firestore.PartitionQuery
  • Tipo de registro de auditoría: Acceso a los datos
  • Permisos:
    • datastore.entities.get - DATA_READ
    • datastore.entities.list - DATA_READ
  • El método es una operación de larga duración o de transmisión: no.
  • Filtra para este método: protoPayload.methodName="google.firestore.v1beta1.Firestore.PartitionQuery"

google.firestore.v1beta1.Firestore.Rollback

  • Método: google.firestore.v1beta1.Firestore.Rollback
  • Tipo de registro de auditoría: Acceso a los datos
  • Permisos:
    • datastore.databases.get - DATA_READ
  • El método es una operación de larga duración o de transmisión: no.
  • Filtra para este método: protoPayload.methodName="google.firestore.v1beta1.Firestore.Rollback"

google.firestore.v1beta1.Firestore.RunAggregationQuery

google.firestore.v1beta1.Firestore.RunQuery

  • Método: google.firestore.v1beta1.Firestore.RunQuery
  • Tipo de registro de auditoría: Acceso a los datos
  • Permisos:
    • datastore.databases.get - DATA_READ
    • datastore.entities.get - DATA_READ
    • datastore.entities.list - DATA_READ
  • El método es una operación de transmisión o de larga duración: RPC de transmisión
  • Filtra para este método: protoPayload.methodName="google.firestore.v1beta1.Firestore.RunQuery"
  • Notas: 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).

google.firestore.v1beta1.Firestore.UpdateDocument

  • Método: google.firestore.v1beta1.Firestore.UpdateDocument
  • Tipo de registro de auditoría: Acceso a los datos
  • Permisos:
    • datastore.databases.get - DATA_READ
    • datastore.entities.create - DATA_WRITE
    • datastore.entities.update - DATA_WRITE
  • El método es una operación de larga duración o de transmisión: no.
  • Filtra para este método: protoPayload.methodName="google.firestore.v1beta1.Firestore.UpdateDocument"

google.longrunning.Operations

En la siguiente sección, se brindan detalles sobre los registros de auditoría asociados con métodos que pertenecen a google.longrunning.Operations.

google.longrunning.Operations.CancelOperation

google.longrunning.Operations.DeleteOperation

google.longrunning.Operations.GetOperation

  • Método: google.longrunning.Operations.GetOperation
  • Tipo de registro de auditoría: Acceso a los datos
  • Permisos:
    • datastore.operations.get - ADMIN_READ
  • El método es una operación de larga duración o de transmisión: no.
  • Filtra para este método: protoPayload.methodName="google.longrunning.Operations.GetOperation"

google.longrunning.Operations.ListOperations

  • Método: google.longrunning.Operations.ListOperations
  • Tipo de registro de auditoría: Acceso a los datos
  • Permisos:
    • datastore.operations.list - ADMIN_READ
  • El método es una operación de larga duración o de transmisión: no.
  • Filtra para este método: protoPayload.methodName="google.longrunning.Operations.ListOperations"

Cómo identificar a los emisores de las solicitudes

Las entradas de registro de auditoría incluyen información sobre la identidad que realizó la operación registrada. Para identificar un llamador de solicitudes, consulta los siguientes campos dentro de un objeto AuditLog:

  • La identidad del emisor se guarda en el campo AuthenticationInfo. Esto puede incluir el principalEmail del usuario. Esta información a veces se oculta.

    Si se usó un token web JSON (JWT) para la autenticación de terceros, el campo thirdPartyPrincipal incluye el encabezado y la carga útil del token. Por ejemplo, los registros de auditoría de las solicitudes autenticadas con Firebase Authentication incluyen el token de autenticación de esa solicitud.

  • El campo callerIp dentro del objeto requestMetadata de una entrada AuditLog incluye la dirección IP del emisor.