Трейл
Трейл — это ресурс Audit Trails, который собирает аудитные логи ресурсов Yandex Cloud и записывает их в бакет Object Storage, лог-группу Cloud Logging или поток данных Data Streams.
Сбор и фильтрация событий
При создании или изменении трейла можно выбрать, какие события он будет записывать в объект назначения.
Область сбора
Область сбора определяет, откуда трейл получает события:
- организация — из всех или выбранных облаков текущей организации;
- облако — из всех или выбранных каталогов текущего облака;
- каталог — из текущего каталога.
Новые ресурсы в выбранной области включаются в сбор автоматически. К их событиям применяются те же условия отбора.
Сбор событий уровня конфигурации
События уровня конфигурации — действия по настройке облачных ресурсов, например создание ВМ или удаление кластера баз данных.
Для этого уровня задается только область сбора. В ней автоматически собираются события всех поддерживаемых сервисов без выбора сервисов и имен событий. Сбор можно включить или отключить целиком.
Сбор событий уровня сервисов
Для событий уровня сервисов выбираются сервисы, а для каждого из них — область сбора и условия отбора событий. Сбор можно отключить для всех или отдельных сервисов.
Доступны три варианта отбора событий:
- Получать все — все события, включая те, которые будут добавлены в будущем.
- Выбранные (
included_events) — только события с указанными именами. Список имен не пополняется автоматически. - Исключить (
excluded_events) — все события, кроме указанных. Новые события будут собираться автоматически.
В одном фильтре имена событий можно указать только в одном из блоков: included_events или excluded_events. Если ни один из блоков не задан, собираются все события сервиса с учетом остальных условий фильтра.
Имена событий приведены в справочнике событий уровня сервисов. В CLI, Terraform и API используйте полное имя из поля event_type аудитного лога, например yandex.cloud.audit.iam.CreateIamToken.
Условия по значениям полей
Через CLI, Terraform и API фильтр событий уровня сервисов можно дополнить условиями по значениям полей, например исключить события определенного пользователя. Эти условия действуют вместе с выбором области сбора и имен событий.
Правила фильтрации можно задать в одном или обоих блоках:
include_rules— какие события записывать;exclude_rules— какие события отбрасывать.
Одно правило — это блок conditions с набором условий. Правило срабатывает, если выполнены все его условия (логическое «И»). Если в include_rules или exclude_rules задано несколько правил, достаточно, чтобы сработало хотя бы одно из них (логическое «ИЛИ»).
Каждое условие содержит:
field— путь от корня события ($) к скалярному значению. Например:$.details.bucket_id,$.details.user.groups[0]или$.details.items[2].metadata['name']. Индексы массивов начинаются с нуля.operator— оператор сравнения:IN— значение поля совпадает с одним из значений в спискеvalues.IP_IN— IP-адрес из поля входит в одну из подсетей, указанных вvaluesв формате CIDR.
values— список, содержащий от одного до 64 значений. Значения задаются строками, в том числе для числовых и логических полей.
В правиле может быть от одного до 64 условий, в каждом списке — до 64 правил.
Состав полей приведен в справочнике зависит от типа события и приведен в справочнике, например для ObjectCreate. Поля request_parameters и response и их содержимое недоступны для фильтрации.
Имена и регистр ключей в пути должны совпадать с фактическим JSON аудитного лога. Например, используйте $.event_type и $.request_metadata.remote_address, хотя в справочнике эти поля называются eventType и requestMetadata.remoteAddress.
Пример структуры фильтра:
include_rules: # Включение событий; для исключения используйте exclude_rules
- conditions: # Правило 1: условие 1 И условие 2
- field: "<путь_к_полю_1>"
operator: IN
values: ["<значение_1>", "<значение_2>"]
- field: "<путь_к_полю_2>"
operator: IP_IN
values: ["<подсеть_в_cidr>"]
- conditions: # ИЛИ правило 2
- field: "<путь_к_полю_3>"
operator: IN
values: ["<значение_3>"]
Примеры фильтров приведены в разделе Фильтрация по значениям полей.
Предустановленные события
При создании трейла в консоли управления
Сервисы, для которых включена отправка событий по умолчанию:
|
Сервис |
События |
|
Все события |
|
|
Все события |
|
|
Все события |
|
|
Все события |
|
|
|
|
Объект назначения
Каждый трейл загружает аудитные логи только в один объект назначения: бакет, лог-группу или поток данных.
|
Назначение |
Когда использовать |
Задержка |
Формат |
|
Бакет Object Storage |
Долгосрочное хранение, соответствие требованиям |
5 мин |
Массив JSON |
|
Лог-группа Cloud Logging |
Мониторинг в реальном времени |
секунды |
Поток записей Cloud Logging: одно событие Audit Trails соответствует одной записи Cloud Logging |
|
Поток данных Data Streams |
Интеграция с SIEM, аналитика |
секунды |
Поток JSON-объектов |
Каждый объект назначения имеет свои преимущества:
- Object Storage — позволяет долговременно хранить большие объемы данных для дальнейшей обработки.
- Cloud Logging — помогает реагировать на события и анализировать логи в реальном времени.
- Data Streams — позволяет передавать данные в другие сервисы и системы с помощью потоковой передачи.
При загрузке аудитных логов в бакет Audit Trails формирует файлы приблизительно раз в 5 минут. В один или несколько файлов попадут события из выбранной области сбора, которые прошли фильтрацию. Если за этот период подходящих событий не будет, файлы не сформируются.
В лог-группу и поток данных Audit Trails загружает аудитные логи в режиме, близком к реальному времени.
От типа объекта назначения зависит структура и содержимое сообщения, в котором Audit Trails передает аудитные логи:
- для бакета — в файле находится массив JSON-объектов аудитного лога;
- для лог-группы — в сообщении находится только один JSON-объект аудитного лога;
- для потока данных — в поток передаются сообщения, содержащие JSON-объекты аудитного лога.
Примечание
При смене объекта назначения в существующем трейле часть событий может быть потеряна. Чтобы избежать потери данных, для каждого объекта создавайте свой трейл.
Каждый трейл действует независимо от других трейлов. Используя несколько трейлов, можно разграничивать доступ к разным группам логов для пользователей и сервисов в соответствии с требованиями политики ИБ.
Настройки трейла
В консоли управления доступны следующие настройки трейла:
- Имя — обязательный параметр.
- Описание — опциональный параметр.
- Блок Назначение:
- Назначение — значения
Object Storage,Cloud LoggingилиData Streams. - Для значения
Object Storage:- Бакет — бакет.
- Префикс объекта — необязательный параметр, участвует в полном имени файла аудитного лога.
- Ключ шифрования — симметричный ключ шифрования Yandex Key Management Service, которым будет зашифрован бакет.
- Для значения
Cloud Logging:- Лог-группа — лог-группа.
- Для значения
Data Streams:-
Поток данных — поток данных.
-
Кодек — метод сжатия событий при записи в поток данных Data Streams.
Если скорость записи потока событий в Data Streams более 1 МБ/с, включите сжатие. Это сократит объем передаваемых данных, снизит риск перегрузки (троттлинга
) отдельных сегментов YDS и повысит эффективность использования пропускной способности потока.Настройка сжатия доступна при создании или изменении трейла через интерфейсы CLI, API или Terraform. Можно указать метод сжатия
GZIP(GNU Zip ) илиZSTD(Zstandard ). По умолчанию сжатия нет (RAW).Чтобы читать данные через собственный протокол YDS, дополнительно включите сжатие на читателе YDS. Протоколы HTTP Kinesis и Apache Kafka® пока не поддерживаются.
-
- Назначение — значения
- Блок Сервисный аккаунт — сервисный аккаунт, от имени которого будет выполняться загрузка аудитных логов в бакет, лог-группу или поток данных. Если аккаунту нужны дополнительные роли, появится предупреждение с перечнем ролей.
- Блок Сбор логов с управляющего слоя:
- Статус — включение и выключение сбора аудитных логов уровня конфигурации.
- Ресурс — значения
Организация,ОблакоилиКаталог. - Для значения
Организация:- Организация – имя текущей организации. Значение подставляется автоматически.
- Для значения
Облако:- Облако — имя облака, в котором находится текущий трейл. Значение подставляется автоматически.
- Каталог — каталоги, для ресурсов в которых трейл будет собирать аудитные логи уровня конфигурации. Если не указать ни один каталог, то трейл будет собирать аудитные логи всех ресурсов в облаке.
- Для параметра
Каталог:- Каталог — имя каталога, в котором находится трейл. Значение подставляется автоматически.
- Блок Сбор логов со слоя данных:
- Статус — включение и выключение сбора аудитных логов уровня сервисов.
- Список сервисов, для каждого из которых отдельно настраивается:
Примеры использования
- Поиск событий в аудитных логах
- Настройка дашбордов и алертов в Yandex Monitoring
- Настройка реагирования в Yandex Cloud Logging и Yandex Cloud Functions
- Обработка аудитных логов Yandex Audit Trails
- Загрузка аудитных логов в MaxPatrol SIEM
- Загрузка аудитных логов в SIEM Splunk
- Загрузка аудитных логов в SIEM ArcSight
- Загрузка аудитных логов в SIEM KUMA с помощью консоли управления, CLI или API
Что дальше
- Узнайте о формате аудитных логов.
- Ознакомьтесь с логами диагностики трейла.
- Узнайте о событиях.