На этой странице описаны журналы аудита, созданные Firebase как часть журналов аудита облака .
Обзор
Службы Firebase ведут журналы аудита, которые помогут вам ответить на вопросы: «Кто, где и когда что сделал?». Это журналы аудита облака, предоставляемые как часть проекта Google Cloud , связанного с вашим проектом Firebase .
Каждый из ваших проектов Firebase содержит только журналы аудита для ресурсов, которые находятся непосредственно в проекте.
Общий обзор журналов облачного аудита см. в разделе Обзор журналов облачного аудита . Более глубокое понимание формата журнала аудита см. в разделе Общие сведения о журналах аудита .
Доступные журналы аудита
Для проверки приложений Firebase доступны следующие типы журналов аудита:
Журналы аудита активности администратора
Включает операции «административной записи», которые записывают метаданные или информацию о конфигурации.
Вы не можете отключить журналы аудита активности администратора.
Журналы аудита доступа к данным
Включает операции «административного чтения», которые читают метаданные или информацию о конфигурации. Также включает операции «чтение данных» и «запись данных», которые считывают или записывают данные, предоставленные пользователем.
Чтобы получать журналы аудита доступа к данным, необходимо явно включить их.
Более полное описание типов журналов аудита см. в разделе Типы журналов аудита .
Проверенные операции
Ниже суммировано, какие операции API соответствуют каждому типу журнала аудита в проверке приложений Firebase:
Тип разрешения | Методы |
---|---|
ADMIN_READ | google.firebase.appcheck.v1.ConfigService.BatchGetAppAttestConfigs google.firebase.appcheck.v1.ConfigService.BatchGetDeviceCheckConfigs google.firebase.appcheck.v1.ConfigService.BatchGetPlayIntegrityConfigs google.firebase.appcheck.v1.ConfigService.BatchGetRecaptchaEnterpriseConfigs google.firebase.appcheck.v1.ConfigService.BatchGetRecaptchaV3Configs google.firebase.appcheck.v1.ConfigService.BatchGetSafetyNetConfigs google.firebase.appcheck.v1.ConfigService.GetAppAttestConfig google.firebase.appcheck.v1.ConfigService.GetDebugToken google.firebase.appcheck.v1.ConfigService.GetDeviceCheckConfig google.firebase.appcheck.v1.ConfigService.GetPlayIntegrityConfig google.firebase.appcheck.v1.ConfigService.GetRecaptchaEnterpriseConfig google.firebase.appcheck.v1.ConfigService.GetRecaptchaV3Config google.firebase.appcheck.v1.ConfigService.GetSafetyNetConfig google.firebase.appcheck.v1.ConfigService.GetService google.firebase.appcheck.v1.ConfigService.ListDebugTokens google.firebase.appcheck.v1.ConfigService.ListServices google.firebase.appcheck.v1beta.ConfigService.BatchGetAppAttestConfigs google.firebase.appcheck.v1beta.ConfigService.BatchGetDeviceCheckConfigs google.firebase.appcheck.v1beta.ConfigService.BatchGetPlayIntegrityConfigs google.firebase.appcheck.v1beta.ConfigService.BatchGetRecaptchaConfigs google.firebase.appcheck.v1beta.ConfigService.BatchGetRecaptchaEnterpriseConfigs google.firebase.appcheck.v1beta.ConfigService.BatchGetRecaptchaV3Configs google.firebase.appcheck.v1beta.ConfigService.BatchGetSafetyNetConfigs google.firebase.appcheck.v1beta.ConfigService.GetAppAttestConfig google.firebase.appcheck.v1beta.ConfigService.GetDebugToken google.firebase.appcheck.v1beta.ConfigService.GetDeviceCheckConfig google.firebase.appcheck.v1beta.ConfigService.GetPlayIntegrityConfig google.firebase.appcheck.v1beta.ConfigService.GetRecaptchaConfig google.firebase.appcheck.v1beta.ConfigService.GetRecaptchaEnterpriseConfig google.firebase.appcheck.v1beta.ConfigService.GetRecaptchaV3Config google.firebase.appcheck.v1beta.ConfigService.GetResourcePolicy google.firebase.appcheck.v1beta.ConfigService.GetSafetyNetConfig google.firebase.appcheck.v1beta.ConfigService.GetService google.firebase.appcheck.v1beta.ConfigService.ListDebugTokens google.firebase.appcheck.v1beta.ConfigService.ListResourcePolicies google.firebase.appcheck.v1beta.ConfigService.ListServices |
ADMIN_WRITE | google.firebase.appcheck.v1.ConfigService.BatchUpdateServices google.firebase.appcheck.v1.ConfigService.CreateDebugToken google.firebase.appcheck.v1.ConfigService.DeleteDebugToken google.firebase.appcheck.v1.ConfigService.UpdateAppAttestConfig google.firebase.appcheck.v1.ConfigService.UpdateDebugToken google.firebase.appcheck.v1.ConfigService.UpdateDeviceCheckConfig google.firebase.appcheck.v1.ConfigService.UpdatePlayIntegrityConfig google.firebase.appcheck.v1.ConfigService.UpdateRecaptchaEnterpriseConfig google.firebase.appcheck.v1.ConfigService.UpdateRecaptchaV3Config google.firebase.appcheck.v1.ConfigService.UpdateSafetyNetConfig google.firebase.appcheck.v1.ConfigService.UpdateService google.firebase.appcheck.v1beta.ConfigService.BatchUpdateResourcePolicies google.firebase.appcheck.v1beta.ConfigService.BatchUpdateServices google.firebase.appcheck.v1beta.ConfigService.CreateDebugToken google.firebase.appcheck.v1beta.ConfigService.CreateResourcePolicy google.firebase.appcheck.v1beta.ConfigService.DeleteDebugToken google.firebase.appcheck.v1beta.ConfigService.DeleteResourcePolicy google.firebase.appcheck.v1beta.ConfigService.UpdateAppAttestConfig google.firebase.appcheck.v1beta.ConfigService.UpdateDebugToken google.firebase.appcheck.v1beta.ConfigService.UpdateDeviceCheckConfig google.firebase.appcheck.v1beta.ConfigService.UpdatePlayIntegrityConfig google.firebase.appcheck.v1beta.ConfigService.UpdateRecaptchaConfig google.firebase.appcheck.v1beta.ConfigService.UpdateRecaptchaEnterpriseConfig google.firebase.appcheck.v1beta.ConfigService.UpdateRecaptchaV3Config google.firebase.appcheck.v1beta.ConfigService.UpdateResourcePolicy google.firebase.appcheck.v1beta.ConfigService.UpdateSafetyNetConfig google.firebase.appcheck.v1beta.ConfigService.UpdateService google.firebase.appcheck.v1beta.TokenVerificationService.VerifyAppCheckToken |
Формат журнала аудита
Записи журнала аудита включают следующие объекты:
Сама запись журнала, которая является объектом типа
LogEntry
. Полезные поля включают в себя следующее:-
logName
содержит идентификатор ресурса и тип журнала аудита. -
resource
содержит цель проверяемой операции. -
timestamp
содержит время проверяемой операции. -
protoPayload
содержит проверенную информацию.
-
Данные журнала аудита, которые представляют собой объект
AuditLog
, хранящийся в полеprotoPayload
записи журнала.Необязательная информация аудита, специфичная для службы, которая является объектом, специфичным для службы. В более старых версиях интеграции этот объект хранится в поле
serviceData
объектаAuditLog
; более новые интеграции используют полеmetadata
.
Информацию о других полях в этих объектах и о том, как их интерпретировать, см. в разделе Понимание журналов аудита .
Имя журнала
Названия ресурсов журналов аудита облака указывают на проект Firebase или другой объект Google Cloud , которому принадлежат журналы аудита, а также на то, содержит ли журнал данные журнала действий администратора, доступа к данным, отказа в политике или системных событий. Например, ниже показаны имена журналов аудита действий администратора на уровне проекта и журналов аудита доступа к данным организации. Переменные обозначают идентификаторы проекта и организации Firebase.
projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity
organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fdata_access
Название службы
В журналах аудита Firebase App Check используется имя службы firebaseappcheck.googleapis.com
.
Полный список всех названий сервисов Cloud Logging API и соответствующих им типов отслеживаемых ресурсов см. в разделе Сопоставление сервисов с ресурсами .
Типы ресурсов
Журналы аудита Firebase App Check используют тип ресурса audited_resource
для всех журналов аудита.
Список всех типов ресурсов, отслеживаемых с помощью Cloud Logging, и их описательную информацию см. в разделе «Типы отслеживаемых ресурсов» .
Включить ведение журнала аудита
Журналы аудита активности администратора всегда включены; вы не можете их отключить.
Журналы аудита доступа к данным отключены по умолчанию и не записываются, если они явно не включены (исключением являются журналы аудита доступа к данным для BigQuery, которые невозможно отключить).
Инструкции по включению некоторых или всех журналов аудита доступа к данным см. в разделе Настройка журналов доступа к данным .
Разрешения и роли
Разрешения и роли Cloud IAM определяют вашу возможность доступа к данным журналов аудита в ресурсах Google Cloud .
При принятии решения о том, какие разрешения и роли, связанные с ведением журнала, применимы к вашему варианту использования, учтите следующее:
Роль просмотра журналов (
roles/logging.viewer
) предоставляет вам доступ только для чтения к журналам аудита действий администратора, запретов политики и системных событий. Если у вас есть только эта роль, вы не можете просматривать журналы аудита доступа к данным, которые находятся в сегменте_Default
.Роль просмотра частных журналов
(roles/logging.privateLogViewer
) включает в себя разрешения, содержащиеся вroles/logging.viewer
, а также возможность читать журналы аудита доступа к данным в сегменте_Default
.Обратите внимание: если эти частные журналы хранятся в определенных пользователем сегментах, то любой пользователь, у которого есть разрешения на чтение журналов в этих сегментах, может читать частные журналы. Дополнительные сведения о сегментах журналов см. в разделе Обзор маршрутизации и хранения .
Дополнительную информацию о разрешениях и ролях Cloud IAM, которые применяются к данным журналов аудита, см. в разделе Контроль доступа .
Просмотр журналов
Чтобы найти и просмотреть журналы аудита, вам необходимо знать идентификатор проекта, папки или организации Firebase, для которых вы хотите просмотреть информацию журналов аудита. Вы также можете указать другие индексированные поля LogEntry
, например resource.type
; Подробности см. в разделе Быстрый поиск записей журнала .
Ниже приведены имена журналов аудита; они включают переменные для идентификаторов проекта, папки или организации 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
Вы можете просмотреть журналы аудита в Cloud Logging с помощью консоли Google Cloud, инструмента командной строки gcloud
или API ведения журналов.
Консоль
Вы можете использовать Logs Explorer в консоли Google Cloud, чтобы получить записи журнала аудита для вашего проекта Firebase, папки или организации:
В консоли Google Cloud перейдите на страницу «Ведение журналов» > «Обозреватель журналов» .
На странице обозревателя журналов выберите существующий проект, папку или организацию Firebase.
На панели «Конструктор запросов» выполните следующие действия:
В поле «Тип ресурса» выберите ресурс Google Cloud , журналы аудита которого вы хотите просмотреть.
В поле «Имя журнала» выберите тип журнала аудита, который вы хотите видеть:
- Для журналов аудита активности администратора выберите активность .
- Для журналов аудита доступа к данным выберите data_access .
- Для журналов аудита системных событий выберите system_event .
- Для журналов аудита «Отказано в политике» выберите политику .
Если вы не видите эти параметры, значит, в проекте, папке или организации Firebase нет журналов аудита этого типа.
Дополнительные сведения о запросах с помощью обозревателя журналов см. в разделе Создание запросов к журналу .
gcloud
Инструмент командной строки gcloud
предоставляет интерфейс командной строки для API Cloud Logging. Укажите действительный PROJECT_ID
, FOLDER_ID
или ORGANIZATION_ID
в каждом имени журнала.
Чтобы прочитать записи журнала аудита уровня проекта Firebase, выполните следующую команду:
gcloud logging read "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com" --project=PROJECT_ID
Чтобы прочитать записи журнала аудита на уровне папки, выполните следующую команду:
gcloud logging read "logName : folders/FOLDER_ID/logs/cloudaudit.googleapis.com" --folder=FOLDER_ID
Чтобы прочитать записи журнала аудита на уровне организации, выполните следующую команду:
gcloud logging read "logName : organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com" --organization=ORGANIZATION_ID
Дополнительные сведения об использовании инструмента gcloud
см. в разделе Чтение записей журнала .
API
При построении запросов замените переменные допустимыми значениями, замените соответствующие имена или идентификаторы журнала аудита на уровне проекта, папки или организации, указанные в именах журналов аудита. Например, если ваш запрос включает PROJECT_ID , то идентификатор проекта, который вы указываете, должен относиться к выбранному в данный момент проекту Firebase.
Чтобы использовать API ведения журналов для просмотра записей журнала аудита, выполните следующие действия:
Перейдите к разделу «Попробуйте этот API» в документации по методу
entries.list
.Вставьте следующее в часть тела запроса формы «Попробуйте этот API» . Нажатие на эту предварительно заполненную форму автоматически заполняет тело запроса, но вам необходимо указать действительный
PROJECT_ID
в каждом имени журнала.{ "resourceNames": [ "projects/PROJECT_ID" ], "pageSize": 5, "filter": "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com" }
Нажмите «Выполнить» .
Дополнительные сведения о запросах см. в разделе Язык запросов ведения журнала .
Пример записи журнала аудита и способы поиска в нем наиболее важной информации см. в разделе Образец записи журнала аудита .
Маршрутизация журналов аудита
Вы можете направлять журналы аудита в поддерживаемые пункты назначения так же, как и другие виды журналов. Вот несколько причин, по которым вам может потребоваться маршрутизация журналов аудита:
Чтобы хранить журналы аудита в течение более длительного периода времени или использовать более мощные возможности поиска, вы можете направить копии своих журналов аудита в Google Cloud Storage, BigQuery или Google Cloud Pub/Sub. Используя Cloud Pub/Sub, вы можете направлять данные к другим приложениям, другим репозиториям и третьим лицам.
Чтобы управлять журналами аудита во всей организации, вы можете создать агрегированные приемники , которые могут маршрутизировать журналы из любого или всех проектов Firebase в организации.
- Если включенные журналы аудита доступа к данным перемещают ваши проекты Firebase за выделенные вами журналы, вы можете создать приемники, которые исключают журналы аудита доступа к данным из ведения журналов.
Инструкции по маршрутизации журналов см. в разделе Настройка приемников .
Цены
Журналы аудита активности администратора и журналы аудита системных событий предоставляются бесплатно.
Журналы аудита доступа к данным и журналы аудита «Отказано в доступе к данным» являются платными.
Дополнительную информацию о ценах на ведение журнала в облаке см. в разделе «Цены на пакет операций Google Cloud: ведение журнала в облаке» .