В этом документе описывается ведение журналов аудита для Cloud Firestore. Сервисы Google Cloud создают журналы аудита, в которых регистрируются действия по администрированию и доступу в рамках ресурсов Google Cloud.
Дополнительную информацию о журналах аудита Google Cloud можно найти в следующих статьях:
- Типы журналов аудита
- Структура записи в журнале аудита
- Хранение и маршрутизация журналов аудита
- Сводка по ценам Cloud Logging
- Как включить журналы аудита доступа к данным
Примечания
При настройке ведения журнала аудита используйте название сервиса datastore.googleapis.com, чтобы настроить как datastore.googleapis.com, так и firestore.googleapis.com.
Once configured, logs for the Cloud Firestore API include the service namefirestore.googleapis.com`.
Чтобы узнать, сколько времени заняла обработка запроса DATA_READ или DATA_WRITE, посмотрите поле processing_duration в объекте metadata в AuditLog.
Поле processing_duration содержит информацию о времени, которое потребовалось базе данных на обработку запроса. Это меньше, чем задержка для конечного пользователя. В частности, в него не входят сетевые издержки.
Название сервиса
В журналах аудита Cloud Firestore используется название сервиса firestore.googleapis.com.
Фильтр для этого сервиса:
protoPayload.serviceName="firestore.googleapis.com"
Методы по типу разрешения
У каждого разрешения IAM есть свойство type, значение которого представляет собой перечисление, которое может быть одним из четырех значений: ADMIN_READ, ADMIN_WRITE, DATA_READ или DATA_WRITE. При вызове метода Cloud Firestore создает журнал аудита, категория которого зависит от свойства type разрешения, необходимого для выполнения метода.
Методы, для которых требуется разрешение IAM со значением свойства type, равным DATA_READ, DATA_WRITE или ADMIN_READ, создают журналы аудита доступа к данным.
Методы, для которых требуется разрешение IAM со значением свойства type, равным ADMIN_WRITE, генерируют журналы аудита действий администратора.
| Тип разрешения | Методы |
|---|---|
ADMIN_READ |
google.cloud.location.Locations.GetLocationgoogle.cloud.location.Locations.ListLocationsgoogle.firestore.admin.v1.FirestoreAdmin.GetBackupgoogle.firestore.admin.v1.FirestoreAdmin.GetBackupSchedulegoogle.firestore.admin.v1.FirestoreAdmin.GetDatabasegoogle.firestore.admin.v1.FirestoreAdmin.GetFieldgoogle.firestore.admin.v1.FirestoreAdmin.GetIndexgoogle.firestore.admin.v1.FirestoreAdmin.ListBackupSchedulesgoogle.firestore.admin.v1.FirestoreAdmin.ListBackupsgoogle.firestore.admin.v1.FirestoreAdmin.ListDatabasesgoogle.firestore.admin.v1.FirestoreAdmin.ListFieldsgoogle.firestore.admin.v1.FirestoreAdmin.ListIndexesgoogle.firestore.admin.v1beta1.FirestoreAdmin.GetIndexgoogle.firestore.admin.v1.MongoDBCompatible.ListIndexesgoogle.firestore.admin.v1.MongoDBCompatible.ListDatabases
|
ADMIN_WRITE |
google.firestore.admin.v1.FirestoreAdmin.CreateBackupSchedulegoogle.firestore.admin.v1.FirestoreAdmin.CreateDatabasegoogle.firestore.admin.v1.FirestoreAdmin.CreateIndexgoogle.firestore.admin.v1.FirestoreAdmin.DeleteBackupgoogle.firestore.admin.v1.FirestoreAdmin.DeleteBackupSchedulegoogle.firestore.admin.v1.FirestoreAdmin.DeleteDatabasegoogle.firestore.admin.v1.FirestoreAdmin.DeleteIndexgoogle.firestore.admin.v1.FirestoreAdmin.RestoreDatabasegoogle.firestore.admin.v1.FirestoreAdmin.UpdateBackupSchedulegoogle.firestore.admin.v1.FirestoreAdmin.UpdateDatabasegoogle.firestore.admin.v1.FirestoreAdmin.UpdateFieldgoogle.longrunning.Operations.CancelOperationgoogle.longrunning.Operations.DeleteOperation
|
DATA_READ |
google.firestore.v1.MongoDBCompatible.Findgoogle.firestore.v1.MongoDBCompatible.Aggregategoogle.firestore.v1.MongoDBCompatible.GetMoregoogle.firestore.v1.MongoDBCompatible.ListCollectionsgoogle.firestore.v1.MongoDBCompatible.Countgoogle.firestore.v1.MongoDBCompatible.Distinctgoogle.firestore.v1.MongoDBCompatible.CommitTransactiongoogle.firestore.v1.MongoDBCompatible.AbortTransactiongoogle.firestore.v1.MongoDBCompatible.EndSessionsgoogle.firestore.v1.MongoDBCompatible.KillCursors
|
DATA_WRITE |
google.firestore.v1.MongoDBCompatible.Insertgoogle.firestore.v1.MongoDBCompatible.Updategoogle.firestore.v1.MongoDBCompatible.Deletegoogle.firestore.v1.MongoDBCompatible.FindAndModifygoogle.firestore.v1.MongoDBCompatible.CreateCollection
|
Определите, кто отправляет запросы
Записи в журнале аудита содержат информацию о пользователе, который выполнил зарегистрированную операцию. Чтобы определить, кто отправил запрос, посмотрите следующие поля в объекте AuditLog:
Идентификатор вызывающего абонента хранится в поле
AuthenticationInfo. Это может бытьprincipalEmailпользователя. Эта информация иногда редактируется.Поле
callerIpв объектеrequestMetadataзаписиAuditLogсодержит IP-адрес вызывающего абонента.