Yandex Cloud (YC): настройка источника

Данное руководство описывает процесс сбора событий аудита из Audit Trail Yandex Cloud (YC) в R-Vision SIEM.

Предварительные требования

Перед настройкой отправки событий в R-Vision SIEM убедитесь в выполнении следующих условий:

  • Имеется регистрация в Yandex Cloud и создан платежный аккаунт.

  • На странице Yandex Cloud Billing подключен платежный аккаунт, и он находится в статусе ACTIVE или TRIAL_ACTIVE. Облако привязано к платежному аккаунту.

  • Создан каталог, в котором работает инфраструктура, на странице облака.

  • Имеется виртуальная машина в DMZ-сети организации с доступом до сервера YC, на котором хостится Yandex Data Base (Managed Service for YDB), и сетевым доступом во внутреннюю сеть организации для пересылки событий на коллектор R-Vision SIEM.

Настройка Yandex Cloud

Создание Data Stream

  1. В левом меню консоли YC откройте Все сервисы.

  2. Перейдите в раздел Data Streams.

  3. В правом верхнем углу нажмите на кнопку Создать поток.

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

  5. Укажите имя потока.

  6. Внизу страницы нажмите на кнопку Создать.

    yc create data stream

Создание сервисной учетной записи

  1. В левом меню консоли YC откройте Все сервисы.

  2. Перейдите в раздел Identity and Access Management.

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

  4. В открывшемся окне укажите имя сервисной учетной записи.

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

    yc create service account

  6. Перейдите в обзор созданного пользователя и в правом верхнем углу нажмите на кнопку Создать новый ключ → Создать API-ключ.

  7. Укажите Область действия ключа: yc.ydb.topics.manage.

  8. Нажмите на кнопку Создать, сохраните полученный ключ в надежном месте.

  9. В левом меню консоли YC откройте Все сервисы.

  10. Перейдите в раздел Managed Service for YDB.

  11. Откройте базу данных, в которой ранее создавали Data Stream, и перейдите на вкладку Права доступа.

  12. Выдайте роль ydb.viewer сервисной учетной записи.

Создание Audit Trail

  1. В левом меню консоли YC откройте Все сервисы.

  2. Перейдите в раздел Audit Trails.

  3. В правом верхнем углу нажмите на кнопку Создать трейл.

  4. На открывшейся странице укажите:

    • Название трейла.

    • Назначение: выберите Data Streams.

  5. Выберите ранее созданный сервисный аккаунт. Будет выведено предупреждение о том, каких ролей не хватает аккаунту для чтения трейлов и записи событий из трейлов в Data Stream.

  6. Наведите на соответствующие предложенные роли курсор, консоль YC предложит добавить недостающие роли аккаунту.

  7. Настройте Сбор событий с уровня конфигурации.

  8. Настройте Сбор событий с уровня сервисов: для каждого сервиса укажите ресурс, каталог и какие события хотите получать (детальная настройка), либо оставьте вариант Получать все (по умолчанию).

  9. Внизу страницы нажмите на кнопку Создать.

    yc create audit trail

Настройка ВМ в DMZ организации

Установка и настройка kcat

  1. Для сбора событий из Yandex Data Streams требуется утилита kcat (бывш. kafkacat). На debian-подобных дистрибутивах установите kcat:

    sudo apt install kcat -y
  2. Создайте конфигурационный файл /etc/kcat/yds.conf:

    bootstrap.servers=<Kafka API эндпоинт>
    security.protocol=SASL_SSL
    #security.protocol=SASL_PLAINTEXT
    sasl.mechanisms=PLAIN
    sasl.username=<Путь к базе данных>
    sasl.password=<API token>
    broker.address.family=v4
    ssl.endpoint.identification.algorithm=https
    auto.offset.reset=latest
    session.timeout.ms=30000
  3. Укажите параметры <Kafka API эндпоинт>, <Путь к базе данных> и <API token>. Значения <Kafka API эндпоинт> и <Путь к базе данных> можно посмотреть на странице базы данных в YC на вкладке Обзор (например, ydb-01.serverless.yandexcloud.net:9093 и /ru-central1/b1g7qfa5tr2pafeh6cav/etnrte4o8suq771eaptc). <API token> — ранее созданный токен сервисной учетной записи.

  4. Сделайте файл конфигурации доступным для чтения только владельцу:

    sudo chown root:root /etc/kcat/yds.conf
    sudo chmod 600 /etc/kcat/yds.conf

Создание скрипта-обертки вызова kcat

  1. Создайте скрипт-обертку (например, /usr/local/bin/yds-audit-to-syslog.sh):

    #!/usr/bin/env bash
    set -euo pipefail
    
    TOPIC="data-stream1"
    GROUP_ID="yds-audit-syslog-prod"
    
    # Проверка переменных
    if [[ -z "${TOPIC// }" ]]; then
      echo "ERROR: TOPIC is empty" >&2
      exit 1
    fi
    
    if [[ -z "${GROUP_ID// }" ]]; then
      echo "ERROR: GROUP_ID is empty" >&2
      exit 1
    fi
    
    echo "TOPIC=[$TOPIC], GROUP_ID=[$GROUP_ID]" >&2
    
    KCAT_CONFIG="/etc/kcat/yds.conf"
    SYSLOG_TAG="yds-audit"
    
    # Чтение потока и отправка в systemd journal напрямую
    kcat -C \
      -F "$KCAT_CONFIG" \
      -G "$GROUP_ID" \
      "$TOPIC" \
      -q \
      -f '%s\n' \
    | systemd-cat -t "$SYSLOG_TAG" -p info
  2. Укажите параметры:

    • TOPIC="data-stream1": название потока Yandex Data Streams, созданного ранее в YC.

    • GROUP_ID="yds-audit-syslog-prod": произвольный идентификатор группы.

  3. Сделайте скрипт исполняемым:

    chmod +x /usr/local/bin/yds-audit-to-syslog.sh

Создание сервиса systemd

  1. Создайте файл сервиса /etc/systemd/system/yds-audit-to-syslog.service:

    [Unit]
    Description=Yandex Data Streams Audit Trails → Syslog (kcat)
    After=network-online.target
    Wants=network-online.target
    
    [Service]
    Type=simple
    User=root
    Group=root
    ExecStart=/usr/local/bin/yds-audit-to-syslog.sh
    
    Restart=always
    RestartSec=5
    
    # Hardening
    NoNewPrivileges=true
    PrivateTmp=true
    ProtectSystem=strict
    ProtectHome=true
    ReadOnlyPaths=/etc/kcat
    ReadWritePaths=/var/log
    
    LimitNOFILE=65536
    
    [Install]
    WantedBy=multi-user.target
  2. Перечитайте конфигурации сервисов и запустите новый сервис:

    systemctl daemon-reload
    systemctl enable --now yds-audit-to-syslog
  3. Убедитесь, что сервис запустился:

    systemctl status yds-audit-to-syslog

Отправка событий в syslog

  1. Настройте передачу событий. Для этого создайте файл /etc/rsyslog.d/51-yds.conf со следующим содержимым:

    if $programname == 'yds-audit' then {
        action(type="omfwd" target="<target>" port="<port>" protocol="<protocol>")
        stop
    }

    Здесь:

    • <target>: IP-адрес или полное доменное имя (FQDN) коллектора R-Vision SIEM.

    • <port>: порт точки входа Syslog в конвейере R-Vision SIEM.

    • <protocol>: сетевой протокол (tcp или udp).

  2. Перезапустите службу rsyslog.service с помощью команды:

    systemctl restart rsyslog.service

Настройка в R-Vision SIEM

Для настройки сбора и нормализации событий источника в R-Vision SIEM выполните следующие шаги:

  1. В интерфейсе R-Vision SIEM создайте новый конвейер в коллекторе.

  2. Добавьте на конвейер элемент Точка входа со следующими параметрами:

    • Название: введите название точки входа.

    • Тип точки входа: выберите вариант Syslog.

    • Порт точки входа: введите значение в соответствии с настройками на стороне виртуальной машины.

    • Протокол: выберите вариант в соответствии с настройками на стороне источника.

  3. Добавьте на конвейер элемент Нормализатор с правилом Yandex Cloud Audit Trail (идентификатор правила: RV-N-332).

  4. Соедините нормализатор с точкой входа.

  5. Добавьте на конвейер элемент Конечная точка типа Хранилище событий.

  6. Соедините конечную точку с нормализатором.

  7. Сохраните и установите конфигурацию конвейера.

Пример конфигурации конвейера:

yc pipeline

После настройки передачи событий, если настройка выполнена корректно, в хранилище начнут поступать события аудита Yandex Cloud.

Найти события аудита Yandex Cloud в хранилище можно по следующему фильтру:

device_product = "cloud"

yc search

Была ли полезна эта страница?

Обратная связь