Перейти к основному содержимому

Журнал аудита dbt

Для просмотра действий, выполняемых пользователями в вашем аккаунте, dbt предоставляет журналы аудируемых пользовательских и системных событий в реальном времени. Журнал аудита пополняется по мере возникновения событий и содержит такие сведения, как кто выполнил действие, что это было за действие и когда оно было выполнено. Вы можете использовать эти сведения для устранения проблем с доступом, проведения аудита безопасности или анализа конкретных событий. Вы также можете запрашивать и экспортировать события журнала аудита через API.

Для доступа к журналу аудита необходимо иметь роль Администратор аккаунта, Наблюдатель аккаунта или Администратор безопасности, а сама функция доступна только на тарифных планах Enterprise.

Журнал аудита dbt хранит все события, произошедшие в вашем аккаунте, в реальном времени, включая:

  • Для событий за последние 90 дней журнал аудита dbt предоставляет выбираемый диапазон дат со списком сработавших событий.
  • Для событий старше 90 дней Администраторы аккаунта, Наблюдатели аккаунта и Администраторы безопасности могут экспортировать все события с помощью Экспортировать все.

Обратите внимание, что срок хранения событий в журнале аудита составляет не менее 12 месяцев.

Доступ к журналу аудита​

Чтобы открыть журнал аудита, нажмите на имя вашей учетной записи в левом меню и выберите Account settings. Затем нажмите Audit log в левой боковой панели.

Понимание журнала аудита​

На странице журнала аудита вы увидите список различных событий и связанных с ними данных. Для каждого из этих событий в dbt отображается следующая информация:

  • Название события: Действие, которое было инициировано
  • Инициатор: Пользователь, инициировавший это действие/событие
  • Метка времени: Локальная метка времени возникновения события

Детали события​

Нажмите на карточку события, чтобы просмотреть сведения о действии, вызвавшем событие. В этом представлении содержатся важные сведения, в том числе о том, когда это произошло и какой тип события был инициирован. Например, если кто-то изменит настройки задания, вы можете использовать сведения о событии, чтобы узнать, какое задание было изменено (тип события: job_definition.changed), кем (пользователь, инициировавший событие: actor) и когда (время возникновения события: created_at). Типы событий и их описания приведены в разделе События в журнале аудита.

Детали события включают ключевые параметры события:

НазваниеОписание
account_idID учетной записи, в которой произошло событие
actorИсполнитель события — пользователь или сервис
actor_idУникальный ID исполнителя
actor_ipIP-адрес исполнителя
actor_nameИдентифицирующее имя исполнителя
actor_typeБыло ли действие выполнено пользователем или API-запросом
created_atВременная метка UTC, когда произошло событие
event_typeУникальный ключ, идентифицирующий событие
event_contextЗначение этого ключа отличается для каждого события и соответствует event_type. Эти данные содержат все детали об объекте (или объектах), которые были изменены
idУникальный ID события
serviceСервис, который выполнил действие
sourceИсточник события — UI dbt или API

События журнала аудита​

Журнал аудита поддерживает различные события для разных объектов в dbt. Здесь вы найдете события, связанные с аутентификацией, окружениями, заданиями, сервисными токенами, группами, пользователями, проектами, правами доступа, лицензиями, подключениями, репозиториями и учетными данными.

Аутентификация​

Название событияТип событияОписание
Токен доступа выданaccess_token.issueddbt выдал токен доступа после входа через OAuth (например, расширение VS Code или сервер Model Context Protocol (MCP)).
Auth Provider Changedauth_provider.changedИзменены настройки провайдера аутентификации
Credential Login Succeededlogin.password.succeededПользователь успешно вошел с логином и паролем
Токен обновления выданrefresh_token.issueddbt выдал токен обновления после входа через OAuth (например, расширение VS Code или сервер MCP).
Ошибка входа через SSOlogin.sso.failedПользователю не удалось войти через SSO
Успешный вход через SSOlogin.sso.succeededПользователь успешно вошел через SSO

Клиенты OAuth​

Эти события охватывают жизненный цикл клиентов OAuth, зарегистрированных в разделе Настройки аккаунта → Интеграции → Интеграции приложений (см. Подключение приложений с помощью OAuth). Действия, которые пользователь выполняет через клиент, подключенный по OAuth (например, создание задания), регистрируются как соответствующее событие (например, job_definition.added), а пользователь указывается в качестве инициатора.

Название событияТип событияОписание
Авторизация клиента одобренаoauth_client.authorization_approvedПользователь одобрил запрос согласия OAuth для клиента.
Авторизация клиента отклоненаoauth_client.authorization_deniedПользователь отклонил запрос согласия OAuth для клиента.
Клиент авторизованoauth_client.authorizedПользователь завершил процедуру предоставления согласия OAuth и разрешил клиенту доступ к dbt от своего имени.
Клиент зарегистрированoauth_client.registeredКлиент OAuth был зарегистрирован вручную администратором или динамически через RFC 7591.
Клиент удаленoauth_client.removedКлиент OAuth был удален из раздела Настройки аккаунта → Интеграции → Интеграции приложений.

Среда​

Название событияТип событияОписание
Environment Addedenvironment.addedНовое окружение успешно создано
Environment Changedenvironment.changedИзменены настройки окружения
Environment Removedenvironment.removedОкружение успешно удалено

Задания​

Название событияТип событияОписание
Job Addedjob_definition.addedНовое задание успешно создано
Job Changedjob_definition.changedИзменены настройки задания
Job Removedjob_definition.removedОпределение задания удалено

Сервисный токен​

Название событияТип событияОписание
Service Token Createdservice_token.createdНовый Service Token успешно создан
Service Token Revokedservice_token.revokedService Token был отозван

Группа​

Название событияТип событияОписание
Group Addedgroup.addedНовая группа успешно создана
Group Changedgroup.changedИзменены настройки группы
Group Removedgroup.removedГруппа успешно удалена

Пользователь​

Название событияТип событияОписание
Invite Addeduser.invite.addedПриглашение пользователя добавлено и отправлено
Invite Redeemeduser.invite.redeemedПользователь принял приглашение
User Added to Accountuser.addedНовый пользователь добавлен в учетную запись
User Added to Groupgroup.user.addedСуществующий пользователь добавлен в группу
User Removed from Accountuser.removedПользователь удален из учетной записи
User Removed from Groupgroup.user.removedСуществующий пользователь удален из группы
User License Createduser_license.addedИспользована новая пользовательская лицензия
User License Removeduser_license.removedПользовательская лицензия удалена из количества мест
Verification Email Confirmeduser.jit.email.confirmedПользователь подтвердил адрес электронной почты
Письмо для подтверждения отправленоuser.jit.email.sentПисьмо для подтверждения адреса электронной почты отправлено пользователю, созданному через JIT

Проект​

Название событияТип событияОписание
Project Addedproject.addedДобавлен новый проект
Project Changedproject.changedИзменены настройки проекта
Project Removedproject.removedПроект удален

Разрешения​

Название событияТип событияОписание
User Permission Addedpermission.addedДобавлены новые права пользователя
User Permission Removedpermission.removedПрава пользователя удалены

Лицензия​

Название событияТип событияОписание
License Mapping Addedlicense_map.addedДобавлено новое сопоставление пользовательской лицензии
License Mapping Changedlicense_map.changedИзменены настройки сопоставления лицензии
License Mapping Removedlicense_map.removedСопоставление лицензии удалено

Подключение​

Название событияТип событияОписание
Connection Addedconnection.addedДобавлено новое подключение к хранилищу данных
Connection Changedconnection.changedИзменены настройки подключения к хранилищу данных
Connection Removedconnection.removedПодключение к хранилищу данных удалено

Репозиторий​

Название событияТип событияОписание
Repository Addedrepository.addedДобавлен новый репозиторий
Repository Changedrepository.changedИзменены настройки репозитория
Repository Removedrepository.removedРепозиторий удален

Учётные данные​

Название событияТип событияОписание
Credentials Added to Projectcredentials.addedУчетные данные добавлены в проект
Credentials Changed in Projectcredentials.changedУчетные данные изменены в проекте
Credentials Removed from Projectcredentials.removedУчетные данные удалены из проекта

Интеграция с Git​

Название событияТип событияОписание
GitLab Application Changedgitlab_application.changedИзменена конфигурация GitLab в dbt

Вебхуки​

Название событияТип событияОписание
Webhook Subscriptions Addedwebhook_subscription.addedНовый webhook настроен в параметрах
Webhook Subscriptions Changedwebhook_subscription.changedИзменена существующая конфигурация webhook
Webhook Subscriptions Removedwebhook_subscription.removedСуществующий webhook удален

Семантический слой​

Название событияТип событияОписание
Конфигурация Semantic Layer добавленаsemantic_layer_config.addedКонфигурация Semantic Layer добавлена
Конфигурация Semantic Layer измененаsemantic_layer_config.changedКонфигурация Semantic Layer (не связанная с учетными данными) изменена
Конфигурация Semantic Layer удаленаsemantic_layer_config.removedКонфигурация Semantic Layer удалена
Учетные данные Semantic Layer добавленыsemantic_layer_credentials.addedУчетные данные Semantic Layer добавлены
Учетные данные Semantic Layer измененыsemantic_layer_credentials.changedУчетные данные Semantic Layer изменены. Не вызывает semantic_layer_config.changed
Учетные данные Semantic Layer удаленыsemantic_layer_credentials.removedУчетные данные Semantic Layer удалены

Расширенные атрибуты​

Название событияТип событияОписание
Extended Attribute Addedextended_attributes.addedРасширенный атрибут добавлен в проект
Extended Attribute Changedextended_attributes.changedРасширенный атрибут изменен или удален

Персональный токен доступа на уровне аккаунта​

Название событияТип событияОписание
Account Scoped Personal Access Token Createdaccount_scoped_pat.createdСоздан PAT с областью действия на уровне аккаунта
Account Scoped Personal Access Token Deletedaccount_scoped_pat.deletedPAT с областью действия на уровне аккаунта удален

Ограничения по IP​

Название событияТип событияОписание
IP Restrictions Toggledip_restrictions.toggledФункция IP-ограничений включена или отключена
IP Restrictions Rule Addedip_restrictions.rule.addedСоздано правило IP-ограничений
IP Restrictions Rule Changedip_restrictions.rule.changedОтредактировано правило IP-ограничений
IP Restrictions Rule Removedip_restrictions.rule.removedПравило IP-ограничений удалено

SCIM​

Название событияТип событияОписание
User Creationv1.events.account.UserAddedНовый пользователь создан сервисом SCIM
Обновление пользователяv1.events.account.UserUpdatedЗапись пользователя обновлена службой SCIM
Удаление пользователяv1.events.account.UserRemovedПользователь удален службой SCIM
Group Creationv1.events.user_group.AddedНовая группа создана сервисом SCIM
Group Updatev1.events.user_group_user.ChangedСостав группы обновлен сервисом SCIM
Group Removalv1.events.user_group.RemovedГруппа удалена сервисом SCIM

Поиск в журнале аудита​

Вы можете искать в журнале аудита конкретное событие или инициатора, при этом поиск ограничен событиями и инициаторами, перечисленными в разделе События в журнале аудита. Журнал аудита содержит историю событий за последние 90 дней. Вы можете найти инициатора или событие с помощью строки поиска, а затем сузить результаты, указав временной интервал.

Используйте строку поиска для поиска содержимого в журнале аудитаИспользуйте строку поиска для поиска содержимого в журнале аудита

Экспорт журналов​

Вы можете использовать журнал аудита для экспорта всех исторических результатов аудита в целях безопасности, соответствия требованиям и анализа. События в журнале аудита хранятся не менее 12 месяцев.

  • Для событий за последние 90 дней: dbt автоматически отобразит доступный для выбора диапазон дат за 90 дней. Выберите Экспортировать выбранное, чтобы скачать CSV-файл со всеми событиями, произошедшими в вашем аккаунте за последние 90 дней.

  • Для событий старше 90 дней: Выберите Экспортировать все. Администратор аккаунта, Наблюдатель аккаунта или Администратор безопасности получит по электронной почте ссылку для скачивания CSV-файла со всеми событиями, произошедшими в вашем аккаунте.

Просмотр вариантов экспорта журнала аудитаПросмотр вариантов экспорта журнала аудита

Использование API​

Вы также можете запрашивать и экспортировать события журнала аудита с помощью API администрирования v3. Используйте API, если вам нужно получать данные аудита для скрипта, задания по расписанию или инструментов мониторинга безопасности или агрегации журналов. К API применяются те же требования к доступу, которые указаны в начале этой страницы. Типовые подходы к автоматизации описаны в разделе Типовые сценарии автоматизации.

Если вы хотите…См. раздел
Получать недавние события для скрипта или SIEMЗапрос событий
Экспортировать диапазон дат в CSVСкачивание CSV
Экспортировать всю историюМассовый экспорт

Для аутентификации используйте сервисный токен или персональный токен доступа, передаваемый как Authorization: Bearer YOUR_TOKEN или Token YOUR_TOKEN.

Для массового экспорта требуется персональный токен доступа, поскольку сервисные токены на этом этапе не поддерживаются.

Если параметры дат не указаны, запросы на получение списка и скачивание CSV по умолчанию охватывают последние 90 дней.

В следующих примерах замените YOUR_ACCESS_URL на ваш URL доступа к dbt, ACCOUNT_ID на идентификатор вашего аккаунта, а YOUR_TOKEN на ваш токен. Идентификатор аккаунта можно найти в разделе Настройки аккаунта, а дополнительную информацию — в разделе Поиск идентификаторов пользователя и аккаунта.

Запрос событий​

Чтобы получить события журнала аудита в формате JSON, отправьте запрос GET на /api/v3/accounts/ACCOUNT_ID/audit-logs/:

curl --request GET \
--url 'https://YOUR_ACCESS_URL/api/v3/accounts/ACCOUNT_ID/audit-logs/?logged_at_start=2024-01-01&logged_at_end=2024-01-31&limit=10&offset=0' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_TOKEN'

Ответ содержит массив событий data с такими сведениями, как event_type, event_label, actor, created_at и event_context. Используйте logged_at_start и logged_at_end для фильтрации по диапазону дат, а limit и offset для постраничного просмотра результатов. Дополнительные параметры приведены в разделе Список недавних событий журнала аудита справочника API.

Скачивание CSV​

Чтобы скачать события журнала аудита в виде CSV-файла, отправьте запрос GET на /api/v3/accounts/ACCOUNT_ID/audit-logs/download/. Это эквивалент действия Экспортировать выбранное в пользовательском интерфейсе через API:

curl --request GET \
--url 'https://YOUR_ACCESS_URL/api/v3/accounts/ACCOUNT_ID/audit-logs/download/?logged_at_start=2024-01-01&logged_at_end=2024-01-31' \
--header 'Authorization: Bearer YOUR_TOKEN' \
--output audit-log.csv

Вы можете использовать те же параметры запроса logged_at_start и logged_at_end, что и для конечной точки получения списка.

Массовый экспорт​

Чтобы экспортировать всю историю журнала аудита через API, используйте ту же последовательность действий, что и для Экспортировать все в пользовательском интерфейсе:

  1. Отправьте запрос на экспорт методом POST на /api/v3/accounts/ACCOUNT_ID/audit-logs/export/. В ответе возвращается job_id в объекте data (data.job_id). На этом этапе используйте персональный токен доступа.
curl --request POST \
--url 'https://YOUR_ACCESS_URL/api/v3/accounts/ACCOUNT_ID/audit-logs/export/' \
--header 'Authorization: Bearer YOUR_TOKEN'
  1. Проверьте статус экспорта с помощью GET на /api/v3/accounts/ACCOUNT_ID/audit-logs/export/. Повторяйте этот запрос, пока значение is_running в объекте data не станет false.
curl --request GET \
--url 'https://YOUR_ACCESS_URL/api/v3/accounts/ACCOUNT_ID/audit-logs/export/' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_TOKEN'
  1. Получите URL для скачивания с помощью GET на /api/v3/accounts/ACCOUNT_ID/audit-logs/export/JOB_ID/download/. Ответ содержит download_url в объекте data (data.download_url). Используйте job_id из шага 1 в качестве JOB_ID в URL.
curl --request GET \
--url 'https://YOUR_ACCESS_URL/api/v3/accounts/ACCOUNT_ID/audit-logs/export/JOB_ID/download/' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_TOKEN'
  1. Скачайте CSV-файл по адресу download_url, полученному на шаге 3 (data.download_url):
curl --request GET \
--url 'DOWNLOAD_URL' \
--output audit-log-full.csv

Типовые сценарии автоматизации​

Команды часто автоматизируют доступ к журналу аудита несколькими способами:

  • Получение новых событий по расписанию: Вызывайте конечную точку получения списка по расписанию с параметрами logged_at_start и logged_at_end, чтобы получать новые события с момента последнего запуска, а затем загружайте JSON в инструменты мониторинга безопасности или агрегации журналов.
  • Периодический экспорт CSV: Используйте конечную точку скачивания для экспорта диапазона дат в CSV для архивирования в целях соблюдения нормативных требований или анализа.
  • Экспорт всей истории: Используйте процедуру массового экспорта, когда требуется программно получить всю историю журнала аудита, аналогично действию Экспортировать все в пользовательском интерфейсе.

Подробные сведения о конечных точках приведены в справочнике API администрирования v3.

Нашли ошибку?

0
Loading