Управление трейлом
Вы можете изменять объект назначения, типы собираемых событий, области сбора аудитных логов и другие настройки трейла, а также удалять его.
Изменить трейл
Чтобы изменить трейл:
- В консоли управления
выберите каталог, в котором находится трейл. - В списке сервисов выберите Audit Trails.
- В строке с нужным трейлом нажмите значок
и выберите Редактировать. - Измените параметры трейла. Список настроек трейла, которые можно изменить, см. в разделе Настройки трейла.
- Нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Посмотрите описание команды CLI для изменения трейла, чтобы получить подробную информацию о доступных аргументах:
yc audit-trails trail update --help
Трейл можно изменить, указав его параметры одним из двух способов:
В YAML-спецификации:
Создайте YAML-спецификацию, содержащую обновленные параметры трейла, и укажите этот файл в команде для создания трейла.
Этот способ упрощает работу с параметрами трейла и снижает вероятность ошибки. Кроме того, настроить регистрацию событий уровня сервисов можно только с помощью YAML-спецификации.
-
Создайте 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
взаимоисключающие, настройте только один из них. Если оба фильтра не настроены, будут собираться все события.
-
-
-
-
Чтобы изменить трейл, выполните команду:
yc audit-trails trail update --file <путь_к_файлу>
В аргументах команды:
Используйте этот способ, если конфигурация трейла простая и содержит небольшое количество параметров.
Примечание
Настроить регистрацию событий уровня сервисов можно только с помощью YAML-спецификации.
Чтобы изменить трейл, выполните команду:
yc audit-trails trail update \
--name <имя_трейла> \
--new-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
— имя трейла, который требуется изменить. Вместо имени можно передать идентификатор трейла в параметре--id
.--new-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
Terraform распространяется под лицензией Business Source License
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
-
Чтобы изменить трейл, созданный с помощью Terraform, откройте файл конфигурации Terraform и измените фрагмент с описанием трейла:
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 см. в документации провайдера . -
-
Создайте ресурсы:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validate
Если конфигурация является корректной, появится сообщение:
Success! The configuration is valid.
-
Выполните команду:
terraform plan
В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply
-
Подтвердите изменения: введите в терминале слово
yes
и нажмите Enter.
Terraform создаст все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления
или с помощью команды CLI:yc audit-trails trail get <имя_трейла>
-
Чтобы изменить трейл, воспользуйтесь методом REST API update для ресурса Trail или вызовом gRPC API TrailService/Update.
Удалить трейл
Чтобы удалить трейл:
- В консоли управления
выберите каталог, в котором находится трейл. - В списке сервисов выберите Audit Trails.
- В строке с нужным трейлом нажмите значок
и выберите Удалить. - В открывшемся окне подтвердите удаление.
Чтобы удалить трейл, выполните команду:
yc audit-trails trail delete <имя_или_идентификатор_трейла>
Чтобы узнать имена и идентификаторы доступных трейлов, воспользуйтесь инструкцией.
Чтобы удалить трейл, созданный с помощью Terraform:
-
Откройте файл конфигурации Terraform и удалите секцию с описанием трейла.
Пример описания трейла в конфигурации Terraform:
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" } } } }
-
В командной строке перейдите в папку, где расположен файл конфигурации Terraform.
-
Проверьте конфигурацию командой:
terraform validate
Если конфигурация является корректной, появится сообщение:
Success! The configuration is valid.
-
Выполните команду:
terraform plan
В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply
-
Подтвердите изменения: введите в терминал слово
yes
и нажмите Enter. -
Чтобы убедиться в том, что трейл был удален, воспользуйтесь инструкцией.
Чтобы удалить трейл, воспользуйтесь методом REST API delete для ресурса Trail или вызовом gRPC API TrailService/Delete.