Загрузка аудитных логов из Object Storage в KOMRAD
Настройте выгрузку аудитных (и иных write-once) журналов в бакет
S3-совместимого Object Storage и непрерывную доставку событий в
SIEM KOMRAD через файловый коллектор
(протокол S3).
Коллектор KOMRAD обращается к API хранилища напрямую: промежуточная синхронизация бакета на локальный диск не нужна.
Схема решения
- Трейл аудита (или приложение) записывает готовые объекты в бакет Object Storage.
- Файловый коллектор KOMRAD с источником типа
S3периодически опрашивает бакет (ListObjects), читает новые ключи (GetObject), при необходимости распаковывает gzip/zstd. - Строки журнала уходят в шину событий 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 Cloud | Object Storage | Документация |
| Selectel | Объектное хранилище | selectel.ru/services/cloud/storage |
| VK Cloud | Object Storage | cloud.vk.com/storage |
| Cloud.ru | Evolution Object Storage | cloud.ru/products/evolution-object-storage |
| On-prem | Ceph RGW, SeaweedFS, Garage, RustFS и др. | S3 API + статические ключи |
Типовые endpoint (уточняйте в консоли провайдера):
| Провайдер | Endpoint (пример) | Регион (пример) |
|---|---|---|
| Yandex Object Storage | storage.yandexcloud.net | ru-central1 |
| Selectel | s3.ru-1.storage.selcloud.ru | пул ru-1 |
| VK Cloud (Москва) | hb.ru-msk.vkcloud-storage.ru | ru-msk |
| Cloud.ru | s3.cloud.ru | по документации сервиса |
Open-source MinIO фактически не развивается в прежнем режиме; для ряда сборок известны уязвимости. Для новых внедрений предпочтительны облачный Object Storage или сопровождаемые open-source варианты (SeaweedFS, Garage, RustFS). Legacy-стенды на MinIO могут работать с коллектором, но требуют оценки рисков и плана миграции.
Ниже — полный сценарий для Yandex Cloud. Для Selectel, VK Cloud и Cloud.ru в KOMRAD выполняются те же шаги: меняются только создание бакета/ключей в консоли провайдера и значения endpoint/региона.
1. Подготовьте бакет Object Storage
- В консоли Yandex Cloud откройте сервис Object Storage.
- Создайте бакет
(инструкция):
- имя по правилам именования;
- доступ на чтение объектов и списка — с авторизацией;
- класс хранилища — по политике хранения аудита.
- (Рекомендуется) Включите шифрование бакета ключом KMS.
2. Создайте сервисные аккаунты и статический ключ
Понадобятся:
- сервисный аккаунт для трейла — запись аудитных объектов в бакет;
- сервисный аккаунт для KOMRAD — только чтение бакета (или один аккаунт с разделёнными ролями по принципу наименьших привилегий).
- Создайте сервисные аккаунты в IAM.
- Для аккаунта KOMRAD создайте
статический ключ доступа.
Сохраните
key_idиsecret— секрет повторно не показывается. - Назначьте роли (актуальный перечень — в документации Yandex Cloud):
| Аккаунт | Назначение | Типовые роли |
|---|---|---|
| Трейл | читать аудит, писать в бакет, при шифровании — KMS | audit-trails.viewer, storage.uploader, при необходимости kms.keys.encrypterDecrypter |
| KOMRAD | читать объекты и список | storage.viewer (на бакет/каталог), при шифровании — kms.keys.encrypterDecrypter |
Справка: роли Audit Trails, роли Object Storage.
3. Создайте трейл Audit Trails
- Откройте сервис Audit Trails → Создать трейл (создание трейла).
- В блоке Назначение:
- Назначение — Object Storage;
- Бакет — созданный ранее;
- Префикс объекта — например
audit-trails/komrad(участвует в имени файла лога); - Ключ шифрования — если бакет зашифрован.
- Укажите сервисный аккаунт трейла.
- Включите сбор событий уровня конфигурации (и при необходимости уровня сервисов) для нужного каталога или облака.
- Дождитесь появления первых объектов в бакете.
Префикс трейла и шаблон ключей в источнике KOMRAD должны
совпадать. Для префикса audit-trails/komrad в KOMRAD укажите
audit-trails/komrad/**/*.json.
4. Настройте источник S3 в KOMRAD
- Откройте Управление → Настройки коллекторов.
- Выберите файловый коллектор (или создайте/зарегистрируйте его).
- Вкладка Источники → Добавить.
Вкладка «Подключение»
| Параметр | Значение |
|---|---|
| Название | например yandex-audit-trails |
| Протокол | S3 |
| Endpoint | storage.yandexcloud.net |
| Регион | ru-central1 |
| Бакет | имя бакета |
| Access Key ID | key_id статического ключа аккаунта KOMRAD |
| Secret Access Key | secret (или секрет из хранилища секретов 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)?$"]
}
}
}
Далее:
- Сохраните источник.
- Запустите или перезапустите файловый коллектор.
Справочник полей и ограничений протокола S3: Файловый коллектор → Сбор из S3.
5. Проверьте поступление событий
- В Object Storage убедитесь, что под префиксом есть объекты.
- На карточке источника нажмите Проверить (коллектор запущен).
- Откройте События → События в реальном времени и найдите
записи с телом аудитного JSON в поле
Raw. - При необходимости настройте плагины нормализации на файловом коллекторе и правила корреляции под формат Audit Trails (см. файловый коллектор).
Selectel, VK Cloud, Cloud.ru
Порядок в KOMRAD тот же (протокол S3, шаблон ключей, ненулевой
«Игнорировать старше»). Отличается подготовка в консоли провайдера:
- Создайте бакет (контейнер) и статические S3-ключи.
- Настройте выгрузку журналов/аудита в бакет средствами провайдера или своего пайплайна (write-once объекты).
- В источнике KOMRAD укажите endpoint и регион из таблицы выше (актуальные значения — в документации провайдера).
Ссылки на продукты:
Ограничения
- Поддерживаются только статические Access Key / Secret Access Key (без STS и без «ролей» без ключей).
- Объекты write-once: дописывание после появления в листинге не поддерживается; смена ETag — повторное чтение с начала.
- Полный backfill многолетнего архива через одно огромное окно «Игнорировать старше» не рассчитан на текущую версию.
- Кодировка
utf-16-bomи удаление объектов из бакета после сбора не поддерживаются.
Удаление ресурсов
Если тестовые ресурсы в облаке больше не нужны:
- Остановите или удалите источник S3 в KOMRAD.
- Удалите трейл Audit Trails.
- Удалите бакет Object Storage (после очистки объектов).
- Удалите ключи KMS и сервисные аккаунты, созданные для сценария.
- При размещении коллектора на облачной ВМ — удалите ВМ, если она больше не используется.