Información sobre los registros de auditoría de Firestore

En este documento se describe el registro de auditoría de los servicios de Firestore. Google Cloud Estos servicios generan registros de auditoría que registran las actividades administrativas y de acceso en tus Google Cloud recursos. Para obtener más información sobre los registros de auditoría de Cloud, consulta los siguientes artículos:

Notas

Cuando configures el registro de auditoría, usa el nombre de servicio datastore.googleapis.com para configurar datastore.googleapis.com y firestore.googleapis.com.Una vez configurado, los registros de la API de Firestore incluirán el nombre de servicio firestore.googleapis.com.

Para ver el tiempo que se ha tardado en procesar una solicitud DATA_READ o DATA_WRITE, consulta el campo processing_duration del objeto metadata de un AuditLog. processing_duration describe el tiempo que ha tardado la base de datos en procesar una solicitud. Es inferior a la latencia del usuario final. En concreto, no incluye la sobrecarga de la red.

En el caso de las solicitudes Listen, processing_duration solo está presente en el registro de auditoría del conjunto de resultados inicial devuelto. No aparece en los registros de auditoría posteriores del mismo Listendestino
.
Las escrituras individuales de importación, las operaciones de eliminación en bloque y el TTL no se registran en la auditoría.

Nombre del servicio

Los registros de auditoría de Firestore usan el nombre de servicio firestore.googleapis.com. Filtrar por este servicio:

    protoPayload.serviceName="firestore.googleapis.com"
  

Métodos por tipo de permiso

Cada permiso de gestión de identidades y accesos tiene una propiedad type, cuyo valor es una enumeración que puede ser uno de estos cuatro valores: ADMIN_READ, ADMIN_WRITE, DATA_READ o DATA_WRITE. Cuando llamas a un método, Firestore genera un registro de auditoría cuya categoría depende de la propiedad type del permiso necesario para ejecutar el método. Los métodos que requieren un permiso de gestión de identidades y accesos con el valor de propiedad type de DATA_READ, DATA_WRITE o ADMIN_READ generan registros de auditoría de acceso a datos. Los métodos que requieren un permiso de gestión de identidades y accesos con el valor de la propiedad typeADMIN_WRITE generan registros de auditoría de actividad de administrador.

Tipo de permiso Métodos
ADMIN_READ google.cloud.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
google.firestore.admin.v1.FirestoreAdmin.GetField
google.firestore.admin.v1.FirestoreAdmin.GetIndex
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.v1beta1.FirestoreAdmin.GetIndex
google.firestore.admin.v1beta1.FirestoreAdmin.ListIndexes
google.firestore.admin.v1beta2.FirestoreAdmin.GetField
google.firestore.admin.v1beta2.FirestoreAdmin.GetIndex
google.firestore.admin.v1beta2.FirestoreAdmin.ListFields
google.firestore.admin.v1beta2.FirestoreAdmin.ListIndexes
google.longrunning.Operations.GetOperation
google.longrunning.Operations.ListOperations
ADMIN_WRITE google.firestore.admin.v1.FirestoreAdmin.BulkDeleteDocuments
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.ImportDocuments
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.CreateIndex
google.firestore.admin.v1beta1.FirestoreAdmin.DeleteIndex
google.firestore.admin.v1beta1.FirestoreAdmin.ExportDocuments
google.firestore.admin.v1beta1.FirestoreAdmin.ImportDocuments
google.firestore.admin.v1beta2.FirestoreAdmin.CreateIndex
google.firestore.admin.v1beta2.FirestoreAdmin.DeleteIndex
google.firestore.admin.v1beta2.FirestoreAdmin.ExportDocuments
google.firestore.admin.v1beta2.FirestoreAdmin.ImportDocuments
google.firestore.admin.v1beta2.FirestoreAdmin.UpdateField
google.longrunning.Operations.CancelOperation
google.longrunning.Operations.DeleteOperation
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.Listen
google.firestore.v1.Firestore.PartitionQuery
google.firestore.v1.Firestore.Rollback
google.firestore.v1.Firestore.RunAggregationQuery
google.firestore.v1.Firestore.RunQuery
google.firestore.v1beta1.Firestore.BatchGetDocuments
google.firestore.v1beta1.Firestore.BeginTransaction
google.firestore.v1beta1.Firestore.GetDocument
google.firestore.v1beta1.Firestore.ListCollectionIds
google.firestore.v1beta1.Firestore.ListDocuments
google.firestore.v1beta1.Firestore.PartitionQuery
google.firestore.v1beta1.Firestore.Rollback
google.firestore.v1beta1.Firestore.RunAggregationQuery
google.firestore.v1beta1.Firestore.RunQuery
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.BatchWrite
google.firestore.v1beta1.Firestore.Commit
google.firestore.v1beta1.Firestore.CreateDocument
google.firestore.v1beta1.Firestore.DeleteDocument
google.firestore.v1beta1.Firestore.UpdateDocument

Registros de auditoría de la interfaz de la API

Para obtener información sobre cómo y qué permisos se evalúan en cada método, consulta la documentación de gestión de identidades y accesos de Firestore.

google.cloud.location.Locations

Los siguientes registros de auditoría están asociados a métodos que pertenecen a google.cloud.location.Locations.

GetLocation

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

ListLocations

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

google.firestore.admin.v1.FirestoreAdmin

Los siguientes registros de auditoría están asociados a métodos que pertenecen a google.firestore.admin.v1.FirestoreAdmin.

BulkDeleteDocuments

CreateBackupSchedule

CreateDatabase

CreateIndex

DeleteBackup

DeleteBackupSchedule

DeleteDatabase

DeleteIndex

ExportDocuments

GetBackup

  • Método: google.firestore.admin.v1.FirestoreAdmin.GetBackup
  • Tipo de registro de auditoría: Acceso a datos
  • Permisos:
    • datastore.backups.get - ADMIN_READ
  • El método es una operación de larga duración o de streaming: No.
  • Filtrar por este método: protoPayload.methodName="google.firestore.admin.v1.FirestoreAdmin.GetBackup"

GetBackupSchedule

GetDatabase

  • Método: google.firestore.admin.v1.FirestoreAdmin.GetDatabase
  • Tipo de registro de auditoría: Acceso a datos
  • Permisos:
    • datastore.databases.getMetadata - ADMIN_READ
  • El método es una operación de larga duración o de streaming: No.
  • Filtrar por este método: protoPayload.methodName="google.firestore.admin.v1.FirestoreAdmin.GetDatabase"

GetField

  • Método: google.firestore.admin.v1.FirestoreAdmin.GetField
  • Tipo de registro de auditoría: Acceso a datos
  • Permisos:
    • datastore.indexes.get - ADMIN_READ
  • El método es una operación de larga duración o de streaming: No.
  • Filtrar por este método: protoPayload.methodName="google.firestore.admin.v1.FirestoreAdmin.GetField"

GetIndex

  • Método: google.firestore.admin.v1.FirestoreAdmin.GetIndex
  • Tipo de registro de auditoría: Acceso a datos
  • Permisos:
    • datastore.indexes.get - ADMIN_READ
  • El método es una operación de larga duración o de streaming: No.
  • Filtrar por este método: protoPayload.methodName="google.firestore.admin.v1.FirestoreAdmin.GetIndex"

ImportDocuments

ListBackupSchedules

ListBackups

ListDatabases

ListFields

  • Método: google.firestore.admin.v1.FirestoreAdmin.ListFields
  • Tipo de registro de auditoría: Acceso a datos
  • Permisos:
    • datastore.indexes.list - ADMIN_READ
  • El método es una operación de larga duración o de streaming: No.
  • Filtrar por este método: protoPayload.methodName="google.firestore.admin.v1.FirestoreAdmin.ListFields"

ListIndexes

RestoreDatabase

UpdateBackupSchedule

UpdateDatabase

UpdateField

google.firestore.admin.v1beta1.FirestoreAdmin

Los siguientes registros de auditoría están asociados a métodos que pertenecen a google.firestore.admin.v1beta1.FirestoreAdmin.

CreateIndex

DeleteIndex

ExportDocuments

GetIndex

ImportDocuments

ListIndexes

google.firestore.admin.v1beta2.FirestoreAdmin

Los siguientes registros de auditoría están asociados a métodos que pertenecen a google.firestore.admin.v1beta2.FirestoreAdmin.

CreateIndex

DeleteIndex

ExportDocuments

GetField

GetIndex

ImportDocuments

ListFields

ListIndexes

UpdateField

google.firestore.v1.Firestore

Los siguientes registros de auditoría están asociados a métodos que pertenecen a google.firestore.v1.Firestore.

BatchGetDocuments

BatchWrite

  • Método: google.firestore.v1.Firestore.BatchWrite
  • Tipo de registro de auditoría: Acceso a datos
  • Permisos:
    • 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 streaming: No.
  • Filtrar por este método: protoPayload.methodName="google.firestore.v1.Firestore.BatchWrite"

BeginTransaction

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

Commit

  • Método: google.firestore.v1.Firestore.Commit
  • Tipo de registro de auditoría: Acceso a datos
  • Permisos:
    • 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 streaming: No.
  • Filtrar por este método: protoPayload.methodName="google.firestore.v1.Firestore.Commit"

CreateDocument

  • Método: google.firestore.v1.Firestore.CreateDocument
  • Tipo de registro de auditoría: Acceso a datos
  • Permisos:
    • datastore.entities.allocateIds - DATA_WRITE
    • datastore.entities.create - DATA_WRITE
  • El método es una operación de larga duración o de streaming: No.
  • Filtrar por este método: protoPayload.methodName="google.firestore.v1.Firestore.CreateDocument"

DeleteDocument

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

GetDocument

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

ListCollectionIds

  • Método: google.firestore.v1.Firestore.ListCollectionIds
  • Tipo de registro de auditoría: Acceso a datos
  • Permisos:
    • datastore.entities.list - DATA_READ
  • El método es una operación de larga duración o de streaming: No.
  • Filtrar por este método: protoPayload.methodName="google.firestore.v1.Firestore.ListCollectionIds"

ListDocuments

  • Método: google.firestore.v1.Firestore.ListDocuments
  • Tipo de registro de auditoría: Acceso a 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 streaming: No.
  • Filtrar por este método: protoPayload.methodName="google.firestore.v1.Firestore.ListDocuments"

Listen

  • Método: google.firestore.v1.Firestore.Listen
  • Tipo de registro de auditoría: Acceso a 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 streaming: RPC de streaming
  • Filtrar por este método: protoPayload.methodName="google.firestore.v1.Firestore.Listen"

PartitionQuery

  • Método: google.firestore.v1.Firestore.PartitionQuery
  • Tipo de registro de auditoría: Acceso a 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 streaming: No.
  • Filtrar por este método: protoPayload.methodName="google.firestore.v1.Firestore.PartitionQuery"

Rollback

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

RunAggregationQuery

RunQuery

  • Método: google.firestore.v1.Firestore.RunQuery
  • Tipo de registro de auditoría: Acceso a 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 streaming: RPC de streaming
  • Filtrar por este método: protoPayload.methodName="google.firestore.v1.Firestore.RunQuery"

UpdateDocument

  • Método: google.firestore.v1.Firestore.UpdateDocument
  • Tipo de registro de auditoría: Acceso a 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 streaming: No.
  • Filtrar por este método: protoPayload.methodName="google.firestore.v1.Firestore.UpdateDocument"

Write

  • Método: google.firestore.v1.Firestore.Write
  • Tipo de registro de auditoría: Acceso a 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 streaming: RPC de streaming
  • Filtrar por este método: protoPayload.methodName="google.firestore.v1.Firestore.Write"

google.firestore.v1beta1.Firestore

Los siguientes registros de auditoría están asociados a métodos que pertenecen a google.firestore.v1beta1.Firestore.

BatchGetDocuments

BatchWrite

  • Método: google.firestore.v1beta1.Firestore.BatchWrite
  • Tipo de registro de auditoría: Acceso a 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 streaming: No.
  • Filtrar por este método: protoPayload.methodName="google.firestore.v1beta1.Firestore.BatchWrite"

BeginTransaction

  • Método: google.firestore.v1beta1.Firestore.BeginTransaction
  • Tipo de registro de auditoría: Acceso a datos
  • Permisos:
    • datastore.databases.get - DATA_READ
  • El método es una operación de larga duración o de streaming: No.
  • Filtrar por este método: protoPayload.methodName="google.firestore.v1beta1.Firestore.BeginTransaction"

Commit

  • Método: google.firestore.v1beta1.Firestore.Commit
  • Tipo de registro de auditoría: Acceso a 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 streaming: No.
  • Filtrar por este método: protoPayload.methodName="google.firestore.v1beta1.Firestore.Commit"

CreateDocument

  • Método: google.firestore.v1beta1.Firestore.CreateDocument
  • Tipo de registro de auditoría: Acceso a datos
  • Permisos:
    • datastore.entities.allocateIds - DATA_WRITE
    • datastore.entities.create - DATA_WRITE
  • El método es una operación de larga duración o de streaming: No.
  • Filtrar por este método: protoPayload.methodName="google.firestore.v1beta1.Firestore.CreateDocument"

DeleteDocument

  • Método: google.firestore.v1beta1.Firestore.DeleteDocument
  • Tipo de registro de auditoría: Acceso a datos
  • Permisos:
    • datastore.entities.delete - DATA_WRITE
  • El método es una operación de larga duración o de streaming: No.
  • Filtrar por este método: protoPayload.methodName="google.firestore.v1beta1.Firestore.DeleteDocument"

GetDocument

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

ListCollectionIds

ListDocuments

  • Método: google.firestore.v1beta1.Firestore.ListDocuments
  • Tipo de registro de auditoría: Acceso a 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 streaming: No.
  • Filtrar por este método: protoPayload.methodName="google.firestore.v1beta1.Firestore.ListDocuments"

PartitionQuery

  • Método: google.firestore.v1beta1.Firestore.PartitionQuery
  • Tipo de registro de auditoría: Acceso a 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 streaming: No.
  • Filtrar por este método: protoPayload.methodName="google.firestore.v1beta1.Firestore.PartitionQuery"

Rollback

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

RunAggregationQuery

RunQuery

UpdateDocument

  • Método: google.firestore.v1beta1.Firestore.UpdateDocument
  • Tipo de registro de auditoría: Acceso a 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 streaming: No.
  • Filtrar por este método: protoPayload.methodName="google.firestore.v1beta1.Firestore.UpdateDocument"

google.longrunning.Operations

Los siguientes registros de auditoría están asociados a métodos que pertenecen a google.longrunning.Operations.

CancelOperation

DeleteOperation

GetOperation

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

ListOperations

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

Identificar a los autores de las solicitudes

Las entradas del registro de auditoría incluyen información sobre la identidad que ha realizado la operación registrada. Para identificar el elemento que llama a una solicitud, consulta los siguientes campos de un objeto AuditLog:

  • La identidad de la persona que llama se almacena en el campo AuthenticationInfo. Esto puede incluir el principalEmail del usuario. Esta información se oculta en ocasiones.

    Si se ha usado 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 Autenticación de Firebase incluyen el token de autenticación de esa solicitud.

  • El campo callerIp del objeto requestMetadata de una entrada AuditLog incluye la dirección IP de la persona que llama.