Ведение журнала аудита для Firebase Cloud Messaging

На этой странице описаны журналы аудита, созданные Firebase как часть журналов аудита облака .

Обзор

Службы Firebase ведут журналы аудита, которые помогут вам ответить на вопросы: «Кто, где и когда что сделал?». Это журналы облачного аудита, предоставляемые как часть проекта Google Cloud Platform, связанного с вашим проектом Firebase .

Каждый из ваших проектов Firebase содержит только журналы аудита для ресурсов, которые находятся непосредственно в проекте.

Общий обзор журналов облачного аудита см. в разделе Обзор журналов облачного аудита . Более глубокое понимание формата журнала аудита см. в разделе Общие сведения о журналах аудита .

Доступные журналы аудита

Для консоли уведомлений Firebase доступны следующие типы журналов аудита:

  • Журналы аудита доступа к данным

    Включает операции «административного чтения», которые читают метаданные или информацию о конфигурации. Также включает операции «чтение данных» и «запись данных», которые считывают или записывают данные, предоставленные пользователем.

    Чтобы получать журналы аудита доступа к данным, необходимо явно включить их.

Более полное описание типов журналов аудита см. в разделе Типы журналов аудита .

Проверенные операции

Ниже приведены сведения о том, какие операции API соответствуют каждому типу журнала аудита в консоли уведомлений Firebase:

Категория журналов аудита Действия консоли уведомлений Firebase Введите имя (используется для поиска журналов в пользовательском интерфейсе)
Журналы доступа к данным (DATA_READ) Получить кампанию GetCampaign
Журналы доступа к данным (DATA_READ) Получение списка кампаний Список Кампаний
Журналы доступа к данным (DATA_READ) Получите информацию из уведомления об эксперименте ABT. LegacyGetRollout
Журналы доступа к данным (DATA_READ) Получите возможности таргетинга Получить аудитории
Журналы доступа к данным (DATA_READ) Получить статистику fcm (количество отправленных/открытых/доставленных/конвертированных) Получить FcmStats
Журналы доступа к данным (DATA_READ) Получите список меток аналитики для диапазона дат и проекта. GetAnalyticsLabelList
Журналы доступа к данным (DATA_WRITE) Создать развертывание из ABT LegacyCreateВнедрение

Формат журнала аудита

Записи журнала аудита включают следующие объекты:

  • Сама запись журнала, которая является объектом типа LogEntry . Полезные поля включают в себя следующее:

    • logName содержит идентификатор ресурса и тип журнала аудита.
    • resource содержит цель проверяемой операции.
    • timestamp содержит время проверяемой операции.
    • protoPayload содержит проверенную информацию.
  • Данные журнала аудита, которые представляют собой объект AuditLog , хранящийся в поле protoPayload записи журнала.

  • Необязательная информация аудита, специфичная для службы, которая является объектом, специфичным для службы. В более старых версиях интеграции этот объект хранится в поле serviceData объекта AuditLog ; более новые интеграции используют поле metadata .

Информацию о других полях в этих объектах и ​​о том, как их интерпретировать, см. в разделе Понимание журналов аудита .

Имя журнала

Названия ресурсов журналов аудита облака указывают на проект Firebase или другой объект GCP, которому принадлежат журналы аудита, а также на то, содержит ли журнал данные журнала действий администратора, доступа к данным, отказа в политике или системных событий. Например, ниже показаны имена журналов аудита действий администратора на уровне проекта и журналов аудита доступа к данным организации. Переменные обозначают идентификаторы проекта и организации Firebase.

projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity
organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fdata_access

Наименование услуги

В журналах аудита консоли уведомлений Firebase используется имя службы gcmcontextualcampaign-pa.googleapis.com .

Полный список всех имен служб Stackdriver Logging API и соответствующих им отслеживаемых типов ресурсов см. в разделе Сопоставление служб с ресурсами .

Типы ресурсов

Журналы аудита консоли уведомлений Firebase используют тип ресурса audited_resource для всех журналов аудита.

Список всех типов ресурсов, отслеживаемых Stackdriver Logging, и их описательную информацию см. в разделе «Типы отслеживаемых ресурсов» .

Включить ведение журнала аудита

Журналы аудита доступа к данным отключены по умолчанию и не записываются, если это явно не включено (исключением являются журналы аудита доступа к данным для BigQuery, которые невозможно отключить).

Инструкции по включению некоторых или всех журналов аудита доступа к данным см. в разделе Настройка журналов доступа к данным .

Разрешения и роли

Разрешения и роли Cloud IAM определяют вашу возможность доступа к данным журналов аудита в ресурсах GCP.

Принимая решение о том, какие разрешения и роли, связанные с ведением журнала , применимы к вашему варианту использования, учтите следующее:

  • Роль просмотра журналов ( 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

Вы можете просмотреть журналы аудита в Stackdriver Logging с помощью консоли GCP, инструмента командной строки gcloud или API ведения журналов.

Консоль

Вы можете использовать обозреватель журналов в консоли GCP, чтобы получить записи журнала аудита для вашего проекта, папки или организации Firebase:

  1. В консоли GCP перейдите на страницу «Ведение журналов» > «Обозреватель журналов» .

    Перейдите на страницу обозревателя журналов.

  2. На странице обозревателя журналов выберите существующий проект, папку или организацию Firebase.

  3. На панели «Конструктор запросов» выполните следующие действия:

    • В поле «Тип ресурса» выберите ресурс GCP, журналы аудита которого вы хотите просмотреть.

    • В поле «Имя журнала» выберите тип журнала аудита, который вы хотите видеть:

      • Для журналов аудита активности администратора выберите активность .
      • Для журналов аудита доступа к данным выберите data_access .
      • Для журналов аудита системных событий выберите system_event .
      • Для журналов аудита «Отказано в политике» выберите политику .

    Если вы не видите эти параметры, значит, в проекте, папке или организации Firebase нет журналов аудита этого типа.

    Дополнительные сведения о запросах с помощью обозревателя журналов см. в разделе Создание запросов к журналу .

gcloud

Инструмент командной строки gcloud предоставляет интерфейс командной строки для API ведения журнала Stackdriver. Укажите действительный 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 ведения журналов для просмотра записей журнала аудита, выполните следующие действия:

  1. Перейдите в раздел «Попробуйте этот API» в документации по методу entries.list .

  2. Вставьте следующее в часть тела запроса формы «Попробуйте этот API» . Нажатие на эту предварительно заполненную форму автоматически заполняет тело запроса, но вам необходимо указать действительный PROJECT_ID в каждом имени журнала.

    {
      "resourceNames": [
        "projects/PROJECT_ID"
      ],
      "pageSize": 5,
      "filter": "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com"
    }
    
  3. Нажмите «Выполнить» .

Дополнительные сведения о запросах см. в разделе Язык запросов ведения журнала .

Пример записи журнала аудита и способы поиска в нем наиболее важной информации см. в разделе Образец записи журнала аудита .

Маршрутизация журналов аудита

Вы можете направлять журналы аудита в поддерживаемые пункты назначения так же, как и другие виды журналов. Вот несколько причин, по которым вам может потребоваться маршрутизация журналов аудита:

  • Чтобы хранить журналы аудита в течение более длительного периода времени или использовать более мощные возможности поиска, вы можете направить копии своих журналов аудита в Google Cloud Storage, BigQuery или Google Cloud Pub/Sub. Используя Cloud Pub/Sub, вы можете направлять данные к другим приложениям, другим репозиториям и третьим лицам.

  • Чтобы управлять журналами аудита во всей организации, вы можете создать агрегированные приемники , которые могут маршрутизировать журналы из любого или всех проектов Firebase в организации.

  • Если включенные журналы аудита доступа к данным перемещают ваши проекты Firebase за выделенные вами журналы, вы можете создать приемники, которые исключают журналы аудита доступа к данным из ведения журналов.

Инструкции по маршрутизации журналов см. в разделе Настройка приемников .

Цены

Журналы аудита активности администратора и журналы аудита системных событий предоставляются бесплатно.

Журналы аудита доступа к данным и журналы аудита «Отказано в доступе к данным» являются платными.

Дополнительную информацию о ценах на ведение журнала Stackdriver см. в разделе «Цены на пакет операций Google Cloud: ведение журнала Stackdriver» .