Esta página describe los registros de auditoría creados por Firebase como parte de Cloud Audit Logs .
Descripción general
Los servicios de Firebase escriben registros de auditoría para ayudarlo a responder las preguntas: "¿Quién hizo qué, dónde y cuándo?". Estos son registros de auditoría de la nube, que se proporcionan como parte del proyecto de Google Cloud conectado a su proyecto de Firebase .
Cada uno de sus proyectos de Firebase contiene solo los registros de auditoría de los recursos que están directamente dentro del proyecto.
Para obtener una descripción general de los registros de auditoría de la nube, consulte Descripción general de los registros de auditoría de la nube . Para obtener una comprensión más profunda del formato de registro de auditoría, consulte Comprender los registros de auditoría .
Registros de auditoría disponibles
Los siguientes tipos de registros de auditoría están disponibles para Firebase Realtime Database:
Registros de auditoría de actividad administrativa
Incluye operaciones de "escritura de administrador" que escriben metadatos o información de configuración.
No puede deshabilitar los registros de auditoría de actividad administrativa.
Registros de auditoría de acceso a 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 "escritura de datos" que leen o escriben datos proporcionados por el usuario.
Para recibir registros de auditoría de acceso a datos, debe habilitarlos explícitamente.
Para obtener descripciones más completas de los tipos de registros de auditoría, consulte Tipos de registros de auditoría .
Operaciones auditadas
A continuación se resume qué operaciones de API corresponden a cada tipo de registro de auditoría en Firebase Realtime Database:
Categoría de registros de auditoría | Operaciones de la base de datos en tiempo real de Firebase |
---|---|
Registros de auditoría de actividad del administrador (ADMIN_WRITE) |
|
Registros de auditoría de acceso a datos (ADMIN_READ) |
|
Registros de auditoría de acceso a datos (DATA_READ o DATA_WRITE) |
|
Registros de auditoría de acceso a datos (DATA_READ) |
|
Registros de auditoría de acceso a datos (DATA_WRITE) |
|
Auditar información de autenticación
Las entradas del registro de auditoría incluyen información sobre la identidad que realizó la operación registrada. Para identificar a una persona que llama a una solicitud, consulte los siguientes campos dentro del objeto AuditLog:
Establecer conexiones en tiempo real. Las operaciones de Realtime Database
Connect
no registran datos de autenticación ya que Realtime Database se autentica después de que se establece una conexión. Por lo tanto,Connect
no tiene información de autenticación. El objetoAuthenticationInfo
contiene un marcador de posiciónprincipalEmail
deaudit-pending-auth@firebasedatabase-{REGION_CODE}-prod.iam.gserviceaccount.com
.Autenticación de Google. Las operaciones de bases de datos en tiempo real que utilizan la autenticación estándar de Google, como el tráfico del SDK de administrador de Firebase o las solicitudes REST autenticadas con un token OAuth estándar , tienen un objeto
AuthenticationInfo
que contiene las credenciales de correo electrónico reales.Autenticación de base de fuego. Las operaciones de Realtime Database que usan Firebase Authentication tienen un objeto
AuthenticationInfo
que contiene un valorprincipalEmail
deaudit-third-party-auth@firebasedatabase-{REGION_CODE}-prod.iam.gserviceaccount.com
. Lo mismo ocurre si implementa su propia solución de autenticación creando JWT personalizados.- Si se utilizó un token web JSON (JWT) para la autenticación de terceros, el
thirdPartyPrincipal
incluye el encabezado y la carga útil del token. Por ejemplo, los registros de auditoría de solicitudes autenticadas con Firebase Authentication incluyen el token de Firebase Authentication de esa solicitud.
- Si se utilizó un token web JSON (JWT) para la autenticación de terceros, el
Sin autenticacion. Las operaciones de Realtime Database que no utilizan ninguna autenticación tienen un objeto
AuthenticationInfo
que contiene un valorprincipalEmail
deaudit-no-auth@firebasedatabase-{REGION_CODE}-prod.iam.gserviceaccount.com
. Una instancia de Realtime Database con reglas de seguridad abiertas puede conceder dichas solicitudes. . Recomendamos a todos los usuarios proteger sus bases de datos adecuadamente.Fichas de secretos heredados. Las operaciones de Realtime Database que utilizan tokens heredados tienen un objeto
AuthenticationInfo
que contiene un marcador de posiciónprincipalEmail
deaudit-secret-auth@firebasedatabase-{REGION_CODE}-prod.iam.gserviceaccount.com
. Para JWT firmado por secretos,thirdPartyPrincipal
contiene los encabezados y la carga útil del JWT.
Auditar las evaluaciones de las reglas de seguridad de Firebase
Los registros de Cloud Audit se pueden utilizar para identificar solicitudes que podrían verse afectadas por cambios en las reglas.
En el objeto AuthorizationInfo , authorization.permission
puede ser uno de:
-
firebasedatabase.data.get
: acceso de lectura otorgado en la ruta especificada enresource
. -
firebasedatabase.data.update
: acceso de escritura otorgado en la ruta especificada enresource
. -
firebasedatabase.data.connect
: marcador de posición paraConnect
yDisconnect
. No se requiere autorización para conectarse a una instancia de Realtime Database. -
firebasedatabase.data.cancel
: se utiliza paraUnlisten
yOnDisconnectCancel
. Revocar o cancelar una operación previamente autorizada no requiere autorización adicional.
Correlacione los registros de Cloud Audit con los resultados del perfilador de Realtime Database
Puede realizar un análisis de rendimiento en profundidad en Realtime Database utilizando el generador de perfiles de Realtime Database en combinación con el registro de auditoría de Realtime Database. Cada herramienta tiene sus puntos fuertes.
Registro de auditoría en la nube | Perfilador de bases de datos en tiempo real |
---|---|
|
|
El contenido del registro de auditoría corresponde a las métricas del generador de perfiles, como se muestra a continuación.
Nombre de la operación de registro de auditoría | valores especiales enRealtimeDatabaseAuditMetadata | Nombre de la operación del generador de perfiles |
---|---|---|
Conectar | RequestType es REALTIME | conexión concurrente |
Desconectar | RequestType es REALTIME | desconexión concurrente |
Leer | RequestType es REALTIME | lectura en tiempo real |
Leer | RequestType es REST | descansar-leer |
Escribir | RequestType es REALTIME | escritura en tiempo real |
Escribir | RequestType es REST | descansar-escribir |
Actualizar | RequestType es REALTIME .Marque PreconditionType . | actualización en tiempo real transacción en tiempo real |
Actualizar | RequestType es REST .Marque PreconditionType . | actualización de descanso transacción-resto |
OyenteEscuchar | RequestType es REALTIME | oyente-escucha |
OyenteDejar de escuchar | RequestType es REALTIME | oyente-deja de escuchar |
Al Desconectar Poner | RequestType es REALTIME | en-desconectar-poner |
Actualización al desconectar | RequestType es REALTIME | actualización al desconectarse |
Al desconectarCancelar | RequestType es REALTIME | al desconectar-cancelar |
Ejecutar al desconectar | RequestType es REALTIME | funcionamiento al desconectar |
Formato de registro de auditoría
Las entradas del registro de auditoría incluyen los siguientes objetos:
La entrada del registro en sí, que es un objeto de tipo
LogEntry
. Los campos útiles incluyen los siguientes:-
logName
contiene el ID del recurso y el tipo de registro de auditoría. - El
resource
contiene el objetivo de la operación auditada. - La
timestamp
contiene la hora de la operación auditada. - El
protoPayload
contiene la información auditada.
-
Los datos del registro de auditoría, que es un objeto
AuditLog
que se encuentra en el campoprotoPayload
de la entrada del registro.Información de auditoría específica del servicio opcional, que es un objeto específico del servicio. Para integraciones más antiguas, este objeto se mantiene en el campo
serviceData
del objetoAuditLog
; Las integraciones más nuevas utilizan el campometadata
.
Para conocer otros campos de estos objetos y cómo interpretarlos, consulte Comprender los registros de auditoría .
Información adicional sobre los campos enprotoPayload.metadata
para las operaciones DATA_READ
y DATA_WRITE
está disponible en la documentación de referencia .Nombre de registro
Los nombres de los recursos de Cloud Audit Logs indican el proyecto de Firebase u otra entidad de Google Cloud propietaria de los registros de auditoría, y si el registro contiene datos de registro de auditoría de actividad administrativa, acceso a datos, política denegada o eventos del sistema. Por ejemplo, a continuación se muestran los nombres de los registros de auditoría de actividad administrativa a nivel de proyecto y los registros de auditoría de acceso a datos de una organización. Las variables indican identificadores de organización y proyecto de Firebase.
projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity
organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fdata_access
Nombre del Servicio
Los registros de auditoría de Firebase Realtime Database utilizan el nombre de servicio firebasedatabase.googleapis.com
.
Para obtener una lista completa de todos los nombres de servicios de la API de Cloud Logging y su correspondiente tipo de recurso monitoreado, consulte Asignar servicios a recursos .
Tipos de recursos
Los registros de auditoría de Firebase Realtime Database utilizan el tipo de recurso audited_resource
para todos los registros de auditoría.
Para obtener una lista de todos los tipos de recursos monitoreados de Cloud Logging e información descriptiva, consulte Tipos de recursos monitoreados .
Habilitar el registro de auditoría
Los registros de auditoría de actividad administrativa siempre están habilitados; no puedes desactivarlos.
Los registros de auditoría de acceso a datos están deshabilitados de forma predeterminada y no se escriben a menos que se habiliten explícitamente (la excepción son los registros de auditoría de acceso a datos para BigQuery, que no se pueden deshabilitar).
Los registros de auditoría de acceso a datos para Realtime Database se alternan marcandoDATA_READ
y/o DATA_WRITE
en GCP Console. Hay un retraso de hasta una hora entre el momento en que los registros se habilitan o deshabilitan en GCP Console y el momento en que los registros comienzan o dejan de entregarse.Para obtener instrucciones sobre cómo habilitar algunos o todos los registros de auditoría de acceso a datos, consulte Configurar registros de acceso a datos .
Permisos y roles
Los permisos y roles de Cloud IAM determinan su capacidad para acceder a los datos de los registros de auditoría en los recursos de Google Cloud.
Al decidir qué permisos y roles específicos de Logging se aplican a su caso de uso, considere lo siguiente:
La función Visor de registros (
roles/logging.viewer
) le brinda acceso de solo lectura a los registros de auditoría de actividad administrativa, política denegada y eventos del sistema. Si solo tiene esta función, no podrá ver los registros de auditoría de acceso a datos que se encuentran en el depósito_Default
.La función Visor de registros privados
(roles/logging.privateLogViewer
) incluye los permisos contenidos enroles/logging.viewer
, además de la capacidad de leer registros de auditoría de acceso a datos en el depósito_Default
.Tenga en cuenta que si estos registros privados se almacenan en depósitos definidos por el usuario, cualquier usuario que tenga permisos para leer registros en esos depósitos puede leer los registros privados. Para obtener más información sobre los depósitos de registros, consulte Descripción general de enrutamiento y almacenamiento .
Para obtener más información sobre los permisos y roles de Cloud IAM que se aplican a los datos de los registros de auditoría, consulte Control de acceso .
Ver los registros
Para buscar y ver registros de auditoría, necesita conocer el identificador del proyecto, carpeta u organización de Firebase para el cual desea ver la información del registro de auditoría. Puede especificar aún más otros campos LogEntry
indexados, como resource.type
; para obtener más información, consulte Buscar entradas de registro rápidamente .
Los siguientes son los nombres de los registros de auditoría; incluyen variables para los identificadores del proyecto, carpeta u organización de Firebase:
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 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
Puedes ver los registros de auditoría en Cloud Logging mediante GCP Console, la herramienta de línea de comandos gcloud
o la API de Logging.
Consola
Puedes usar el Explorador de registros en GCP Console para recuperar las entradas del registro de auditoría de tu proyecto, carpeta u organización de Firebase:
En GCP Console, vaya a la página Registro > Explorador de registros .
En la página Explorador de registros , seleccione un proyecto, carpeta u organización de Firebase existente.
En el panel Generador de consultas , haga lo siguiente:
En Tipo de recurso , seleccione el recurso de Google Cloud cuyos registros de auditoría desea ver.
En Nombre de registro , seleccione el tipo de registro de auditoría que desea ver:
- Para los registros de auditoría de actividad del administrador, seleccione actividad .
- Para los registros de auditoría de acceso a datos, seleccione acceso_datos .
- Para los registros de auditoría de eventos del sistema, seleccione system_event .
- Para los registros de auditoría de Política denegada, seleccione política .
Si no ve estas opciones, entonces no hay ningún registro de auditoría de ese tipo disponible en el proyecto, carpeta u organización de Firebase.
Para obtener más detalles sobre las consultas mediante el Explorador de registros, consulte Crear consultas de registros .
nube de gcloud
La herramienta de línea de comandos gcloud
proporciona una interfaz de línea de comandos para la API de Cloud Logging. Proporcione un PROJECT_ID
, FOLDER_ID
u ORGANIZATION_ID
válido en cada uno de los nombres de registro.
Para leer las entradas del registro de auditoría a nivel de proyecto de Firebase, ejecute 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 carpeta, ejecute 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 organización, ejecute 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 herramienta gcloud
, consulta Leer entradas de registro .
API
Al crear sus consultas, reemplace las variables con valores válidos, sustituya el nombre o los identificadores de registro de auditoría de nivel de proyecto, de carpeta o de organización adecuados tal como se enumeran en los nombres de los registros de auditoría. Por ejemplo, si su consulta incluye un PROJECT_ID , entonces el identificador del proyecto que proporcione debe hacer referencia al proyecto de Firebase seleccionado actualmente.
Para utilizar la API de registro para ver las entradas del registro de auditoría, haga lo siguiente:
Vaya a la sección Pruebe esta API en la documentación del método
entries.list
.Coloque lo siguiente en la parte del cuerpo de la solicitud del formulario Pruebe esta API . Al hacer clic en este formulario precargado , se completa automáticamente el cuerpo de la solicitud, pero debe proporcionar un
PROJECT_ID
válido en cada uno de los nombres de registro.{ "resourceNames": [ "projects/PROJECT_ID" ], "pageSize": 5, "filter": "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com" }
Haga clic en Ejecutar .
Para obtener más detalles sobre las consultas, consulte Registro del lenguaje de consulta .
Para ver un ejemplo de una entrada de registro de auditoría y cómo encontrar la información más importante en ella, consulte Ejemplo de entrada de registro de auditoría .
Enrutar registros de auditoría
Puede enrutar registros de auditoría a destinos admitidos de la misma manera que puede enrutar otros tipos de registros. A continuación se presentan algunas razones por las que quizás desee enrutar sus registros de auditoría:
Para conservar los registros de auditoría durante un período de tiempo más prolongado o utilizar capacidades de búsqueda más potentes, puede enviar copias de sus registros de auditoría a Google Cloud Storage, BigQuery o Google Cloud Pub/Sub. Con Cloud Pub/Sub, puede enrutar a otras aplicaciones, otros repositorios y a terceros.
Para administrar sus registros de auditoría en toda una organización, puede crear receptores agregados que puedan enrutar registros de cualquiera o todos los proyectos de Firebase de la organización.
- Si sus registros de auditoría de acceso a datos habilitados están empujando sus proyectos de Firebase sobre sus asignaciones de registros, puede crear receptores que excluyan los registros de auditoría de acceso a datos del registro.
Para obtener instrucciones sobre el enrutamiento de registros, consulte Configurar receptores .
Precios
Los registros de auditoría de actividad administrativa y los registros de auditoría de eventos del sistema no tienen costo.
Los registros de auditoría de acceso a datos y los registros de auditoría de política denegada tienen un costo.
Para obtener más información sobre los precios de Cloud Logging, consulte los precios del conjunto de operaciones de Google Cloud: Cloud Logging .