Загрузка аудитных логов Yandex Audit Trails в SIEM KUMA
В данном руководстве вы создадите трейл Audit Trails, который будет передавать аудитные логи в коллектор KUMA.
Решение
- Трейл загружает логи в бакет Yandex Object Storage с включенным шифрованием.
- Бакет монтируется как часть файловой системы
на сервере с установленным коллектором KUMA. - Коллектор KUMA получает и передает на обработку данные событий из смонтированного бакета.
Чтобы настроить доставку файлов аудитных логов в KUMA:
- Подготовьте облако к работе.
- Подготовьте окружение.
- Создайте бакет.
- Создайте трейл.
- Смонтируйте бакет на сервере.
- Настройте коллектор KUMA.
Если созданные ресурсы вам больше не нужны, удалите их.
Подготовьте облако к работе
Зарегистрируйтесь в Yandex Cloud и создайте платежный аккаунт:
- Перейдите в консоль управления
, затем войдите в Yandex Cloud или зарегистрируйтесь. - На странице Yandex Cloud Billing
убедитесь, что у вас подключен платежный аккаунт, и он находится в статусеACTIVE
илиTRIAL_ACTIVE
. Если платежного аккаунта нет, создайте его и привяжите к нему облако.
Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака
Подробнее об облаках и каталогах.
Необходимые платные ресурсы
В стоимость поддержки создаваемой инфраструктуры Yandex Cloud входят:
- плата за хранение данных, операции с данными, а также исходящий трафик (см. тарифы Yandex Object Storage);
- плата за использование симметричного ключа шифрования и выполнение криптографических операций (см. тарифы Yandex Key Management Service);
- (опционально) плата за постоянно запущенную виртуальную машину (см. тарифы Yandex Compute Cloud);
- (опционально) плата за использование динамического или статического внешнего IP-адреса (см. тарифы Yandex Virtual Private Cloud).
Кроме этого, для прохождения руководства вы должны иметь лицензию на использование KUMA (не поставляется Yandex Cloud).
Подготовьте окружение
Создайте сервисные аккаунты
Для работы создаваемой инфраструктуры потребуются два сервисных аккаунта: один — для бакета Object Storage, второй — для трейла Audit Trails.
Чтобы создать сервисные аккаунты:
- В консоли управления
перейдите в каталог, в котором вы создаете инфраструктуру. - В списке сервисов выберите Identity and Access Management.
- Нажмите кнопку Создать сервисный аккаунт.
- Введите имя сервисного аккаунта для бакета:
kuma-bucket-sa
. - Нажмите кнопку Создать.
- Повторите шаги 3-5, чтобы создать сервисный аккаунт
kuma-trail-sa
для трейла.
Создайте статический ключ доступа
Чтобы смонтировать бакет на сервере с установленным коллектором KUMA, создайте статический ключ доступа для сервисного аккаунта kuma-bucket-sa
:
-
В консоли управления
перейдите в каталог, в котором вы создаете инфраструктуру. -
В списке сервисов выберите Identity and Access Management.
-
На панели слева выберите
Сервисные аккаунты. -
Выберите сервисный аккаунт
kuma-bucket-sa
. -
На панели сверху нажмите
Создать новый ключ и выберите Создать статический ключ доступа. -
Задайте описание ключа и нажмите кнопку Создать.
-
Сохраните полученные идентификатор и секретный ключ: они понадобятся позднее при монтировании бакета на сервере.
Внимание
После закрытия диалога значение ключа будет недоступно.
Создайте ключ шифрования
Чтобы создать новый симметричный ключ шифрования:
-
В консоли управления
перейдите в каталог, в котором вы создаете инфраструктуру. -
В списке сервисов выберите Key Management Service.
-
На панели слева выберите
Симметричные ключи. -
Нажмите кнопку Создать ключ и задайте атрибуты ключа:
- Имя —
kuma-key
. - Алгоритм шифрования, например
AES-256
.
- Имя —
-
Нажмите кнопку Создать.
Назначьте роли сервисным аккаунтам
-
Чтобы назначить сервисным аккаунтам роли на каталог:
Консоль управления-
В консоли управления
перейдите в каталог, в котором вы создаете инфраструктуру. -
Перейдите на вкладку Права доступа.
-
Нажмите кнопку Настроить доступ.
-
В открывшемся окне выберите раздел Сервисные аккаунты.
-
В списке выберите сервисный аккаунт
kuma-trail-sa
, при необходимости воспользуйтесь поиском. -
Нажмите кнопку
Добавить роль и в появившемся окне выберите рольaudit-trails.viewer
.Повторите этот шаг и добавьте роль
storage.uploader
. -
Нажмите кнопку Сохранить.
-
Повторите шаги 3-7, чтобы назначить сервисному аккаунту
kuma-bucket-sa
рольstorage.viewer
на каталог.
-
-
Чтобы назначить сервисным аккаунтам роль
kms.keys.encrypterDecrypter
на созданный ранее ключ шифрования:Консоль управления- В консоли управления
перейдите в каталог, в котором вы создаете инфраструктуру. - В списке сервисов выберите Key Management Service.
- На панели слева выберите
Симметричные ключи и нажмите на строку с ключомkuma-key
. - Перейдите в раздел
Права доступа и нажмите кнопку Назначить роли. - Выберите сервисный аккаунт
kuma-trail-sa
. - Нажмите кнопку
Добавить роль и выберите рольkms.keys.encrypterDecrypter
. - Нажмите кнопку Сохранить.
- Повторите шаги 3-7, чтобы назначить сервисному аккаунту
kuma-bucket-sa
рольkms.keys.encrypterDecrypter
на ключ шифрования.
- В консоли управления
Создайте бакет
Чтобы создать бакет, в который трейл будет сохранять аудитные логи:
-
В консоли управления
перейдите в каталог, в котором вы создаете инфраструктуру. -
В списке сервисов выберите Object Storage.
-
Справа сверху нажмите Создать бакет.
-
В поле Имя укажите имя бакета, например:
my-audit-logs-for-kuma
.Примечание
Имена бакетов должны быть уникальны для всего Object Storage, то есть нельзя создать два бакета с одинаковыми именами даже в разных каталогах разных облаков.
-
В поле Макс. размер задайте размер создаваемого бакета или включите опцию Без ограничения.
-
Значения остальных параметров оставьте без изменения и нажмите Создать бакет.
-
На открывшейся странице со списком бакетов выберите созданный бакет.
-
В меню слева выберите
Безопасность и перейдите на вкладку Шифрование. -
В поле Ключ KMS выберите созданный ранее ключ
kuma-key
. -
Нажмите Сохранить.
Создайте трейл
Чтобы создать трейл:
-
В консоли управления
перейдите в каталог, в котором вы создаете инфраструктуру. -
Выберите сервис Audit Trails.
-
Нажмите кнопку Создать трейл и в открывшемся окне:
-
В поле Имя задайте имя трейла
kuma-trail
. -
В блоке Назначение задайте параметры объекта назначения:
- Назначение —
Object Storage
. - Бакет — созданный ранее бакет, например:
my-audit-logs-for-kuma
. - Префикс объекта — необязательный параметр, участвует в полном имени файла аудитного лога.
Примечание
Используйте префикс, если вы храните аудитные логи и сторонние данные в одном и том же бакете. Не используйте одинаковый префикс для логов и других объектов в бакете, так как в этом случае логи и сторонние объекты могут перезаписать друг друга.
- Назначение —
-
Убедитесь, что в поле Ключ шифрования указан ключ шифрования
kuma-key
. Если ключ шифрования не задан, нажмите кнопку Добавить и выберите этот ключ. -
В блоке Сбор событий c уровня конфигурации задайте параметры сбора аудитных логов уровня конфигурации:
- Сбор событий — выберите
Включено
. - Ресурс — выберите
Каталог
. - Каталог — не требует заполнения, содержит имя текущего каталога.
- Сбор событий — выберите
-
В блоке Сервисный аккаунт выше выберите сервисный аккаунт
kuma-trail-sa
. -
В блоке Сбор событий с уровня сервисов оставьте значение
Выключено
. -
Нажмите кнопку Создать.
-
Смонтируйте бакет на сервере
Это действие выполняется на сервере, на котором будет установлен коллектор KUMA. В качестве сервера вы можете использовать виртуальную машину в Yandex Compute Cloud или свое оборудование. В данном руководстве будет использоваться ВМ Compute Cloud.
Чтобы смонтировать бакет на сервере:
-
Создайте виртуальную машину из публичного образа Ubuntu 22.04 LTS.
-
Подключитесь к ВМ по SSH или по OS Login.
-
Создайте нового пользователя
kuma
:sudo useradd kuma
-
Создайте домашнюю директорию пользователя
kuma
:sudo mkdir /home/kuma
-
Создайте файл со статическим ключом доступа и выдайте пользователю
kuma
права на него:sudo bash -c 'echo <идентификатор_ключа_доступа>:<секретный_ключ_доступа> > /home/kuma/.passwd-s3fs' sudo chmod 600 /home/kuma/.passwd-s3fs sudo chown -R kuma:kuma /home/kuma
Где
<идентификатор_ключа_доступа>
и<секретный_ключ_доступа>
— сохраненные ранее значения статического ключа доступа сервисного аккаунтаkuma-bucket-sa
. -
Установите пакет s3fs
:sudo apt install s3fs
-
Создайте директорию, которая будет служить точкой монтирования для бакета, и выдайте пользователю
kuma
права на эту директорию:sudo mkdir /var/log/yandex-cloud/ sudo chown kuma:kuma /var/log/yandex-cloud/
-
Смонтируйте созданный ранее бакет, указав его имя:
sudo s3fs <имя_бакета> /var/log/yandex-cloud \ -o passwd_file=/home/kuma/.passwd-s3fs \ -o url=https://storage.yandexcloud.net \ -o use_path_request_style \ -o uid=$(id -u kuma) \ -o gid=$(id -g kuma)
Вы можете настроить автоматическое монтирование бакета при запуске операционной системы, для этого откройте файл
/etc/fstab
(командаsudo nano /etc/fstab
) и добавьте в него строку:s3fs#<имя_бакета> /var/log/yandex-cloud fuse _netdev,uid=<kuma_uid>,gid=<kuma_gid>,use_path_request_style,url=https://storage.yandexcloud.net,passwd_file=/home/kuma/.passwd-s3fs 0 0
Где:
-
<имя_бакета>
— имя созданного ранее бакета, например:my-audit-logs-for-kuma
. -
<kuma_uid>
— идентификатор пользователяkuma
в операционной системе ВМ. -
<kuma_gid>
— идентификатор группы пользователейkuma
в операционной системе ВМ.Чтобы узнать значения
<kuma_uid>
и<kuma_gid>
, в терминале выполните командуid kuma
.
-
-
Убедитесь, что бакет смонтирован:
sudo ls /var/log/yandex-cloud/
Если все настроено верно, команда вернет текущее содержимое бакета с аудитными событиями.
Настройка передачи событий Yandex Cloud завершена. События будут располагаться в следующих директориях в JSON
/var/log/yandex-cloud/{audit_trail_id}/{year}/{month}/{day}/*.json
Настройте коллектор KUMA
На этом шаге вам понадобятся файлы дистрибутива и лицензии, входящие в комплект поставки KUMA. Используйте их, чтобы установить и настроить коллектор в сетевой инфраструктуре KUMA. Подробнее см. в инструкции
После успешного завершения настройки аудитные события начнут поставляться в KUMA. Веб-интерфейс KUMA позволяет выполнять поиск связанных событий
Как удалить созданные ресурсы
Чтобы перестать платить за созданные ресурсы: