Поиск событий Yandex Cloud в Yandex Query
В Yandex Query интегрирована поддержка Audit Trails. Вы можете анализировать события ресурсов Yandex Cloud, выполняя аналитические и потоковые запросы на языке YQL.
Аналитические запросы можно выполнять для логов, которые хранятся в бакете, а потоковые — для логов в потоке данных Yandex Data Streams.
Чтобы подключить бакет с аудитными логами к Yandex Query и выполнить запросы на языке YQL:
- Подготовьте окружение.
- Создайте соединение между трейлом и YQ.
- Выполните запрос к логам в Object Storage.
Если созданные ресурсы вам больше не нужны, удалите их.
Перед началом работы
Зарегистрируйтесь в Yandex Cloud и создайте платежный аккаунт:
- Перейдите в консоль управления
, затем войдите в Yandex Cloud или зарегистрируйтесь. - На странице Yandex Cloud Billing
убедитесь, что у вас подключен платежный аккаунт, и он находится в статусеACTIVE
илиTRIAL_ACTIVE
. Если платежного аккаунта нет, создайте его и привяжите к нему облако.
Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака
Подробнее об облаках и каталогах.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
Необходимые платные ресурсы
В стоимость поддержки инфраструктуры входит плата за использование бакета (см. тарифы Object Storage).
Подготовьте окружение
Создайте бакет для аудитных логов
- В консоли управления
перейдите в каталог, в котором хотите создать бакет, напримерexample-folder
. - Выберите сервис Object Storage.
- Нажмите Создать бакет.
- На странице создания бакета:
- укажите имя бакета в соответствии с правилами именования;
- в полях Доступ на чтение объектов, Доступ к списку объектов и Доступ на чтение настроек выберите
Ограниченный
; - для остальных параметров оставьте значения по умолчанию.
- Нажмите Создать бакет.
Создайте сервисные аккаунты
Создайте сервисный аккаунт trail-sa
:
- В консоли управления
перейдите в каталогexample-folder
. - В списке сервисов выберите Identity and Access Management.
- Нажмите кнопку Создать сервисный аккаунт.
- Укажите Имя —
trail-sa
. - Нажмите кнопку Создать.
Аналогично создайте сервисный аккаунт с именем bucket-yq-sa
.
Назначьте права сервисным аккаунтам
Назначьте сервисному аккаунту trail-sa
роли audit-trails.viewer
и storage.uploader
:
-
Роль
audit-trails.viewer
на организацию:yc organization-manager organization add-access-binding \ --role audit-trails.viewer \ --id <идентификатор_организации> \ --service-account-id <идентификатор_сервисного_аккаунта>
Где
--service-account-id
— идентификатор сервисного аккаунтаtrail-sa
.Результат:
done (1s)
Подробнее о команде
yc organization-manager organization add-access-binding
см. в справочнике CLI. -
Роль
storage.uploader
на каталогexample-folder
:yc resource-manager folder add-access-binding example-folder \ --role storage.uploader \ --subject serviceAccount:<<идентификатор_сервисного_аккаунта>
Где
--subject
— идентификатор сервисного аккаунтаtrail-sa
.Результат:
done (1s)
Подробнее о команде
yc resource-manager folder add-access-binding
см. в справочнике CLI.
Назначьте сервисному аккаунту bucket-yq-sa
роль storage.viewer
на каталог example-folder
:
yc resource-manager folder add-access-binding example-folder \
--role storage.viewer \
--subject serviceAccount:<идентификатор_сервисного_аккаунта>
Где --subject
— идентификатор сервисного аккаунта bucket-yq-sa
.
Результат:
done (1s)
Подробнее о команде yc resource-manager folder add-access-binding
см. в справочнике CLI.
Создайте трейл
-
В консоли управления
выберите каталогexample-folder
. -
Выберите сервис Audit Trails.
-
Нажмите кнопку Создать трейл.
-
В поле Имя укажите
logsyq
. -
В блоке Назначение задайте параметры объекта назначения:
- Назначение —
Object Storage
. - Бакет — выберите созданный ранее бакет.
- Назначение —
-
В блоке Сервисный аккаунт выберите
trail-sa
. -
В блоке Сбор событий c уровня конфигурации задайте параметры сбора аудитных логов уровня конфигурации:
- Сбор событий — выберите
Включено
. - Ресурс — выберите
Организация
. - Организация — не требует заполнения, содержит имя текущей организации.
- Облако — оставьте значение по умолчанию
Все
.
- Сбор событий — выберите
-
В блоке Сбор событий с уровня сервисов в поле Сбор событий выберите
Выключено
. -
Нажмите кнопку Создать.
Создайте соединение между трейлом и YQ
Соединение необходимо создать только при первом подключении трейла к YQ.
- В консоли управления
выберите каталогexample-folder
. - Выберите сервис Audit Trails.
- Выберите трейл
logsyq
. - Нажмите Обработать в YQ.
- Создайте соединение:
- выберите Сервисный аккаунт
bucket-yq-sa
; - для остальных параметров оставьте значения по умолчанию.
- выберите Сервисный аккаунт
- Нажмите Создать.
- В окне с параметрами привязки к данным нажмите Создать.
Вы перейдете на страницу создания запроса к логам трейла.
Выполните запрос к логам в Object Storage
Откройте страницу создания аналитического запроса к логам Audit Trails:
- В консоли управления
выберите каталог с трейлом. - В списке сервисов выберите Audit Trails.
- Выберите трейл, для которого настроено соединение с YQ.
- Нажмите Обработать в YQ, чтобы перейти на страницу выполнения аналитического запроса.
Выполните запросы событий для привязки audit-trails-logsyq-object_storage
:
-
Удаление каталога:
-
Выберите в списке запрос 1. Найти, кто удалил каталог.
-
Отредактируйте запрос, указав идентификатор каталога:
SELECT * FROM bindings.`audit-trails-logsyq-object_storage` WHERE JSON_VALUE(data, "$.event_type") = 'yandex.cloud.audit.resourcemanager.DeleteFolder' and JSON_VALUE(data, "$.details.folder_name") = '<идентификатор_каталога>' LIMIT 100;
-
Нажмите Выполнить.
-
-
Включение доступа по серийной консоли:
-
Выберите в списке запрос 6. Изменение ВМ — добавление доступа к серийной консоли.
-
Отредактируйте запрос, указав количество отображаемых записей:
SELECT * FROM bindings.`<audit-trails-logsyq-object_storage>` WHERE JSON_VALUE(data, "$.event_type") = 'yandex.cloud.audit.compute.UpdateInstance' and JSON_VALUE(data, "$.details.metadata_serial_port_enable") = '1' LIMIT <количество_записей>;
-
Нажмите Выполнить.
-
-
Изменение прав доступ к бакету Object Storage:
-
Выберите в списке запрос 11. Подозрительные действия с хранилищем логов Audit Trails (Object Storage Bucket).
-
Отредактируйте запрос, указав количество отображаемых записей:
SELECT * FROM bindings.`audit-trails-logsyq-object_storage` WHERE (JSON_VALUE(data, "$.event_type") = 'yandex.cloud.audit.storage.BucketAclUpdate' or JSON_VALUE(data, "$.event_type") = 'yandex.cloud.audit.storage.BucketPolicyUpdate') LIMIT <количество_записей>;
-
Нажмите Выполнить.
-
-
Назначение права администратора:
-
Выберите в списке запрос 20. Назначение прав admin (на ресурсы: folder, cloud).
-
Отредактируйте запрос, указав количество отображаемых записей:
SELECT * FROM bindings.`audit-trails-logsyq-object_storage` WHERE JSON_VALUE(data, "$.details.access_binding_deltas.access_binding.role_id") = 'admin' LIMIT <количество_записей>;
-
Нажмите Выполнить.
-
Как удалить созданные ресурсы
Если для выполнения руководства вы создали отдельный бакет, вы можете удалить его, чтобы перестать платить за использование бакета.