Поиск событий Yandex Cloud в Object Storage
Перед началом работы
- Установите и настройте программу s3fs или goofys, позволяющую монтировать бакеты Object Storage через FUSE
. - Смонтируйте бакет с аудитными логами к вашей файловой системе через s3fs или goofys.
- Установите утилиту jq
для поиска по формату JSON.
Сценарии поиска
-
Для поиска по нескольким файлам используйте команду
find
. В качестве аргумента командной строки укажите путь к папке, к которой подключен бакет с аудитными логами, или ее подпапку с логами за определенный месяц или сутки.Пример команды для поиска событий по типу:
find <путь_к_папке> -type f -exec cat {} \; | jq '.[] | select( .event_type == "yandex.cloud.audit.iam.CreateServiceAccount")'
-
Чтобы найти, кто удалил каталог в облаке, необходимо искать по полю
eventType
(тип события) по всем файлам за период с фильтром по идентификатору каталога:find <путь_к_папке> -type f -exec cat {} \; | jq '.[] | select( .event_type == "yandex.cloud.audit.resourcemanager.DeleteFolder" and .details.folder_id == "<идентификатор_каталога>") | .authentication'
-
Чтобы найти, кто создал/остановил/перезапустил/удалил виртуальную машину, необходимо искать по полю
eventType
по всем файлам за период с фильтром по идентификатору ВМ:find <путь_к_папке> -type f -exec cat {} \; | jq '.[] | select((.event_type | test("yandex\\.cloud\\.audit\\.compute\\..*Instance")) and .details.instance_id == "<идентификатор_ВМ>") | .authentication'
-
Чтобы найти, какие действия совершал пользователь за период времени, необходимо искать по идентификатору субъекта:
find <путь_к_папке> -type f -exec cat {} \; | jq '.[] | select(.authentication.subject_id == "<идентификатор_пользователя>" and .event_time > "2021-03-01" and .event_time < "2021-04-01")'
Так же можно искать по имени субъекта:
find <путь_к_папке> -type f -exec cat {} \; | jq '.[] | select(.authentication.subject_name == "<имя_пользователя>" and .event_time > "2021-03-01" and .event_time < "2021-04-01")'
-
Чтобы найти, какие события происходили по объектам определенного каталога, необходимо искать по идентификатору каталога:
find <путь_к_папке> -type f -exec cat {} \; | jq '.[] | select(.resource_metadata != null and .resource_metadata.path != null) | select( .resource_metadata.path[] | .resource_type == "resource-manager.folder" and .resource_id == "<идентификатор_каталога>")'
Так же можно искать по имени каталога:
find <путь_к_папке> -type f -exec cat {} \; | jq '.[] | select(.resource_metadata != null and .resource_metadata.path != null) | select( .resource_metadata.path[] | .resource_type == "resource-manager.folder" and .resource_name == "<имя_каталога>")'