Перейти к основному содержимому
Версия: 4.6.X

Загрузка аудитных логов из Object Storage в KOMRAD

Настройте выгрузку аудитных (и иных write-once) журналов в бакет S3-совместимого Object Storage и непрерывную доставку событий в SIEM KOMRAD через файловый коллектор (протокол S3).

Коллектор KOMRAD обращается к API хранилища напрямую: промежуточная синхронизация бакета на локальный диск не нужна.

Схема решения

  1. Трейл аудита (или приложение) записывает готовые объекты в бакет Object Storage.
  2. Файловый коллектор KOMRAD с источником типа S3 периодически опрашивает бакет (ListObjects), читает новые ключи (GetObject), при необходимости распаковывает gzip/zstd.
  3. Строки журнала уходят в шину событий KOMRAD и доступны в разделе События.
Audit Trails / приложение
│ PutObject

┌────────────────────┐
│ Object Storage │
│ (бакет + префикс) │
└─────────┬──────────┘
│ ListObjects / GetObject

┌────────────────────┐
│ komrad-file- │
│ collector (S3) │
└─────────┬──────────┘
│ события

SIEM KOMRAD

Перед началом работы

  • Развёрнут KOMRAD и установлен файловый коллектор; коллектор виден в Управление → Настройки коллекторов.
  • С узла коллектора есть HTTPS-доступ до endpoint Object Storage.
  • Для сценария Yandex Cloud: каталог, платежный аккаунт и права на создание бакета, сервисных аккаунтов, ключей KMS (опционально) и трейла Audit Trails.

Платные ресурсы (Yandex Cloud)

В стоимость инфраструктуры на стороне облака обычно входят:

  • хранение и операции Object Storage;
  • ключи Key Management Service (если включено шифрование бакета);
  • Compute Cloud — только если вы размещаете сам komrad-file-collector на ВМ в облаке (коллектор может работать и на on-prem узле).

Совместимые хранилища

ПровайдерПродуктСправка
Yandex CloudObject StorageДокументация
SelectelОбъектное хранилищеselectel.ru/services/cloud/storage
VK CloudObject Storagecloud.vk.com/storage
Cloud.ruEvolution Object Storagecloud.ru/products/evolution-object-storage
On-premCeph RGW, SeaweedFS, Garage, RustFS и др.S3 API + статические ключи

Типовые endpoint (уточняйте в консоли провайдера):

ПровайдерEndpoint (пример)Регион (пример)
Yandex Object Storagestorage.yandexcloud.netru-central1
Selectels3.ru-1.storage.selcloud.ruпул ru-1
VK Cloud (Москва)hb.ru-msk.vkcloud-storage.ruru-msk
Cloud.rus3.cloud.ruпо документации сервиса
О MinIO

Open-source MinIO фактически не развивается в прежнем режиме; для ряда сборок известны уязвимости. Для новых внедрений предпочтительны облачный Object Storage или сопровождаемые open-source варианты (SeaweedFS, Garage, RustFS). Legacy-стенды на MinIO могут работать с коллектором, но требуют оценки рисков и плана миграции.

Ниже — полный сценарий для Yandex Cloud. Для Selectel, VK Cloud и Cloud.ru в KOMRAD выполняются те же шаги: меняются только создание бакета/ключей в консоли провайдера и значения endpoint/региона.


1. Подготовьте бакет Object Storage

  1. В консоли Yandex Cloud откройте сервис Object Storage.
  2. Создайте бакет (инструкция):
    • имя по правилам именования;
    • доступ на чтение объектов и списка — с авторизацией;
    • класс хранилища — по политике хранения аудита.
  3. (Рекомендуется) Включите шифрование бакета ключом KMS.

2. Создайте сервисные аккаунты и статический ключ

Понадобятся:

  • сервисный аккаунт для трейла — запись аудитных объектов в бакет;
  • сервисный аккаунт для KOMRAD — только чтение бакета (или один аккаунт с разделёнными ролями по принципу наименьших привилегий).
  1. Создайте сервисные аккаунты в IAM.
  2. Для аккаунта KOMRAD создайте статический ключ доступа. Сохраните key_id и secret — секрет повторно не показывается.
  3. Назначьте роли (актуальный перечень — в документации Yandex Cloud):
АккаунтНазначениеТиповые роли
Трейлчитать аудит, писать в бакет, при шифровании — KMSaudit-trails.viewer, storage.uploader, при необходимости kms.keys.encrypterDecrypter
KOMRADчитать объекты и списокstorage.viewer (на бакет/каталог), при шифровании — kms.keys.encrypterDecrypter

Справка: роли Audit Trails, роли Object Storage.

3. Создайте трейл Audit Trails

  1. Откройте сервис Audit TrailsСоздать трейл (создание трейла).
  2. В блоке Назначение:
    • Назначение — Object Storage;
    • Бакет — созданный ранее;
    • Префикс объекта — например audit-trails/komrad (участвует в имени файла лога);
    • Ключ шифрования — если бакет зашифрован.
  3. Укажите сервисный аккаунт трейла.
  4. Включите сбор событий уровня конфигурации (и при необходимости уровня сервисов) для нужного каталога или облака.
  5. Дождитесь появления первых объектов в бакете.
подсказка

Префикс трейла и шаблон ключей в источнике KOMRAD должны совпадать. Для префикса audit-trails/komrad в KOMRAD укажите audit-trails/komrad/**/*.json.

4. Настройте источник S3 в KOMRAD

  1. Откройте Управление → Настройки коллекторов.
  2. Выберите файловый коллектор (или создайте/зарегистрируйте его).
  3. Вкладка ИсточникиДобавить.

Вкладка «Подключение»

ПараметрЗначение
Названиенапример yandex-audit-trails
ПротоколS3
Endpointstorage.yandexcloud.net
Регионru-central1
Бакетимя бакета
Access Key IDkey_id статического ключа аккаунта KOMRAD
Secret Access Keysecret (или секрет из хранилища секретов KOMRAD)
Сжатие объектовАвто
Использовать TLSвключено
Path-style addressingвключено (типично для Yandex Object Storage)

Вкладка «Сбор событий»

ПараметрЗначение
Шаблон ключей объектовaudit-trails/komrad/**/*.json (ваш префикс)
Игнорировать старшененулевое окно, например 48 часов
предупреждение

«Игнорировать старше» для S3 обязано быть больше нуля: окно ограничивает и перечень ключей при обходе, и размер реестра курсоров. Не задавайте годы «на всякий случай» — для разового архива используйте отдельный канал (копия на ФС + локальный/SFTP-источник).

Ключи указываются относительно бакета: без s3://, без имени бакета, без ведущего /.

Вкладка «Дополнительные параметры сбора»

Рекомендуемый JSON (объекты write-once; закрывать обработчик по EOF):

{
"close": {
"reader": {
"onEof": true
}
},
"fileWatcher": {
"scanner": {
"recursiveGlob": true,
"includeFiles": ["\\.json(\\.gz)?$"]
}
}
}

Далее:

  1. Сохраните источник.
  2. Запустите или перезапустите файловый коллектор.

Справочник полей и ограничений протокола S3: Файловый коллектор → Сбор из S3.

5. Проверьте поступление событий

  1. В Object Storage убедитесь, что под префиксом есть объекты.
  2. На карточке источника нажмите Проверить (коллектор запущен).
  3. Откройте События → События в реальном времени и найдите записи с телом аудитного JSON в поле Raw.
  4. При необходимости настройте плагины нормализации на файловом коллекторе и правила корреляции под формат Audit Trails (см. файловый коллектор).

Selectel, VK Cloud, Cloud.ru

Порядок в KOMRAD тот же (протокол S3, шаблон ключей, ненулевой «Игнорировать старше»). Отличается подготовка в консоли провайдера:

  1. Создайте бакет (контейнер) и статические S3-ключи.
  2. Настройте выгрузку журналов/аудита в бакет средствами провайдера или своего пайплайна (write-once объекты).
  3. В источнике KOMRAD укажите endpoint и регион из таблицы выше (актуальные значения — в документации провайдера).

Ссылки на продукты:

Ограничения

  • Поддерживаются только статические Access Key / Secret Access Key (без STS и без «ролей» без ключей).
  • Объекты write-once: дописывание после появления в листинге не поддерживается; смена ETag — повторное чтение с начала.
  • Полный backfill многолетнего архива через одно огромное окно «Игнорировать старше» не рассчитан на текущую версию.
  • Кодировка utf-16-bom и удаление объектов из бакета после сбора не поддерживаются.

Удаление ресурсов

Если тестовые ресурсы в облаке больше не нужны:

  1. Остановите или удалите источник S3 в KOMRAD.
  2. Удалите трейл Audit Trails.
  3. Удалите бакет Object Storage (после очистки объектов).
  4. Удалите ключи KMS и сервисные аккаунты, созданные для сценария.
  5. При размещении коллектора на облачной ВМ — удалите ВМ, если она больше не используется.