Управление трейлом
Примечание
Список сервисов, которые доступны в регионе Казахстан, можно посмотреть на странице Сервисы Yandex Cloud.
Вы можете изменять объект назначения, типы собираемых событий, области сбора аудитных логов и другие настройки трейла, а также удалять его.
Изменить трейл
Чтобы изменить трейл:
- В консоли управления
выберите каталог, в котором находится трейл. - В списке сервисов выберите Audit Trails.
- В строке с нужным трейлом нажмите значок
и выберите Редактировать. - Измените параметры трейла. Список настроек трейла, которые можно изменить, см. в разделе Настройки трейла.
- Нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --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.