Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
Yandex Audit Trails
  • Начало работы
  • Пошаговые инструкции
    • Все инструкции
    • Загрузка аудитных логов в Cloud Logging
      • Организация
      • Облако
      • Каталог
    • Загрузка аудитных логов в Data Streams
      • Организация
      • Облако
      • Каталог
    • Загрузка аудитных логов в Object Storage
      • Организация
      • Облако
      • Каталог
  • Практические руководства
    • Поиск событий Yandex Cloud в Yandex Query
    • Поиск событий Yandex Cloud в Object Storage
    • Поиск событий Yandex Cloud в Cloud Logging
    • Настройка алертов в Yandex Monitoring
    • Настройка реагирования в Cloud Functions
    • Загрузка аудитных логов в Yandex Managed Service for ClickHouse и визуализация данных в Yandex DataLens
    • Экспорт аудитных логов в SIEM
      • Загрузка аудитных логов в Yandex Managed Service for Elasticsearch
      • Загрузка аудитных логов в MaxPatrol SIEM
      • Загрузка аудитных логов в SIEM Splunk
      • Загрузка аудитных логов в SIEM ArcSight
  • Концепции
    • Обзор
    • Трейл
    • Аудитный лог событий
    • Справочник событий
    • Экспорт в SIEM
    • Квоты и лимиты
    • Метрики
  • Управление доступом
  • Правила тарификации
  1. Практические руководства
  2. Экспорт аудитных логов в SIEM
  3. Загрузка аудитных логов в SIEM Splunk

Загрузка аудитных логов в SIEM Splunk

Статья создана
Yandex Cloud
  • Перед началом работы
    • Необходимые платные ресурсы
  • Подготовьте окружение
    • Создайте новый бакет для загрузки в него аудитных логов
    • Создайте ключ шифрования в сервисе Key Management Service
    • Включите шифрование бакета
    • Создайте сервисный аккаунт
  • Назначьте роли сервисному аккаунту
  • Создайте трейл
  • Подготовьте Splunk к импорту
  • Настройте NAT-шлюз для подсети с промежуточной ВМ
  • Создайте ВМ для непрерывной доставки логов в Splunk
  • Визуализируйте данные в Splunk
  • Как удалить созданные ресурсы

Создайте трейл, который будет загружать аудитные логи ресурсов отдельного каталога в бакет Yandex Object Storage с включенным шифрованием. Затем настройте непрерывную доставку логов в SIEM Splunk.

Решение, которое описано в руководстве, работает по следующей схеме:

  1. Трейл загружает логи в бакет Object Storage.
  2. Бакет смонтирован как часть файловой системы в промежуточной ВМ.
  3. На промежуточной ВМ работает скрипт, который по расписанию забирает логи из бакета и отправляет их в Splunk.

Чтобы настроить доставку файлов аудитных логов из бакета в Splunk:

  1. Подготовьте облако к работе.
  2. Подготовьте окружение.
  3. Назначьте роли сервисному аккаунту.
  4. Создайте трейл.
  5. Подготовьте Splunk к импорту.
  6. Включите NAT в интернет для подсети с промежуточной ВМ.
  7. Создайте промежуточную ВМ.
  8. Визуализируйте данные в Splunk.

Часть шагов выполняется в Terraform.

Если созданные ресурсы вам больше не нужны, удалите их.

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

Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.

По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name или --folder-id.

Перед работой нужно зарегистрироваться в Yandex Cloud и создать платежный аккаунт:

  1. Перейдите в консоль управления, затем войдите в Yandex Cloud или зарегистрируйтесь, если вы еще не зарегистрированы.
  2. На странице биллинга убедитесь, что у вас подключен платежный аккаунт, и он находится в статусе ACTIVE или TRIAL_ACTIVE. Если платежного аккаунта нет, создайте его.

Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака.

Подробнее об облаках и каталогах.

Для успешного прохождения руководства у вас должен быть экземпляр Splunk, доступный для промежуточной ВМ по порту 8080.

Необходимые платные ресурсы

В стоимость поддержки инфраструктуры входит:

  • использование виртуальных машин (см. тарифы Compute Cloud);
  • плата за хранение данных в бакете (см. тарифы Object Storage);
  • плата за операции с данными (см. тарифы Object Storage);
  • плата за использование ключей KMS (см. тарифы Key Management Service).

Подготовьте окружение

Создайте новый бакет для загрузки в него аудитных логов

Консоль управления
  1. В консоли управления перейдите в каталог, в котором хотите создать бакет.
  2. Выберите сервис Object Storage.
  3. Нажмите кнопку Создать бакет.
  4. На странице создания бакета:
    1. Введите имя бакета в соответствии с правилами именования.

      По умолчанию бакет с точкой в имени доступен только по протоколу HTTP. Чтобы поддержать для бакета протокол HTTPS, загрузите собственный сертификат безопасности в Object Storage.

    2. При необходимости ограничьте максимальный размер бакета.

      Размер 0 означает отсутствие ограничений и аналогичен включенной опции Без ограничений.

    3. Выберите тип доступа.

    4. Выберите класс хранилища по умолчанию.

    5. Нажмите кнопку Создать бакет для завершения операции.

Создайте ключ шифрования в сервисе Key Management Service

Консоль управления
  1. В консоли управления перейдите в каталог с бакетом.

  2. Выберите сервис Key Management Service.

  3. Нажмите кнопку Создать и задайте атрибуты ключа:

    • Имя и опциональное описание в свободной форме.
    • Алгоритм шифрования, например AES-256.
    • Период ротации (частота смены версии ключа по умолчанию).
    • Нажмите кнопку Создать.

Вместе с ключом создается его первая версия: нажмите на ключ в списке, чтобы открыть страницу с его атрибутами.

Включите шифрование бакета

Консоль управления
  1. В консоли управления перейдите в бакет, для которого хотите настроить шифрование.

  2. В левой панели выберите Шифрование.

  3. В поле Ключ KMS выберите ключ или создайте новый:

    1. Если в каталоге еще нет ключей, нажмите кнопку Создать ключ. Если ключи есть, но они вам не подходят, нажмите кнопку Создать новый.
    2. Введите имя ключа.
    3. Выберите алгоритм шифрования и период ротации.
    4. Нажмите Создать.
  4. Нажмите кнопку Сохранить.

Создайте сервисный аккаунт

Консоль управления
  1. В консоли управления перейдите в каталог, в котором вы хотите создать сервисный аккаунт.

  2. Перейдите на вкладку Сервисные аккаунты.

  3. Нажмите кнопку Создать сервисный аккаунт.

  4. Введите имя сервисного аккаунта:

    • Длина — от 3 до 63 символов.
    • Может содержать строчные буквы латинского алфавита, цифры и дефисы.
    • Первый символ — буква. Последний символ — не дефис.
  5. Нажмите кнопку Создать.

Назначьте роли сервисному аккаунту

CLI
  1. Назначьте роль audit-trails.viewer на каталог, с ресурсов которого будут собираться аудитные логи:

    yc resource-manager folder add-access-binding \
    --role audit-trails.viewer \
    --id <идентификатор_каталога> \
    --service-account-id <идентификатор_сервисного_аккаунта>
    

    Где:

    • role — назначаемая роль.
    • id — идентификатор каталога, с которого будут собираться аудитные логи.
    • service-account-id — идентификатор сервисного аккаунта.
  2. Назначьте роль storage.uploader на каталог, в котором будет находиться трейл:

    yc resource-manager folder add-access-binding \
    --role storage.uploader \
    --id <идентификатор_каталога> \
    --service-account-id <идентификатор_сервисного_аккаунта>
    

    Где:

    • role — назначаемая роль.
    • id — идентификатор каталога, в котором будет находиться трейл.
    • service-account-id — идентификатор сервисного аккаунта.
  3. Назначьте роль kms.keys.encrypterDecrypter на ключ шифрования:

    yc kms symmetric-key add-access-binding \
    --role kms.keys.encrypterDecrypter \
    --id <идентификатор_KMS_ключа> \
    --service-account-id <идентификатор_сервисного_аккаунта>
    

    Где:

    • role — назначаемая роль.
    • id — идентификатор KMS-ключа.
    • service-account-id — идентификатор сервисного аккаунта.

Создайте трейл

Чтобы создать трейл, убедитесь, что у вас есть роли:

  • iam.serviceAccounts.user на сервисный аккаунт;
  • audit-trails.editor на каталог, где будет находиться трейл;
  • audit-trails.viewer на каталог, с которого будут собираться аудитные логи;
  • storage.viewer на бакет или каталог.
Консоль управления
  1. В консоли управления перейдите в каталог, в котором вы хотите создать трейл.

  2. Выберите сервис Audit Trails.

  3. Нажмите кнопку Создать трейл и укажите:

    • Имя — имя создаваемого трейла.
    • Описание — описание трейла, необязательный параметр.
  4. В блоке Фильтр задайте параметры области сбора аудитных логов:

    • Ресурс — выберите Каталог.
    • Каталог — не требует заполнения, содержит имя текущего каталога.
  5. В блоке Назначение задайте параметры объекта назначения:

    • Назначение — Object Storage.
    • Бакет — имя бакета, в который будут загружаться аудитные логи.
    • Префикс объекта — необязательный параметр, участвует в полном имени файла аудитного лога.

    Примечание

    Используйте префикс, если вы храните аудитные логи и сторонние данные в одном и том же бакете. Не используйте одинаковый префикс для логов и других объектов в бакете, так как в этом случае логи и сторонние объекты могут перезаписать друг друга.

  6. В блоке Сервисный аккаунт выберите сервисный аккаунт, от имени которого трейл будет загружать файлы аудитного лога в бакет.

  7. Нажмите кнопку Создать.

Важно

Решение будет удалять логи из бакета после экспорта в Splunk. Если вам нужно хранить логи в бакете, создайте отдельные бакет и трейл.

Подготовьте Splunk к импорту

Включите HTTPEventCollector и получите токен Event Collector по инструкции.

Настройте NAT-шлюз для подсети с промежуточной ВМ

Консоль управления
  1. Создайте NAT-шлюз:
    1. В консоли управления перейдите в каталог с подсетью для промежуточной ВМ.

    2. В списке сервисов выберите Virtual Private Cloud.

    3. На панели слева выберите Шлюзы.

    4. Нажмите кнопку Создать.

    5. Задайте имя шлюза:

      • Длина — от 3 до 63 символов.
      • Может содержать строчные буквы латинского алфавита, цифры и дефисы.
      • Первый символ — буква. Последний символ — не дефис.
    6. По умолчанию выбран тип шлюза NAT в интернет.

    7. Нажмите кнопку Сохранить.

  2. Создайте таблицу маршрутизации:
    1. На панели слева выберите Таблицы маршрутизации.
    2. Нажмите кнопку Создать, чтобы создать новую таблицу или выберите одну из существующих.
    3. Нажмите кнопку Добавить маршрут.
    4. В открывшемся окне в поле Next hop выберите Шлюз.
    5. В поле Шлюз выберите созданный NAT-шлюз. Префикс назначения заполнится автоматически.
    6. Нажмите кнопку Добавить.
    7. Нажмите кнопку Создать таблицу маршрутизации.
  3. Привяжите таблицу маршрутизации к подсети, в которой будет развернута промежуточная ВМ, чтобы направить трафик из нее через NAT-шлюз:
    1. На панели слева выберите Подсети.
    2. В строке нужной подсети нажмите кнопку .
    3. В открывшемся меню выберите пункт Привязать таблицу маршрутизации.
    4. В открывшемся окне выберите созданную таблицу в списке.
    5. Нажмите кнопку Привязать.

Создайте ВМ для непрерывной доставки логов в Splunk

Terraform
  1. Если у вас ещё нет Terraform, установите его и настройте провайдер Yandex Cloud.

  2. Склонируйте репозиторий Yandex Cloud Security Solution Library

    git clone https://github.com/yandex-cloud/yc-solution-library-for-security.git
    
  3. Создайте подкаталог в каталоге /auditlogs/export-auditlogs-to-Splunk/terraform/ и перейдите в него.

  4. Создайте конфигурационный файл с вызовом модуля yc-splunk-trail:

    module "yc-splunk-trail" {
       source = "../modules/yc-splunk-trail/"
       folder_id = <идентификатор_каталога>
       splunk_token = <токен_Event_Collector>
       splunk_server = <адрес_вашего_сервера_Splunk>:8088 
       bucket_name = <имя_бакета>
       bucket_folder = <имя_корневой_папки_в_бакете>
       sa_id = <идентификатор_сервисного_аккаунта>
       coi_subnet_id = <идентификатор_подсети>
    }
    

    Где:

    • folder_id — идентификатор каталога.
    • splunk_token — токен Event Collector, полученный в Splunk.
    • splunk_server — адрес вашего сервера Splunk в формате https://<имя_или_адрес_хоста>.
    • bucket_name — имя бакета.
    • bucket_folder — имя корневой папки в бакете.
    • sa_id — идентификатор сервисного аккаунта.
    • coi_subnet_id — идентификатор подсети с настроенным NAT-шлюзом.
  5. Проверьте корректность конфигурационных файлов:

    terraform plan
    

    Если конфигурация описана верно, в терминале отобразится список создаваемых ресурсов и их параметров. Если в конфигурации есть ошибки, Terraform на них укажет.

  6. Разверните облачные ресурсы.

    1. Если в конфигурации нет ошибок, выполните команду:

      terraform apply
      
    2. Подтвердите создание ресурсов: в терминале введите yes и нажмите Enter.

Визуализируйте данные в Splunk

  1. Перейдите в Splunk и выполните поиск событий, созданных сервисным аккаунтом:

    index="main" authentication.subject_type="SERVICE_ACCOUNT" | stats count by event_type
    
  2. Для визуализации результатов, перейдите на вкладку Visualization и выберите удобный формат (LineChart, PieChart и т. д.):

    Пример визуализации данных:

    image

Как удалить созданные ресурсы

  1. Чтобы удалить ресурсы, созданные с помощью Terraform:

    1. Выполните команду:

      terraform destroy
      

      Важно

      Terraform удалит все ресурсы, созданные в текущей конфигурации: сети, подсети, виртуальные машины и т. д.

      После выполнения команды в терминал будет выведен список удаляемых ресурсов.

    2. Для подтверждения удаления введите yes и нажмите Enter.

  2. Удалите бакет Object Storage.

  3. Удалите ключ Key Management Service.

Была ли статья полезна?

Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
В этой статье:
  • Перед началом работы
  • Необходимые платные ресурсы
  • Подготовьте окружение
  • Создайте новый бакет для загрузки в него аудитных логов
  • Создайте ключ шифрования в сервисе Key Management Service
  • Включите шифрование бакета
  • Создайте сервисный аккаунт
  • Назначьте роли сервисному аккаунту
  • Создайте трейл
  • Подготовьте Splunk к импорту
  • Настройте NAT-шлюз для подсети с промежуточной ВМ
  • Создайте ВМ для непрерывной доставки логов в Splunk
  • Визуализируйте данные в Splunk
  • Как удалить созданные ресурсы