Buff Development
Журнал аудита

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

Кто, когда, откуда и что сделал в организации — включая отказы. Просмотр, фильтры, выгрузка и проверка целостности.

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

Не путайте с аудитом проекта: тот разбирает вашу кодовую базу, а журнал аудита фиксирует действия людей и системы в сервисе.

Журнал аудита: фильтры по периоду, исполнителю, результату и категориям; таблица «кто — что — откуда — результат».

Где найти

Настройки → выбрать организацию → раздел «Журнал аудита». Раздел есть у каждой организации отдельно: то, что вы видите, относится только к выбранной.

Кто видит

  • Владелец организации — всегда.
  • Участник с правом «Просматривать и выгружать журнал аудита» — это отдельное право, которое не входит ни в одну роль по умолчанию, даже в Maintainer: журнал содержит адреса и браузеры всех участников, поэтому доступ к нему выдаётся явно. Обычно его получает офицер безопасности или комплаенс-специалист — читать журнал он сможет, не становясь владельцем и не получая прав на задачи.

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

Что в записи

ПолеЧто означает
ВремяМомент события с точностью до микросекунды, в UTC; интерфейс показывает его в вашем часовом поясе.
КтоИсполнитель: логин участника, идентификатор коннектора, «оператор» (сотрудник платформы) или «система» (пайплайн).
СессияИдентификатор сессии, в которой действовал участник — по нему видно, что несколько действий сделаны в одном входе.
ОткудаIP-адрес и браузер (User-Agent) подключения, как их увидел наш периметр. Не со слов браузера: адрес подставляет наш сервер по входящему соединению, подделать его клиент не может.
СобытиеКод вида категория.действие (например, member.grant_set) и понятное описание («Изменены права участника alice»). Полный список — в каталоге событий.
ОбъектНа что направлено действие: задача #35, участник alice, репозиторий shop-web, коннектор.
ПроектПроект разработки, если действие относится к проекту.
ОперацияКласс действия: создание, изменение, удаление, доступ, аутентификация, передача, выполнение.
Важностьинфо → заметное → предупреждение → критичное. Отказ во входе — предупреждение; смена владельца или отзыв коннектора — критичное.
РезультатУспех или отказ; для отказа — причина в той формулировке, которую увидел человек.
ДеталиСтруктурированные параметры действия: какие права выданы, какое решение принято, сколько строк выгружено.
ХэшХэш записи и хэш предыдущей — звенья цепочки целостности.

Секреты в журнал не попадают. Сохранение токена репозитория записывается как факт («сохранены учётные данные репозитория shop-web»), но ни значение токена, ни его отпечаток в журнале нет. Учётные данные в адресах репозиториев вырезаются до записи.

Как читать

Раскройте строку — откроется полная запись: все поля из таблицы выше, детали в JSON и оба хэша.

Фильтры применяются на сервере, поэтому работают по всему журналу, а не по загруженной странице:

  • Период — «Сегодня», «7 дней», «30 дней», «Всё время» или две даты в формате дд.мм.гггг (границы включительно).
  • Исполнитель — список всех, кто когда-либо действовал в организации.
  • Результат — все, только успехи, только отказы. «Отказы» за неделю — самый быстрый способ увидеть, кто пытался сделать то, что ему не положено.
  • Категории — сессии и вход, участники и права, задачи, ревью, коннекторы и так далее; можно выбрать несколько.
  • Поиск — по описанию, объекту, исполнителю, коду события, адресу, причине отказа и деталям.

Журнал показывается страницами по сто записей; кнопка «Показать ещё» продолжает список до конца. Новые события появляются без перезагрузки.

Что записывается, а что нет

Записывается каждое действие — всё, что меняет состояние организации или касается входа, — и каждый отказ в таком действии. Полный перечень по категориям: Каталог событий.

Не записывается чтение: открытие задачи, просмотр диффа, список участников. Исключения из этого правила — действия над самим журналом: выгрузка и проверка целостности фиксируются всегда (как и попытка выгрузки без права). Не записываются и рутинные фоновые операции, если они прошли успешно: продление сессии, периодический отчёт коннектора; их отказы записываются, потому что отказ в продлении сессии — признак отозванного или украденного токена.

Действия пайплайна (задача закрыта, конфликт слияния, ревью готово, машина арендована) записываются как события системы. Действия оператора платформы над вашей организацией — пополнение и корректировка баланса, отключение коннектора — как события оператора: вы видите, что сделали с вами мы.

Хранение

Записи журнала не редактируются и не удаляются — ни пользователем, ни оператором. Журнал хранится всё время существования организации, без ограничения глубины: ни окна в 90 или 180 дней, ни лимита на количество записей. Каждая запись связана с предыдущей хэшем, поэтому вставить, изменить или убрать запись задним числом нельзя незаметно — см. Целостность.

Что дальше

On this page