Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Audit Trails
  • Начало работы
    • Все инструкции
    • Создание трейла
    • Управление трейлом
    • Обработка ошибок
    • Просмотр операций с ресурсами сервиса
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Справочник событий уровня конфигурации
  • Справочник событий уровня сервисов
  • История изменений
  • Обучающие курсы

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

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

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

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

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

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

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

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

Бакет 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. Введите имя трейла. Оно должно быть уникальным в рамках каталога.

  5. (Опционально) Введите описание трейла.

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

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

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

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

        Примечание

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

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

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

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

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

  8. Включите и настройте сбор событий с одного или двух уровней. Такие события попадут в аудитные логи.

    Чтобы настроить Сбор событий c уровня конфигурации:

    1. Выберите область сбора логов — Организация, Облако или Каталог. События, которые попадут в логи, будут собираться в указанной области.

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

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

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

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

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

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

    Чтобы настроить Сбор событий с уровня сервисов:

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

    2. Для каждого такого сервиса выберите область сбора логов — Организация, Облако или Каталог. События, которые попадут в логи, будут собираться в указанной области.

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

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

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

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

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

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

    4. Для каждого такого сервиса выберите один из следующих фильтров по событиям:

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

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

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

Посмотрите описание команды CLI для создания трейла, чтобы получить подробную информацию о доступных аргументах:

yc audit-trails trail create --help

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

В YAML-спецификации:

Создайте YAML-спецификацию, содержащую параметры трейла, и укажите этот файл в команде для создания трейла.

Этот способ упрощает работу с параметрами трейла и снижает вероятность ошибки. Кроме того, настроить регистрацию событий уровня сервисов можно только с помощью YAML-спецификации.

  1. Создайте YAML-файл с конфигурацией трейла:

    name: <имя_трейла>
    folder_id: <идентификатор_каталога>
    destination:
      # Должно быть указано только одно место назначения:
      # object_storage, cloud_logging, data_stream
      # Настройки для всех мест назначения приведены для иллюстрации
      object_storage:
        bucket_id: <имя_бакета>
        object_prefix: <префикс_для_объектов>
      cloud_logging:
        log_group_id: <идентификатор_лог_группы>
      data_stream:
        stream_name: <имя_потока_данных_YDS>
        database_id: <идентификатор_базы_данных_YDS>
    service_account_id: <идентификатор_сервисного_аккаунта>
    filtering_policy:
      management_events_filter:
        resource_scopes:
          - id: <идентификатор_организации_облака_или_каталога>
            type: <тип>
      data_events_filters:
        - service: <имя_сервиса>
          resource_scopes:
            - id: <идентификатор_организации_облака_или_каталога>
              type: <тип>
          # Допустимо указать либо included_events, либо excluded_events,
          # либо не указывать оба этих параметра, чтобы собирались все события сервиса
          # Оба параметра приведены для иллюстрации
          included_events:
            event_types:
              - <эти_события_будут_собираться>
          excluded_events:
            event_types:
              - <эти_события_не_будут_собираться>
    

    Где:

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

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

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

      Важно

      Настройки мест назначения — взаимоисключающие. Использование одних настроек делает невозможным использование других.

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

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

          Имя бакета можно запросить со списком бакетов в каталоге (используется каталог по умолчанию):

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

          Примечание

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

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

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

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

        • stream_name — имя созданного ранее потока данных. Имя можно запросить со списком потоков данных в каталоге.
        • database_id — идентификатор базы данных YDB, которая используется потоком данных Data Streams. Идентификатор можно запросить со списком баз данных YDB в каталоге.
    • 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 взаимоисключающие, настройте только один из них. Если оба фильтра не настроены, будут собираться все события.

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

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

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

Примечание

Настроить регистрацию событий уровня сервисов можно только с помощью YAML-спецификации.

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

yc audit-trails trail create \
  --name <имя_трейла> \
  --description <описание_трейла> \
  --labels <список_меток> \
  --service-account-id <идентификатор_сервисного_аккаунта> \
  --destination-bucket <имя_бакета> \
  --destination-bucket-object-prefix <префикс_для_объектов> \
  --destination-log-group-id <идентификатор_лог_группы> \
  --destination-yds-stream <имя_потока_данных_YDS> \
  --destination-yds-database-id <идентификатор_базы_данных_YDS> \
  --filter-all-folder-id <идентификатор_каталога> \
  --filter-all-cloud-id <идентификатор_облака> \
  --filter-all-organisation-id <идентификатор_организации> \
  --filter-some-folder-ids <список_каталогов_в_облаке> \
  --filter-from-cloud-id <идентификатор_облака_с_выбранными_каталогами> \
  --filter-some-cloud-ids <список_облаков_в_организации> \
  --filter-from-organisation-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.

  • --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-folder-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.

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

    resource "yandex_audit_trails_trail" "basic_trail" {
      name        = "<имя_трейла>"
      folder_id   = "<идентификатор_каталога>"
      description = "<описание_трейла>"
      labels = {
        key = "value"
      }
      service_account_id = "<идентификатор_сервисного_аккаунта>"
    
    
      # Должно быть указано только одно место назначения:
      # storage_destination , logging_destination, data_stream_destination
      # Настройки для всех мест назначения приведены для иллюстрации
    
      logging_destination {
        log_group_id = "<идентификатор_лог-группы>"
      }
      storage_destination {
        bucket_name   = "<идентификатор_бакета>"
        object_prefix = "<префикс>"
      }
      data_stream_destination {
        database_id = "<идентификатор_базы_данных_YDS>"
        stream_name = "<имя_потока_данных_YDS>"
      }
    
      # Настройки политики фильтрации
    
      filtering_policy {
        management_events_filter {
          resource_scope {
            resource_id   = "<идентификатор_организации>"
            resource_type = "resource-manager.organization"
          }
        }  
        data_events_filter {
          service = "<сервис>"
          included_events = ["<тип_событий_сервиса>","<тип_событий_сервиса_2>"]
          resource_scope {
            resource_id   = "<идентификатор_облака>"
            resource_type = "resource-manager.cloud"
          }
          resource_scope {
            resource_id   = "<идентификатор_каталога>"
            resource_type = "resource-manager.folder"
          }
        }
        data_events_filter {
          service = "<сервис_2>"
          resource_scope {
            resource_id   = "<идентификатор_облака_2>"
            resource_type = "resource-manager.cloud"
          }
          resource_scope {
            resource_id   = "<идентификатор_облака_3>"
            resource_type = "resource-manager.cloud"
          }
        }
        data_events_filter {
          service = "<сервис_3>"
          resource_scope {
            resource_id   = "<идентификатор_каталога_2>"
            resource_type = "resource-manager.folder"
          }
          resource_scope {
            resource_id   = "<идентификатор_каталога_3>"
            resource_type = "resource-manager.folder"
          }
        }
      }
    }
    

    Где:

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

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

    • description — описание трейла, которое позволит отличать его от других трейлов. Например My very first trail. Необязательный параметр.

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

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

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

    Важно

    Должно быть указано только одно место назначения: storage_destination , logging_destination или data_stream_destination.

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

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

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

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

        Примечание

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

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

      • stream_name — имя потока данных, в который трейл будет сохранять аудитные логи.
      • database_id — идентификатор базы данных Yandex Managed Service for YDB, которая используется потоком данных Data Streams.
    • filtering_policy — настройки политики фильтрации, которая определяет, какие события будут собираться и попадут в аудитные логи. Политика состоит из набора фильтров, которые относятся к разным уровням событий. Содержит объекты management_events_filter и data_events_filters.

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

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

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

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

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

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

    Более подробную информацию о параметрах ресурса yandex_audit_trails_trail в Terraform см. в документации провайдера.

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

    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 <имя_трейла>
    

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

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

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

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

Создание трейла с фильтрами событий уровня конфигурации и уровня сервисовСоздание трейла с фильтрами событий уровня конфигурации и уровня сервисов

Создайте трейл со следующими параметрами:

  • Имя трейла — sample-trail-all-planes.

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

  • Объект назначения — бакет Object Storage с именем sample-logs-bucket.

  • Сервисный аккаунт для трейла — аккаунт с идентификатором service0***.

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

    В качестве области сбора логов выбрана организация с идентификатором org1***. Логи будут собираться из всех облаков, которые принадлежат этой организации.

  • Настройки фильтров событий уровня сервиса:

    • Для сервиса Managed Service for PostgreSQL логи будут собираться из облака с идентификатором cloud1*** и каталога с идентификатором folder1***.

      Будут собираться все события сервиса, кроме следующих:

      • yandex.cloud.audit.mdb.postgresql.CreateDatabase,
      • yandex.cloud.audit.mdb.postgresql.UpdateDatabase.
    • Для сервиса Object Storage логи будут собираться из облаков с идентификаторами cloud2*** и cloud3***.

      Будут собираться только следующие события сервиса:

      • yandex.cloud.audit.storage.ObjectCreate,
      • yandex.cloud.audit.storage.ObjectUpdate,
      • yandex.cloud.audit.storage.ObjectDelete.
    • Для сервиса Compute Cloud логи будут собираться из каталогов с идентификаторами folder2*** и folder3***.

      Будут собираться все события сервиса.

CLI
Terraform
API
  1. Создайте YAML-файл sample-trail-all-planes.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: storage
          resource_scopes:
            - id: cloud2***
              type: resource-manager.cloud
            - id: cloud3***
              type: resource-manager.cloud
          included_events:
            event_types:
              - yandex.cloud.audit.storage.ObjectCreate
              - yandex.cloud.audit.storage.ObjectUpdate
              - yandex.cloud.audit.storage.ObjectDelete
        - service: compute
          resource_scopes:
            - id: folder2***
              type: resource-manager.folder
            - id: folder3***
              type: resource-manager.folder
    
  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 = "resource-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 = "storage"
          resource_scope {
            resource_id   = "cloud2***"
            resource_type = "resource-manager.cloud"
          }
          resource_scope {
            resource_id   = "cloud3***"
            resource_type = "resource-manager.cloud"
          }
        }
        data_events_filter {
          service = "compute"
          resource_scope {
            resource_id   = "folder2***"
            resource_type = "resource-manager.folder"
          }
          resource_scope {
            resource_id   = "folder3***"
            resource_type = "resource-manager.folder"
          }
        }
      }
    }
    
  2. Создайте ресурсы:

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

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

      terraform validate
      

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

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

      terraform plan
      

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

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

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

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

    yc audit-trails trail get sample-trail-all-planes
    

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

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

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

  1. Получите IAM-токен, чтобы аутентифицироваться в API.

  2. Сохраните полученный IAM-токен в переменную, выполните в терминале:

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

    {
      "folderId": "folder0**",
      "name": "sample-trail-all-planes",
      "description": "sample-trail",
      "destination": {
        "objectStorage": {
          "bucketId": "sample-logs-bucket"
        }
      },
      "serviceAccountId": "service0***",
      "filteringPolicy": {
        "managementEventsFilter": {
          "resourceScopes": [
            {
              "id": "org1***",
              "type": "resource-manager.organization"
            }
          ]
        },
        "dataEventsFilters": [
          {
            "service": "mdb.postgresql",
            "excludedEvents": {
              "eventTypes": [
                "yandex.cloud.audit.mdb.postgresql.CreateDatabase"
                ,"yandex.cloud.audit.mdb.postgresql.UpdateDatabase"
              ]
            },
            "resourceScopes": [
              {
                "id": "cloud1***",
                "type": "resource-manager.cloud"
              },
              {
                "id": "folder1***",
                "type": "resource-manager.folder"
              }
            ]
          },
          {
            "service": "storage",
            "resourceScopes": [
              {
                "id": "cloud2**",
                "type": "resource-manager.cloud"
              },
              {
                "id": "cloud3**",
                "type": "resource-manager.cloud"
              }
            ]
          },
          {
            "service": "compute",
            "resourceScopes": [
              {
                "id": "folder2**",
                "type": "resource-manager.folder"
              },
              {
                "id": "folder3**",
                "type": "resource-manager.folder"
              }
            ]
          }
        ]
      }
    }
    
  4. Выполните в терминале запрос:

    curl \
      --request POST \
      --header "Authorization: Bearer ${IAM_TOKEN}" \
      --data "@<файл_с_телом_запроса>" \
      https://audittrails.api.cloud.yandex.net/audit-trails/v1/trails
    

    Где:

    • <файл_с_телом_запроса> — путь к созданному ранее файлу с телом запроса body.json.

    Результат:

    {
    "done": true,
    "metadata": {
      "@type": "type.googleapis.com/yandex.cloud.audittrails.v1.CreateTrailMetadata",
      "trailId": "cnpvprd5pa66********"
    },
    "id": "cnp9qb9g8ldb********",
    "description": "operation_create",
    "createdAt": "2025-02-20T07:06:18.547321903Z",
    "createdBy": "ajevfb0tjfts********",
    "modifiedAt": "2025-02-20T07:06:18.547321903Z"
    }
    

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

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

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

Предыдущая
Все инструкции
Следующая
Управление трейлом
Проект Яндекса
© 2025 ООО «Яндекс.Облако»