Yandex Cloud
Поиск
Связаться с экспертомПопробовать бесплатно
  • Кейсы
  • Документация
  • Блог
  • Все сервисы
    • Cloud Interconnect
    • Cloud Backup
    • Cloud Registry
    • Yandex AI Studio
    • Compute Cloud
    • Object Storage
    • Managed Service for Kubernetes®
    • Yandex BareMetal
    • Smart Web Security
    • Security Deck
    • Managed Service for PostgreSQL
    • Managed Service for ClickHouse®
    • Monium
    • Cloud CDN
    • Network Load Balancer
    • Virtual Private Cloud
    • Cloud DNS
    • Application Load Balancer
    • Yandex Cloud Video
    • Stackland
    • Yandex Cloud Router
    • Yandex Managed Service for Trino
    • Managed Service for MySQL®
    • Managed Service for Valkey™
    • Managed Service for Apache Spark™
    • Yandex StoreDoc
    • Managed Service for OpenSearch
    • Managed Service for Apache Kafka®
    • Data Transfer
    • Yandex MPP Analytics Engine for PostgreSQL
    • Yandex Managed Service for Apache Airflow®
    • Data Processing
    • Yandex MetaData Hub
    • Managed Service for YDB
    • Managed Service for Sharded PostgreSQL
    • Managed Service for YTsaurus
    • Yandex WebSQL
    • DataLens
    • Yandex Search API
    • SpeechSense
    • SpeechKit
    • DataSphere
    • Vision OCR
    • Translate
    • Yandex Neurosupport
    • VibeCraft
    • Yandex Cloud Detection and Response
    • Yandex Identity Hub
    • Key Management Service
    • Certificate Manager
    • Yandex Lockbox
    • Audit Trails
    • SmartCaptcha
    • Cloud Desktop
    • GOST Gateway
    • Yandex SIEM
    • SourceCraft Code Assistant
    • Container Registry
    • Managed Service for GitLab
    • SourceCraft
    • Managed Service for Prometheus®
    • Cloud Functions
    • API Gateway
    • Yandex Cloud Postbox
    • Message Queue
    • Serverless Integrations
    • IoT Core
    • Data Streams
    • Serverless Containers
    • Cloud Notification Service
    • Yandex Query
    • Identity and Access Management
    • Yandex Cloud Console
    • Resource Manager
    • Yandex Cloud Billing
    • Yandex Cloud Quota Manager
    • Cloud Apps
  • Статус работы сервисов
  • Marketplace
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Искусственный интеллект
    • Безопасность
    • Инструменты DevOps
    • Бессерверные вычисления
    • Управление ресурсами
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Yandex Cloud Trust
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Калькулятор цен
    • Тарифы
    • Акции и free tier
  • Кейсы
  • Документация
  • Блог
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ООО «Яндекс.Облако»
Yandex Audit Trails
  • Начало работы
    • Все инструкции
    • Создание трейла
    • Управление трейлом
    • Подготовка спецификации трейла
    • Обработка ошибок
    • Просмотр операций с ресурсами сервиса
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Справочник событий уровня конфигурации
  • Справочник событий уровня сервисов
  • История изменений
  • Обучающие курсы

В этой статье:

  • Перед началом работы
  • Создать трейл
  • Примеры
  • Создание трейла с фильтрацией событий
  • Фильтрация по значениям полей
  • Что дальше
  1. Пошаговые инструкции
  2. Создание трейла

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

Статья создана
Yandex Cloud
Улучшена
Обновлена 17 сентября 2026 г.
Открыть в Markdown
  • Перед началом работы
  • Создать трейл
  • Примеры
    • Создание трейла с фильтрацией событий
    • Фильтрация по значениям полей
  • Что дальше

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

  • бакет Yandex Object Storage;
  • лог-группу Yandex Cloud Logging;
  • поток данных Yandex Data Streams.

При создании трейла через CLI, Terraform или API в фильтрах событий уровня сервисов можно задать условия по значениям полей. Это позволяет уменьшить поток событий и объем хранимых логов.

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

Подготовьте объект назначения и сервисный аккаунт для трейла:

Бакет Object Storage
Лог-группа Cloud Logging
Поток данных Data Streams
  1. Создайте бакет с ограниченным доступом, в который будут загружаться аудитные логи.

  2. (Опционально) Включите шифрование для бакета.

    Убедитесь, что у аккаунта, от имени которого вы собираетесь создавать ключ шифрования для бакета, есть роль kms.editor на каталог.

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

  4. Назначьте роли сервисному аккаунту, чтобы трейл мог собирать и загружать логи:

    • storage.uploader на бакет.

    • kms.keys.encrypter на ключ шифрования для бакета.

      Эта роль необходима, только если для бакета было включено шифрование.

    • audit-trails.viewer на один из ресурсов, который определяет нужную область сбора логов:

      • Организация — чтобы собирать логи в выбранных облаках организации.
      • Облако — чтобы собирать логи в выбранных каталогах облака.
      • Каталог — чтобы собирать логи в этом каталоге.

      Права доступа наследуются от родительского ресурса к дочерним. Например, если сервисному аккаунту назначить роль на облако, то трейл, использующий этот аккаунт, сможет собирать логи ресурсов во всех каталогах этого облака. Однако трейл не сможет собирать логи в других облаках, принадлежащих организации, — для этого потребуется назначить роль на организацию.

  5. Убедитесь, что у аккаунта, от имени которого вы собираетесь создавать трейл, есть необходимые роли:

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

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

  3. Назначьте роли сервисному аккаунту, чтобы трейл мог собирать и загружать логи:

    • logging.writer на лог-группу.
    • audit-trails.viewer на один из ресурсов, который определяет нужную область сбора логов:

      • Организация — чтобы собирать логи в выбранных облаках организации.
      • Облако — чтобы собирать логи в выбранных каталогах облака.
      • Каталог — чтобы собирать логи в этом каталоге.

      Права доступа наследуются от родительского ресурса к дочерним. Например, если сервисному аккаунту назначить роль на облако, то трейл, использующий этот аккаунт, сможет собирать логи ресурсов во всех каталогах этого облака. Однако трейл не сможет собирать логи в других облаках, принадлежащих организации, — для этого потребуется назначить роль на организацию.

  4. Убедитесь, что у аккаунта, от имени которого вы собираетесь создавать трейл, есть необходимые роли:

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

    Совет

    Рекомендуем включить автопартиционирование на принимающем потоке данных.

    Часть событий может потеряться при перегрузке отдельных сегментов или всего потока. Автопартиционирование автоматически добавляет сегменты и распределяет нагрузку, что помогает избежать потерь. Если автопартиционирование отключено, самостоятельно проверяйте и увеличивайте количество сегментов при необходимости.

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

  3. Назначьте роли сервисному аккаунту, чтобы трейл мог собирать и загружать логи:

    • yds.writer на поток данных.
    • audit-trails.viewer на один из ресурсов, который определяет нужную область сбора логов:

      • Организация — чтобы собирать логи в выбранных облаках организации.
      • Облако — чтобы собирать логи в выбранных каталогах облака.
      • Каталог — чтобы собирать логи в этом каталоге.

      Права доступа наследуются от родительского ресурса к дочерним. Например, если сервисному аккаунту назначить роль на облако, то трейл, использующий этот аккаунт, сможет собирать логи ресурсов во всех каталогах этого облака. Однако трейл не сможет собирать логи в других облаках, принадлежащих организации, — для этого потребуется назначить роль на организацию.

  4. Убедитесь, что у аккаунта, от имени которого вы собираетесь создавать трейл, есть необходимые роли:

    • audit-trails.editor на каталог, в котором будет находиться трейл.
    • iam.serviceAccounts.user на сервисный аккаунт для трейла.

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

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

  2. Перейдите в сервис Audit Trails.

  3. Нажмите Создать трейл.

  4. В блоке Назначение выберите один из объектов назначения и укажите его настройки:

    • Object Storage — загружать аудитные логи в бакет Object Storage. Рекомендуется для долгосрочного хранения данных. Задайте настройки хранения логов:

      • Бакет — бакет, который был создан ранее.

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

        Примечание

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

      • Ключ шифрования — ключ шифрования для бакета. Выбирать его необходимо, только если для бакета было включено шифрование.

    • Cloud Logging — лог-группа, которая была создана ранее. В нее будут загружаться аудитные логи. Рекомендуется для быстрого сбора и анализа логов.

    • Data Streams — поток данных, который был создан ранее. В этот поток будут загружаться аудитные логи. Рекомендуется для потоковой передачи логов в другие сервисы или системы.

  5. В блоке Сбор логов с управляющего слоя:

    1. Включите сбор логов.

    2. Выберите ресурс: Организация, Облако или Каталог.

    3. В зависимости от выбранного ресурса выберите конкретные облака или каталоги, с которых будут собираться события:

      • Для области сбора Организация выберите из выпадающего списка Облако одно или несколько облаков, с которых будут собираться события.

        Оставьте значение по умолчанию (Все), чтобы собирать события со всех облаков в организации.

      • Для области сбора Облако выберите из выпадающего списка Каталог один или несколько каталогов, с которых будут собираться события.

        Оставьте значение по умолчанию (Все), чтобы собирать события со всех каталогов в облаке.

  6. В блоке Сбор логов со слоя данных:

    Важно

    В консоли управления сбор некоторых событий уровня сервисов включен по умолчанию. Их доставка оплачивается в соответствии с правилами тарификации. Если события уровня сервисов вам не нужны, отключите их сбор.

    1. Включите сбор логов.

    2. Выберите сервисы, для которых вы хотите собирать аудитные логи.

    3. Для каждого сервиса настройте область сбора и фильтр событий:

      1. Справа от названия сервиса нажмите .

      2. Выберите ресурс: Организация, Облако или Каталог.

      3. В зависимости от выбранного ресурса выберите конкретные облака или каталоги, с которых будут собираться события:

        • Для области сбора Организация выберите из выпадающего списка Облако одно или несколько облаков, с которых будут собираться события.

          Оставьте значение по умолчанию (Все), чтобы собирать события со всех облаков в организации.

        • Для области сбора Облако выберите из выпадающего списка Каталог один или несколько каталогов, с которых будут собираться события.

          Оставьте значение по умолчанию (Все), чтобы собирать события со всех каталогов в облаке.

      4. Выберите фильтр событий:

        • Получать все — чтобы собирать все события сервиса.
        • Выбранные — чтобы собирать только выбранные события. Затем выберите события.
        • Исключить — чтобы собирать все события, кроме выбранных. Затем выберите события.

    Чтобы ограничить сбор событий по значениям полей, задайте условия фильтрации через CLI, API или Terraform.

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

  8. В поле Имя укажите имя создаваемого трейла. Оно должно быть уникальным в рамках каталога.

  9. (Опционально) Укажите описание трейла.

  10. Нажмите Создать.

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

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

Посмотрите описание команды CLI для создания трейла:

yc audit-trails trail create --help

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

В YAML-спецификации
  1. Создайте YAML-файл с конфигурацией трейла. В шаблоне логи загружаются в бакет:

    name: <имя_трейла>
    folder_id: <идентификатор_каталога>
    destination:
      object_storage:
        bucket_id: <имя_бакета>
        object_prefix: <префикс_для_объектов>
    service_account_id: <идентификатор_сервисного_аккаунта>
    filtering_policy:
      management_events_filter:
        resource_scopes:
          - id: <идентификатор_организации_облака_или_каталога>
            type: <тип>
      data_events_filters:
        - service: <имя_сервиса>
          resource_scopes:
            - id: <идентификатор_организации_облака_или_каталога>
              type: <тип>
          included_events:
            event_types:
              - <полное_имя_события>
    

    За основу также можно взять спецификацию существующего трейла.

    Параметры конфигурации:

    • name — имя трейла. Оно должно быть уникальным в рамках каталога.

    • folder_id — идентификатор каталога, в котором будет размещен трейл.

    • destination — настройки объекта назначения для аудитных логов.

      Укажите только один объект назначения: object_storage, cloud_logging или data_stream.

      • object_storage — загружать логи в бакет Yandex Object Storage:

        • bucket_id — имя созданного ранее бакета.

          Чтобы посмотреть имена бакетов в каталоге по умолчанию, выполните команду:

          yc storage bucket list
          
        • object_prefix — префикс, который будет присвоен объектам с аудитными логами в бакете. Необязательный параметр, участвует в полном имени файла аудитного лога.

          Примечание

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

      • cloud_logging — загружать логи в лог-группу Yandex Cloud Logging.

        Замените блок destination в шаблоне:

        destination:
          cloud_logging:
            log_group_id: <идентификатор_лог_группы>
        

        В параметре log_group_id укажите идентификатор созданной ранее лог-группы. Идентификатор можно запросить со списком лог-групп в каталоге.

      • data_stream — загружать логи в поток данных Yandex Data Streams:

        Замените блок destination в шаблоне:

        destination:
          data_stream:
            stream_name: <имя_потока_данных>
            database_id: <идентификатор_базы_данных>
            codec: RAW
        
        • stream_name — имя созданного ранее потока данных. Имя можно запросить со списком потоков данных в каталоге.
        • database_id — идентификатор базы данных YDB, которая используется потоком данных Data Streams. Идентификатор можно запросить со списком баз данных YDB в каталоге.
        • codec — метод сжатия событий при записи в поток данных Data Streams. Возможные значения: RAW (без сжатия, по умолчанию), GZIP, ZSTD. Включайте сжатие, если ожидается поток событий более 1 МБ/с.
    • service_account_id — идентификатор созданного ранее сервисного аккаунта.

    • filtering_policy — настройки политики фильтрации, которая определяет, какие события будут собираться и попадут в аудитные логи. Политика состоит из набора фильтров, которые относятся к разным уровням событий.

      Важно

      Для политики обязательно должен быть настроен хотя бы один фильтр, иначе не получится создать трейл.

      Доступные фильтры:

      • management_events_filter — фильтр событий уровня конфигурации.

        Укажите область сбора логов в параметре resource_scopes:

        • id — идентификатор организации, облака или каталога.

        • type — тип области согласно указанному идентификатору:

          • organization-manager.organization — организация;
          • resource-manager.cloud — облако;
          • resource-manager.folder — каталог.

        Можно комбинировать в одном параметре resource_scopes несколько областей, которые принадлежат одной организации. Например, собирать логи из одного облака целиком, а из другого — только из определенных каталогов:

        resource_scopes:
          # Сбор логов из облака 1 целиком
          - id: <идентификатор_облака_1>
            type: resource-manager.cloud
          # Сбор логов из каталога 1 облака 2
          - id: <идентификатор_каталога_1>
            type: resource-manager.folder
          # Сбор логов из каталога 2 облака 2
          - id: <идентификатор_каталога_2>
            type: resource-manager.folder
        

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

      • data_events_filters — фильтры событий уровня сервисов. Можно настроить несколько фильтров такого типа — по одному для каждого сервиса.

        Фильтр для одного сервиса имеет следующую структуру:

        • service — имя сервиса. Его можно получить в справочнике событий уровня сервисов.

        • resource_scopes — места, откуда собирать события уровня сервисов. Этот параметр настраивается аналогично фильтру событий уровня конфигурации.

        • *_events — полные имена событий для сбора или исключения:

          • included_events.event_types — собирать только указанные события.
          • excluded_events.event_types — собирать все события, кроме указанных.

          Для исключения событий замените блок included_events в шаблоне:

          excluded_events:
            event_types:
              - <полное_имя_события>
          

          Используйте полное имя из поля event_type аудитного лога. Например, событию CreateIamToken из справочника соответствует yandex.cloud.audit.iam.CreateIamToken.

        Важно

        Для фильтров по именам событий блоки included_events и excluded_events взаимоисключающие. Если они не заполнены, записываются все события. В том же фильтре можно дополнительно задать условия по значениям полей.

  2. (Опционально) Дополните фильтр условиями по значениям полей для нужного сервиса. Для этого в элементе списка filtering_policy.data_events_filters задайте правила include_rules, exclude_rules. Примеры настройки фильтрации приведены в инструкции Создание трейла.

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

    yc audit-trails trail create --file <путь_к_файлу>
    
В параметрах команды

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

yc audit-trails trail create \
  --name <имя_трейла> \
  --service-account-id <идентификатор_сервисного_аккаунта> \
  --destination-bucket <имя_бакета> \
  --filter-all-folder-id <идентификатор_каталога>

Для другого объекта назначения замените --destination-bucket одним из вариантов:

  • Лог-группа:

    --destination-log-group-id <идентификатор_лог_группы>
    
  • Поток данных:

    --destination-yds-stream <имя_потока_данных> \
    --destination-yds-database-id <идентификатор_базы_данных>
    

Параметры команды:

  • --name — имя создаваемого трейла.
  • --description — описание трейла. Необязательный параметр.

  • --labels — список меток. Необязательный параметр. Можно указать одну или несколько меток через запятую в формате <ключ1>=<значение1>,<ключ2>=<значение2>.

  • --service-account-id — идентификатор сервисного аккаунта.

  • --destination-bucket — имя бакета Yandex Object Storage, в который будут загружаться аудитные логи.

    С этим параметром нельзя использовать параметры --destination-log-group-id и --destination-yds-stream.

  • --destination-bucket-object-prefix — префикс, который будет присвоен объектам с аудитными логами в бакете. Необязательный параметр, участвует в полном имени файла аудитного лога.

    Примечание

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

  • --destination-log-group-id — идентификатор лог-группы Yandex Cloud Logging, в которую будут загружаться аудитные логи.

    С этим параметром нельзя использовать параметры --destination-bucket и --destination-yds-stream.

  • --destination-yds-stream — имя потока данных Yandex Data Streams, в который будут загружаться аудитные логи.

    С этим параметром нельзя использовать параметры --destination-bucket и --destination-log-group-id.

  • --destination-yds-database-id — идентификатор базы данных YDB, которая используется потоком данных Data Streams.

  • --destination-yds-codec — метод сжатия событий при записи в поток данных Data Streams. Возможные значения: RAW (без сжатия, по умолчанию), GZIP, ZSTD. Включайте сжатие, если ожидается поток событий более 1 МБ/с.

  • --filter-all-folder-id — идентификатор каталога, для всех ресурсов которого будут регистрироваться события уровня конфигурации.

  • --filter-all-cloud-id — идентификатор облака, для всех ресурсов которого будут регистрироваться события уровня конфигурации.

  • --filter-all-organisation-id — идентификатор организации, для всех ресурсов которой будут регистрироваться события уровня конфигурации.

  • --filter-some-folder-ids — список идентификаторов каталогов, для всех ресурсов которых будут регистрироваться события уровня конфигурации в облаке, заданном в поле --filter-from-cloud-id.

    Параметр используется только в паре с параметром --filter-from-cloud-id.

  • --filter-from-cloud-id — идентификатор облака, в котором находятся каталоги, заданные в параметре --filter-some-folder-ids.

    Параметр используется только в паре с параметром --filter-some-folder-ids.

  • --filter-some-cloud-ids — список идентификаторов облаков, для всех ресурсов которых будут регистрироваться события уровня конфигурации в организации, заданной в поле --filter-from-organisation-id.

    Параметр используется только в паре с параметром --filter-from-organisation-id.

  • --filter-from-organisation-id — идентификатор организации, в которой находятся облака, заданные в параметре --filter-some-cloud-ids.

    Параметр используется только в паре с параметром --filter-some-cloud-ids.

Terraform позволяет быстро создать облачную инфраструктуру в Yandex Cloud и управлять ею с помощью файлов конфигураций. В файлах конфигураций хранится описание инфраструктуры на языке HCL (HashiCorp Configuration Language). При изменении файлов конфигураций Terraform автоматически определяет, какая часть вашей конфигурации уже развернута, что следует добавить или удалить.

Terraform распространяется под лицензией Business Source License, а провайдер Yandex Cloud для Terraform — под лицензией MPL-2.0.

Подробная информация о ресурсах провайдера в документации на сайте Terraform или в зеркале.

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

Чтобы управлять инфраструктурой с помощью Terraform от имени сервисного аккаунта или пользовательских аккаунтов: аккаунта на Яндексе, федеративного аккаунта и локального пользователя, аутентифицируйтесь соответствующим способом.

  1. Опишите в конфигурационном файле параметры трейла. В шаблоне логи загружаются в бакет:

    resource "yandex_audit_trails_trail" "basic_trail" {
      name        = "<имя_трейла>"
      folder_id   = "<идентификатор_каталога>"
      description = "<описание_трейла>"
      labels = {
        key = "value"
      }
      service_account_id = "<идентификатор_сервисного_аккаунта>"
    
      storage_destination {
        bucket_name   = "<имя_бакета>"
        object_prefix = "<префикс>"
      }
    
      filtering_policy {
        management_events_filter {
          resource_scope {
            resource_id   = "<идентификатор_организации_облака_или_каталога>"
            resource_type = "<тип>"
          }
        }
    
        data_events_filter {
          service         = "<имя_сервиса>"
          included_events = ["<полное_имя_события>"]
    
          resource_scope {
            resource_id   = "<идентификатор_организации_облака_или_каталога>"
            resource_type = "<тип>"
          }
        }
      }
    }
    

    Где:

    • name — имя создаваемого трейла. Требования к формату имени:

      • длина — от 3 до 63 символов;
      • может содержать строчные буквы латинского алфавита, цифры и дефисы;
      • первый символ — буква, последний — не дефис.
    • folder_id — идентификатор каталога, в котором создается трейл.

    • description — описание трейла. Необязательный параметр.

    • labels — список меток в формате ключ=значение. Необязательный параметр.

    • service_account_id — идентификатор сервисного аккаунта, от имени которого трейл собирает и загружает аудитные логи.

      В зависимости от области сбора аудитных логов сервисному аккаунту должна быть назначена роль audit-trails.viewer на организацию, облако или каталог, в которых трейл будет собирать аудитные логи.

    Укажите только один объект назначения: storage_destination, logging_destination или data_stream_destination.

    • logging_destination — загружать логи в лог-группу Yandex Cloud Logging.

      Замените блок storage_destination в шаблоне:

      logging_destination {
        log_group_id = "<идентификатор_лог_группы>"
      }
      
      • log_group_id — идентификатор лог-группы, в которую трейл будет сохранять аудитные логи.
    • storage_destination — загружать логи в бакет Yandex Object Storage:

      • bucket_name — имя бакета, куда трейл будет сохранять аудитные логи.

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

        Примечание

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

    • data_stream_destination — загружать логи в поток данных Yandex Data Streams:

      Замените блок storage_destination в шаблоне:

      data_stream_destination {
        database_id = "<идентификатор_базы_данных>"
        stream_name = "<имя_потока_данных>"
        codec       = "RAW"
      }
      
      • stream_name — имя потока данных, в который трейл будет сохранять аудитные логи.
      • database_id — идентификатор базы данных Yandex Managed Service for YDB, которая используется потоком данных Data Streams.
      • codec — метод сжатия событий при записи в поток данных Data Streams. Возможные значения: RAW (без сжатия, по умолчанию), GZIP, ZSTD. Включайте сжатие, если ожидается поток событий более 1 МБ/с.
    • filtering_policy — настройки политики фильтрации, которая определяет, какие события будут собираться и попадут в аудитные логи. Политика состоит из набора фильтров, которые относятся к разным уровням событий. Содержит блоки management_events_filter и data_events_filter.

      • management_events_filter — фильтр событий уровня конфигурации.

        • resource_scope — область сбора логов. Можно указать несколько блоков resource_scope для областей, которые принадлежат одной организации. Например, собирать логи из одного облака целиком, а из другого — только из определенных каталогов. Права сервисного аккаунта должны позволять сбор логов из указанных областей.

          • resource_id — идентификатор области сбора: организации, облака или каталога.

          • resource_type — тип области согласно указанному идентификатору:

            • organization-manager.organization — организация;
            • resource-manager.cloud — облако;
            • resource-manager.folder — каталог.
      • data_events_filter — фильтр событий уровня сервисов. Можно настроить несколько фильтров такого типа — по одному для каждого сервиса. Фильтр для одного сервиса имеет следующую структуру:

        • service — имя сервиса, в котором трейл будет обрабатывать события. Его можно получить в справочнике событий уровня сервисов.

        • resource_scope — места, откуда собирать события уровня сервисов. Этот блок настраивается аналогично фильтру событий уровня конфигурации.

        • included_events — полные имена событий для сбора. Вместо него можно указать excluded_events — полные имена событий для исключения. Эти параметры взаимоисключающие. Если оба не заданы, отбор не ограничивается именами событий.

          Используйте полное имя из поля event_type аудитного лога. Например, событию CreateIamToken из справочника соответствует yandex.cloud.audit.iam.CreateIamToken.

        • include_rule и exclude_rule — необязательные правила с условиями по значениям полей. Действуют вместе с выбором событий по именам.

    Подробнее о параметрах ресурса yandex_audit_trails_trail в документации провайдера.

  2. (Опционально) Дополните фильтр условиями по значениям полей для нужного сервиса. Для этого в блоке filtering_policy.data_events_filter задайте правила include_rule, exclude_rule. Используйте провайдер Yandex Cloud версии 0.225.0 или выше. Примеры настройки фильтрации приведены в инструкции Создание трейла.

  3. Создайте ресурсы:

    1. В терминале перейдите в директорию с конфигурационным файлом.

    2. Проверьте корректность конфигурации с помощью команды:

      terraform validate
      

      Если конфигурация является корректной, появится сообщение:

      Success! The configuration is valid.
      
    3. Выполните команду:

      terraform plan
      

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

    4. Примените изменения конфигурации:

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

    Terraform создаст все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления или с помощью команды CLI:

    yc audit-trails trail get <имя_трейла>
    
  1. Аутентифицируйтесь в API.

  2. Подготовьте параметры трейла: каталог, объект назначения, сервисный аккаунт и политику фильтрации с нужными сервисами и областями сбора.

    Чтобы взять за основу настройки существующего трейла, получите их методом REST API get или вызовом gRPC API TrailService/Get.

  3. (Опционально) Дополните фильтр условиями по значениям полей для нужного сервиса. Для этого в запросе REST API в элементе списка filteringPolicy.dataEventsFilters задайте правила includeRules, excludeRules. В gRPC API используйте filtering_policy.data_events_filters, include_rules и exclude_rules. Пример настройки фильтрации приведен в инструкции Создание трейла.

  4. Создайте трейл методом REST API create для ресурса Trail или вызовом gRPC API TrailService/Create.

Трейл создастся и начнет загружать аудитные логи в выбранный объект назначения.

При загрузке в Cloud Logging события в лог-группе могут дублироваться. Чтобы найти дубли, ориентируйтесь на уникальный идентификатор записи json_payload.event_id.

ПримерыПримеры

Создание трейла с фильтрацией событийСоздание трейла с фильтрацией событий

В примере трейл sample-trail-all-planes создается в каталоге folder0*** и записывает логи в бакет sample-logs-bucket с помощью сервисного аккаунта service0***.

Фильтры определяют, какие события попадают в логи:

  • События уровня конфигурации — из всех облаков организации org1***.
  • События уровня сервисов:
    • Managed Service for PostgreSQL — из облака cloud1*** и каталога folder1***: все события, кроме CreateDatabase и UpdateDatabase.
    • Identity and Access Management — из каталога folder2***: только события CreateIamToken. Из них исключаются события, в которых одновременно тип учетных данных равен iam.session, а имя субъекта — user@example.com.
CLI
Terraform
API
  1. Создайте YAML-файл sample-trail-all-planes.yaml с конфигурацией трейла:

    name: sample-trail-all-planes
    folder_id: folder0***
    destination:
      object_storage:
        bucket_id: sample-logs-bucket
    service_account_id: service0***
    filtering_policy:
      management_events_filter:
        resource_scopes:
          - id: org1***
            type: organization-manager.organization
      data_events_filters:
        - service: mdb.postgresql
          resource_scopes:
            - id: cloud1***
              type: resource-manager.cloud
            - id: folder1***
              type: resource-manager.folder
          excluded_events:
            event_types:
              - yandex.cloud.audit.mdb.postgresql.CreateDatabase
              - yandex.cloud.audit.mdb.postgresql.UpdateDatabase
        - service: iam
          resource_scopes:
            - id: folder2***
              type: resource-manager.folder
          included_events:
            event_types:
              - yandex.cloud.audit.iam.CreateIamToken
          exclude_rules:
            - conditions:
                - field: $.details.credential.type
                  operator: IN
                  values:
                    - iam.session
                - field: $.details.subject_name
                  operator: IN
                  values:
                    - user@example.com
    
  2. Выполните команду:

    yc audit-trails trail create --file sample-trail-all-planes.yaml
    
  1. Опишите в конфигурационном файле Terraform параметры трейла:

    resource "yandex_audit_trails_trail" "basic_trail" {
      name               = "sample-trail-all-planes"
      folder_id          = "folder0***"
      service_account_id = "service0***"
    
      storage_destination {
        bucket_name = "sample-logs-bucket"
      }
    
      filtering_policy {
        management_events_filter {
          resource_scope {
            resource_id   = "org1***"
            resource_type = "organization-manager.organization"
          }
        }
    
        data_events_filter {
          service = "mdb.postgresql"
          excluded_events = [
            "yandex.cloud.audit.mdb.postgresql.CreateDatabase",
            "yandex.cloud.audit.mdb.postgresql.UpdateDatabase",
          ]
    
          resource_scope {
            resource_id   = "cloud1***"
            resource_type = "resource-manager.cloud"
          }
    
          resource_scope {
            resource_id   = "folder1***"
            resource_type = "resource-manager.folder"
          }
        }
    
        data_events_filter {
          service         = "iam"
          included_events = ["yandex.cloud.audit.iam.CreateIamToken"]
    
          resource_scope {
            resource_id   = "folder2***"
            resource_type = "resource-manager.folder"
          }
    
          exclude_rule {
            condition {
              field    = "$.details.credential.type"
              operator = "IN"
              values   = ["iam.session"]
            }
    
            condition {
              field    = "$.details.subject_name"
              operator = "IN"
              values   = ["user@example.com"]
            }
          }
        }
      }
    }
    
  2. Примените конфигурацию:

    terraform apply
    

Воспользуйтесь методом REST API create для ресурса Trail.

Чтобы воспользоваться примерами, установите cURL.

Пример ниже разработан для выполнения в операционных системах MacOS и Linux. Чтобы выполнить его в системе Windows, ознакомьтесь с особенностями работы с Bash в Microsoft Windows.

  1. Получите IAM-токен для аутентификации в API и запишите его в переменную окружения:

    export IAM_TOKEN=<iam-токен>
    
  2. Подготовьте файл body.json с телом запроса:

    {
      "folderId": "folder0***",
      "name": "sample-trail-all-planes",
      "destination": {
        "objectStorage": {
          "bucketId": "sample-logs-bucket"
        }
      },
      "serviceAccountId": "service0***",
      "filteringPolicy": {
        "managementEventsFilter": {
          "resourceScopes": [
            {
              "id": "org1***",
              "type": "organization-manager.organization"
            }
          ]
        },
        "dataEventsFilters": [
          {
            "service": "mdb.postgresql",
            "resourceScopes": [
              {
                "id": "cloud1***",
                "type": "resource-manager.cloud"
              },
              {
                "id": "folder1***",
                "type": "resource-manager.folder"
              }
            ],
            "excludedEvents": {
              "eventTypes": [
                "yandex.cloud.audit.mdb.postgresql.CreateDatabase",
                "yandex.cloud.audit.mdb.postgresql.UpdateDatabase"
              ]
            }
          },
          {
            "service": "iam",
            "resourceScopes": [
              {
                "id": "folder2***",
                "type": "resource-manager.folder"
              }
            ],
            "includedEvents": {
              "eventTypes": [
                "yandex.cloud.audit.iam.CreateIamToken"
              ]
            },
            "excludeRules": [
              {
                "conditions": [
                  {
                    "field": "$.details.credential.type",
                    "operator": "IN",
                    "values": ["iam.session"]
                  },
                  {
                    "field": "$.details.subject_name",
                    "operator": "IN",
                    "values": ["user@example.com"]
                  }
                ]
              }
            ]
          }
        ]
      }
    }
    
  3. Выполните запрос:

    curl \
      --request POST \
      --header "Authorization: Bearer ${IAM_TOKEN}" \
      --header "Content-Type: application/json" \
      --data "@body.json" \
      https://audittrails.api.cloud.yandex.net/audit-trails/v1/trails
    

Фильтрация по значениям полейФильтрация по значениям полей

Примеры подходят для создания и изменения трейла. Добавьте фрагмент в фильтр нужного сервиса: в CLI — в элемент списка filtering_policy.data_events_filters, в Terraform — в блок filtering_policy.data_events_filter.

Исключение событий по типу учетных данных и пользователю

Фильтр для iam исключает события с типом учетных данных iam.session и именем субъекта user@example.com, например CreateIamToken.

CLI
Terraform
exclude_rules:
  - conditions:
      - field: $.details.credential.type
        operator: IN
        values:
          - iam.session
      - field: $.details.subject_name
        operator: IN
        values:
          - user@example.com
exclude_rule {
  condition {
    field    = "$.details.credential.type"
    operator = "IN"
    values   = ["iam.session"]
  }

  condition {
    field    = "$.details.subject_name"
    operator = "IN"
    values   = ["user@example.com"]
  }
}
Исключение событий по IP-адресу

Фильтр для mdb.mongodb исключает события GenericAuditEvent с адресом details.remote_address из подсети 192.0.2.0/24.

CLI
Terraform
exclude_rules:
  - conditions:
      - field: $.event_type
        operator: IN
        values:
          - yandex.cloud.audit.mdb.mongodb.GenericAuditEvent
      - field: $.details.remote_address
        operator: IP_IN
        values:
          - 192.0.2.0/24
exclude_rule {
  condition {
    field    = "$.event_type"
    operator = "IN"
    values   = ["yandex.cloud.audit.mdb.mongodb.GenericAuditEvent"]
  }

  condition {
    field    = "$.details.remote_address"
    operator = "IP_IN"
    values   = ["192.0.2.0/24"]
  }
}
Исключение сетевых событий по адресам источника и назначения

Фильтр для network исключает события ExternalFlow с адресами источника и назначения из подсети 198.51.100.0/24.

CLI
Terraform
exclude_rules:
  - conditions:
      - field: $.event_type
        operator: IN
        values:
          - yandex.cloud.audit.network.flowlogs.ExternalFlow
      - field: $.details.dst_addr
        operator: IP_IN
        values:
          - 198.51.100.0/24
      - field: $.details.src_addr
        operator: IP_IN
        values:
          - 198.51.100.0/24
exclude_rule {
  condition {
    field    = "$.event_type"
    operator = "IN"
    values   = ["yandex.cloud.audit.network.flowlogs.ExternalFlow"]
  }

  condition {
    field    = "$.details.dst_addr"
    operator = "IP_IN"
    values   = ["198.51.100.0/24"]
  }

  condition {
    field    = "$.details.src_addr"
    operator = "IP_IN"
    values   = ["198.51.100.0/24"]
  }
}
Сбор событий чтения секретов Kubernetes

Фильтр для k8s оставляет только события ApiServerWatch, ApiServerGet и ApiServerList для ресурсов типа secrets.

CLI
Terraform
include_rules:
  - conditions:
      - field: $.event_type
        operator: IN
        values:
          - yandex.cloud.audit.k8s.apiserver.ApiServerWatch
          - yandex.cloud.audit.k8s.apiserver.ApiServerGet
          - yandex.cloud.audit.k8s.apiserver.ApiServerList
      - field: $.details.native_api_server_event.objectRef.resource
        operator: IN
        values:
          - secrets
include_rule {
  condition {
    field    = "$.event_type"
    operator = "IN"
    values = [
      "yandex.cloud.audit.k8s.apiserver.ApiServerWatch",
      "yandex.cloud.audit.k8s.apiserver.ApiServerGet",
      "yandex.cloud.audit.k8s.apiserver.ApiServerList",
    ]
  }

  condition {
    field    = "$.details.native_api_server_event.objectRef.resource"
    operator = "IN"
    values   = ["secrets"]
  }
}

Регистр ключа objectRef соответствует исходному событию Kubernetes.

Что дальшеЧто дальше

  • Узнайте о формате аудитных логов.
  • Узнайте о порядке загрузки аудитных логов в SIEM.
  • Узнайте о поиске событий в аудитных логах.

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

Предыдущая
Все инструкции
Следующая
Управление трейлом
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ООО «Яндекс.Облако»