Загрузка аудитных логов в MaxPatrol SIEM с помощью Terraform
MaxPatrol SIEM
Чтобы настроить экспорт аудитных логов с помощью Terraform:
- Подготовьте облако к работе.
- Разверните инфраструктуру, необходимую для загрузки аудитных логов в MaxPatrol SIEM.
- Настройте в MaxPatrol SIEM задачу по сбору данных из потока Data Streams.
Если созданные ресурсы вам больше не нужны, удалите их.
Подготовьте облако к работе
Зарегистрируйтесь в Yandex Cloud и создайте платежный аккаунт:
- Перейдите в консоль управления
, затем войдите в Yandex Cloud или зарегистрируйтесь. - На странице Yandex Cloud Billing
убедитесь, что у вас подключен платежный аккаунт, и он находится в статусеACTIVEилиTRIAL_ACTIVE. Если платежного аккаунта нет, создайте его и привяжите к нему облако.
Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака
Подробнее об облаках и каталогах.
Необходимые платные ресурсы
В стоимость поддержки создаваемой инфраструктуры входят:
- использование потока данных (см. тарифы Data Streams).
- использование Yandex Managed Service for YDB в бессерверном режиме (см. тарифы Managed Service for YDB).
Разверните инфраструктуру, необходимую для загрузки аудитных логов в MaxPatrol SIEM
Terraform
Terraform распространяется под лицензией Business Source License
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform
Для создания инфраструктуры с помощью Terraform:
-
Установите Terraform, получите данные для аутентификации и укажите источник для установки провайдера Yandex Cloud (раздел Настройте провайдер, шаг 1).
-
Подготовьте файлы с описанием инфраструктуры:
Готовая конфигурацияВручную-
Клонируйте репозиторий с конфигурационными файлами:
git clone https://github.com/yandex-cloud-examples/yc-export-audit-logs-maxpatrol -
Перейдите в папку с репозиторием. В ней должны появиться следующие файлы:
audit-trails-maxpatrol-export.tf— файл конфигурации создаваемой инфраструктуры.audit-trails-maxpatrol-export.auto.tfvars— файл со значениями пользовательских переменных.
-
Создайте папку для конфигурационных файлов и в этой папке:
-
Создайте конфигурационный файл
audit-trails-maxpatrol-export.tf:audit-trails-maxpatrol-export.tf
# Объявление переменных variable "folder_id" { type = string } variable "organization_id" { type = string } locals { sa_name = "maxpatrol-sa" sa_reader_name = "maxpatrol-reader-sa" db_name = "maxpatrol-db" yds_name = "maxpatrol-stream" trail_name = "maxpatrol-trail" } # Настройка провайдера terraform { required_providers { yandex = { source = "yandex-cloud/yandex" } } required_version = ">= 0.13" } provider "yandex" { folder_id = var.folder_id } # Создание сервисных аккаунтов resource "yandex_iam_service_account" "maxpatrol-sa" { name = local.sa_name } resource "yandex_iam_service_account" "maxpatrol-reader-sa" { name = local.sa_reader_name } # Назначение ролей сервисным аккаунтам resource "yandex_resourcemanager_folder_iam_member" "yds-writer" { folder_id = var.folder_id role = "yds.writer" member = "serviceAccount:${yandex_iam_service_account.maxpatrol-sa.id}" } resource "yandex_resourcemanager_folder_iam_member" "yds-viewer" { folder_id = var.folder_id role = "yds.viewer" member = "serviceAccount:${yandex_iam_service_account.maxpatrol-reader-sa.id}" } resource "yandex_organizationmanager_organization_iam_binding" "audit-trails-viewer" { organization_id = var.organization_id role = "audit-trails.viewer" members = [ "serviceAccount:${yandex_iam_service_account.maxpatrol-sa.id}", ] } # Создание статического ключа доступа для сервисного аккаунта resource "yandex_iam_service_account_static_access_key" "sa-static-key" { service_account_id = yandex_iam_service_account.maxpatrol-reader-sa.id } # Создание бессерверной базы данных YDB resource "yandex_ydb_database_serverless" "maxpatrol-db" { name = local.db_name folder_id = var.folder_id sleep_after = 90 } # Создание топика YDB — потока данных Data Streams resource "yandex_ydb_topic" "data-streams" { database_endpoint = yandex_ydb_database_serverless.maxpatrol-db.ydb_full_endpoint name = local.yds_name } # Ожидание завершения создания топика перед запуском создания трейла resource "time_sleep" "wait-for-topic" { depends_on = [yandex_ydb_topic.data-streams] create_duration = "20s" } # Создание трейла resource "yandex_audit_trails_trail" "maxpatrol-trail" { depends_on = [time_sleep.wait-for-topic] name = local.trail_name folder_id = var.folder_id service_account_id = yandex_iam_service_account.maxpatrol-sa.id data_stream_destination { database_id = yandex_ydb_database_serverless.maxpatrol-db.id stream_name = local.yds_name } filtering_policy { management_events_filter { resource_scope { resource_id = var.organization_id resource_type = "organization-manager.organization" } } } } output "static-access-key" { sensitive = true value = yandex_iam_service_account_static_access_key.sa-static-key.access_key } output "static-secret-key" { sensitive = true value = yandex_iam_service_account_static_access_key.sa-static-key.secret_key } output "database-id" { sensitive = true value = yandex_ydb_database_serverless.maxpatrol-db.id } -
Создайте файл с пользовательскими данными
audit-trails-maxpatrol-export.auto.tfvars:audit-trails-maxpatrol-export.auto.tfvars
folder_id = "<идентификатор_каталога>" organization_id = "<идентификатор_организации>"
-
Более подробную информацию о параметрах используемых в Terraform ресурсов см. в документации провайдера:
- Сервисный аккаунт — yandex_iam_service_account.
- Роль, назначенная сервисному аккаунту на каталог — yandex_resourcemanager_folder_iam_member.
- Роль, назначенная сервисному аккаунту на организацию — yandex_organizationmanager_organization_iam_binding.
- Статический ключ доступа — yandex_iam_service_account_static_access_key.
- Бессерверная база данных YDB — yandex_ydb_database_serverless.
- Поток данных Yandex Data Streams — yandex_ydb_topic.
- Трейл — yandex_audit_trails_trail.
-
-
В файле
audit-trails-maxpatrol-export.auto.tfvarsзадайте значения пользовательских переменных:folder_id— идентификатор каталога.organization_id— идентификатор организации, в которой создается трейл и где будут собираться аудитные логи.
-
Создайте ресурсы:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validateЕсли конфигурация является корректной, появится сообщение:
Success! The configuration is valid. -
Выполните команду:
terraform planВ терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply -
Подтвердите изменения: введите в терминале слово
yesи нажмите Enter.
В результате в выбранном каталоге будет создана и настроена вся необходимая инфраструктура.
-
-
Получите идентификатор и секретный ключ статического ключа доступа, а также идентификатор созданной базы данных — они понадобятся позднее при настройке MaxPatrol SIEM. Для этого выполните команды:
echo "Static access key: $(terraform output static-access-key)" echo "Secret key: $(terraform output static-secret-key)" echo "YDB database ID: $(terraform output database-id)"Результат:
Static access key: "YCAJEnmnfsV8GpAMk********" Secret key: "YCMVxx-n0t8Y6s48zJDdKw9lWMB1iGU-********" YDB database ID: "etnvs692elpn********"
Настройте MaxPatrol SIEM
Создайте учетные записи
Учетные записи можно использовать как хранилища секретов. Создайте учетные записи static-key-id и static-key-private, чтобы сохранить в них полученные ранее идентификатор и секретный ключ статического ключа доступа, созданного для сервисного аккаунта maxpatrol-reader-sa:
- Войдите в веб-интерфейс MaxPatrol SIEM.
- В разделе Сбор данных нажмите Учетные записи.
- Нажмите Добавить учетную запись → Пароль и укажите параметры:
- Название —
static-key-id; - Пароль — идентификатор статического ключа;
- Подтверждение пароля — повторите идентификатор статического ключа.
- Название —
- Нажмите Сохранить.
Аналогично создайте учетную запись static-key-private, содержащую секретный ключ.
Создайте задачу на сбор данных
Создайте и запустите задачу на сбор данных с профилем Yandex Data Streams:
- Войдите в веб-интерфейс MaxPatrol SIEM.
- В разделе Сбор данных нажмите Задачи.
- На странице Задачи по сбору данных:
- На панели инструментов нажмите Создать задачу.
- Нажмите Сбор данных.
- На странице Создание задачи на сбор данных укажите параметры:
- Название —
YDS-logs-task. - Профиль —
Yandex Data Streams. - В иерархическом списке выберите Запуск сценария.
- В блоке Подключение укажите:
- Учетная запись —
static-key-id; - Учетная запись для повышения привилегий —
static-key-private.
- Учетная запись —
- Параметры запуска сценария:
- database —
<идентификатор_БД_maxpatrol-db>; - folder —
<идентификатор_облака_для_каталога_example-folder>; - region_name —
ru-central1; - stream_name —
maxpatrol-stream.
- database —
- На панели Цели сбора данных:
- Выберите вкладку Включить.
- В поле Сетевые адреса укажите
yandex-cloud.
- Нажмите Сохранить и запустить.
- Название —
Чтобы просмотреть логи, перейдите на страницу просмотра событий:
- Перейдите на страницу Задачи по сбору данных.
- Нажмите на задачу
YDS-logs-task. - Нажмите Собранные события → Перейти.
Как удалить созданные ресурсы
Чтобы перестать платить за созданные ресурсы:
-
Откройте конфигурационный файл
audit-trails-maxpatrol-export.tfи удалите описание создаваемой инфраструктуры из файла. -
Примените изменения:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validateЕсли конфигурация является корректной, появится сообщение:
Success! The configuration is valid. -
Выполните команду:
terraform planВ терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply -
Подтвердите изменения: введите в терминале слово
yesи нажмите Enter.
-