Поиск событий Yandex Cloud в Yandex Query
В Yandex Query интегрирована поддержка Audit Trails. Вы можете анализировать события ресурсов Yandex Cloud, выполняя аналитические и потоковые запросы на языке YQL.
Аналитические запросы можно выполнять для логов, которые хранятся в бакете, а потоковые — для логов в потоке данных Yandex Data Streams.
Чтобы подключить бакет с аудитными логами к Yandex Query и выполнить запросы на языке YQL:
- Подготовьте окружение.
- Создайте соединение между трейлом и YQ.
- Выполните запрос к логам в Object Storage.
Если созданные ресурсы вам больше не нужны, удалите их.
Перед началом работы
Перед работой нужно зарегистрироваться в Yandex Cloud и создать платежный аккаунт:
- Перейдите в консоль управления, затем войдите в Yandex Cloud или зарегистрируйтесь, если вы еще не зарегистрированы.
- На странице биллинга убедитесь, что у вас подключен платежный аккаунт, и он находится в статусе
ACTIVE
илиTRIAL_ACTIVE
. Если платежного аккаунта нет, создайте его.
Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака.
Подробнее об облаках и каталогах.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
Необходимые платные ресурсы
В стоимость поддержки инфраструктуры входит плата за использование бакета (см. тарифы Object Storage).
Подготовьте окружение
Создайте бакет для аудитных логов
- В консоли управления перейдите в каталог, в котором хотите создать бакет, например
example-folder
. - Выберите сервис Object Storage.
- Нажмите Создать бакет.
- На странице создания бакета:
- укажите Имя —
bucket-yq
; - для остальных параметров оставьте значения по умолчанию.
- укажите Имя —
- Нажмите Создать бакет.
Создайте сервисные аккаунты
Создайте сервисный аккаунт trail-sa
:
- В консоли управления перейдите в каталог
example-folder
. - Перейдите на вкладку Сервисные аккаунты.
- Нажмите Создать сервисный аккаунт.
- Укажите Имя —
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 <идентификатор_сервисного_аккаунта_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:<идентификатор_сервисного_аккаунта_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:<идентификатор_сервисного_аккаунта_bucket-yq-sa>
Результат:
done (1s)
Подробнее о команде yc resource-manager folder add-access-binding
см. в справочнике CLI.
Создайте трейл
- В консоли управления выберите каталог
example-folder
. - Выберите сервис Audit Trails.
- Нажмите Создать трейл и укажите:
- Имя —
logsyq
; - Ресурс — выберите
Организация
; - Организация — не требует заполнения, содержит имя текущей организации;
- Назначение —
Object Storage
; - Бакет —
bucket-yq
; - Сервисный аккаунт —
trail-sa
; - Для остальных параметров оставьте значения по умолчанию.
- Имя —
- Нажмите кнопку Создать.
Создайте соединение между трейлом и 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 <количество_записей>;
-
Нажмите Выполнить.
-
Как удалить созданные ресурсы
Если для выполнения руководства вы создали отдельный бакет, вы можете удалить его, чтобы перестать платить за использование бакета.