Ведение журнала аудита для Firebase Data Connect

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

Обзор

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

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

Общий обзор журналов аудита в облаке см. в разделе «Обзор журналов аудита в облаке» . Более подробное понимание формата журналов аудита см. в разделе «Понимание журналов аудита» .

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

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

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

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

    Журналы аудита действий администратора отключить нельзя.

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

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

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

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

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

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

Тип разрешения Методы
ADMIN_READ google.firebase.dataconnect.v1.FirebaseDataConnect.GetConnector
google.firebase.dataconnect.v1.FirebaseDataConnect.GetSchema
google.firebase.dataconnect.v1.FirebaseDataConnect.GetService
google.firebase.dataconnect.v1.FirebaseDataConnect.ListConnectors
google.firebase.dataconnect.v1.FirebaseDataConnect.ListSchemas
google.firebase.dataconnect.v1.FirebaseDataConnect.ListServices
google.firebase.dataconnect.v1alpha.FirebaseDataConnect.GetConnector
google.firebase.dataconnect.v1alpha.FirebaseDataConnect.GetSchema
google.firebase.dataconnect.v1alpha.FirebaseDataConnect.GetService
google.firebase.dataconnect.v1alpha.FirebaseDataConnect.ListConnectors
google.firebase.dataconnect.v1alpha.FirebaseDataConnect.ListSchemas
google.firebase.dataconnect.v1alpha.FirebaseDataConnect.ListServices
google.firebase.dataconnect.v1beta.FirebaseDataConnect.GetConnector
google.firebase.dataconnect.v1beta.FirebaseDataConnect.GetSchema
google.firebase.dataconnect.v1beta.FirebaseDataConnect.GetService
google.firebase.dataconnect.v1beta.FirebaseDataConnect.ListConnectors
google.firebase.dataconnect.v1beta.FirebaseDataConnect.ListSchemas
google.firebase.dataconnect.v1beta.FirebaseDataConnect.ListServices
ADMIN_WRITE google.firebase.dataconnect.v1.FirebaseDataConnect.CreateConnector
google.firebase.dataconnect.v1.FirebaseDataConnect.CreateSchema
google.firebase.dataconnect.v1.FirebaseDataConnect.CreateService
google.firebase.dataconnect.v1.FirebaseDataConnect.DeleteConnector
google.firebase.dataconnect.v1.FirebaseDataConnect.DeleteSchema
google.firebase.dataconnect.v1.FirebaseDataConnect.DeleteService
google.firebase.dataconnect.v1.FirebaseDataConnect.UpdateConnector
google.firebase.dataconnect.v1.FirebaseDataConnect.UpdateSchema
google.firebase.dataconnect.v1.FirebaseDataConnect.UpdateService
google.firebase.dataconnect.v1alpha.FirebaseDataConnect.CreateConnector
google.firebase.dataconnect.v1alpha.FirebaseDataConnect.CreateSchema
google.firebase.dataconnect.v1alpha.FirebaseDataConnect.CreateService
google.firebase.dataconnect.v1alpha.FirebaseDataConnect.DeleteConnector
google.firebase.dataconnect.v1alpha.FirebaseDataConnect.DeleteSchema
google.firebase.dataconnect.v1alpha.FirebaseDataConnect.DeleteService
google.firebase.dataconnect.v1alpha.FirebaseDataConnect.UpdateConnector
google.firebase.dataconnect.v1alpha.FirebaseDataConnect.UpdateSchema
google.firebase.dataconnect.v1alpha.FirebaseDataConnect.UpdateService
google.firebase.dataconnect.v1beta.FirebaseDataConnect.CreateConnector
google.firebase.dataconnect.v1beta.FirebaseDataConnect.CreateSchema
google.firebase.dataconnect.v1beta.FirebaseDataConnect.CreateService
google.firebase.dataconnect.v1beta.FirebaseDataConnect.DeleteConnector
google.firebase.dataconnect.v1beta.FirebaseDataConnect.DeleteSchema
google.firebase.dataconnect.v1beta.FirebaseDataConnect.DeleteService
google.firebase.dataconnect.v1beta.FirebaseDataConnect.UpdateConnector
google.firebase.dataconnect.v1beta.FirebaseDataConnect.UpdateSchema
google.firebase.dataconnect.v1beta.FirebaseDataConnect.UpdateService
DATA_READ google.firebase.dataconnect.v1.GraphqlService.ExecuteGraphqlRead
google.firebase.dataconnect.v1alpha.GraphqlService.ExecuteGraphqlRead
google.firebase.dataconnect.v1beta.GraphqlService.ExecuteGraphqlRead
DATA_WRITE google.firebase.dataconnect.v1.GraphqlService.ExecuteGraphql
google.firebase.dataconnect.v1alpha.GraphqlService.ExecuteGraphql
google.firebase.dataconnect.v1beta.GraphqlService.ExecuteGraphql

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

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

  • Сама запись журнала, представляющая собой объект типа 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 Data Connect используют имя службы firebasedataconnect.googleapis.com .

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

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

Журналы аудита Firebase Data Connect используют тип ресурса 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 Logging.

Консоль

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

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

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

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

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

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

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

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

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

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

gcloud

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

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

Цены

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

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

Дополнительную информацию о ценах на Cloud Logging см. на странице цен на операционный пакет Google Cloud: Cloud Logging .