Быстрый старт
Сервис аудита (услуга 1.15) позволяет осуществлять запись событий безопаности. Механика работы с сервисом выглядит следующим образом:
- Прорабатывается событийная метамодель, которая описывает все возможные события безопасности, а также список их дополнительных параметров.
- Проработана и загружена модель в сервисе аудита.
- В процессе работы сервиса при возникновении ситуации, требующей запись в журнал событий безопасности, выполняется отправка данных события в сервис аудита. Выполняется разбор инцидентов.
Для работы с сервисом используются интеграционные шлюзы. Эндпоинт для обращения к сервису через Platform Gateway и Swagger Proxy -
/audit/proxy
(например, для отправки события {адрес_шлюза}/audit/proxy/v1/event
).Рассмотрим пример настройки метамодели на основе приложения, которое устанавливает роли для пользователей:
-
Проработайте метамодель приложения. Для данного приложения содержание события будет следующим:
- название события - "Role changed";
- описание события - "Смена роли пользователя";
- название приложения - идентификатор сервиса;
- логин пользователя, который вызвал действие;
- узел (IP/FQDN), с которого пользователь выполняет действия.
В качестве параметров события необходимо передать:- логин пользователя, роль которого изменяется;
- итоговый список ролей.
-
Подготовьте JSON-описание для метамодели. Исходя из указанных требований, для примера будет следующая метамодель (согласно API Аудит):Метамодель для примера
{ "metamodelVersion": 1, "module": "идентификатор_сервиса", "events": [ { "name": "Role Changed", "description": "Смена роли пользователя", "success": true, "mode": "speed", "params": [ { "name": "Target User", "description": "Логин пользователя, роли которого изменяются в рамках события" }, { "name": "Roles", "description": "Итоговый список ролей" } ] } ] }
В полеmodule
укажите свой идентификатор сервиса. -
Загрузите JSON-описание метамодели в Аудит.Пример запроса для загрузки метамодели
curl -X 'POST' \ 'http://{auditUrl}/audit/proxy/v1/metamodel' \ -H 'accept: application/json' \ -H 'Content-Type: application/json' \ -d '{ "metamodelVersion": 1, "module": "идентификатор_сервиса", "events": [ { "name": "Role Changed", "description": "Смена роли пользователя", "success": true, "mode": "speed", "params": [ { "name": "Target User", "description": "Логин пользователя, роли которого изменяются в рамках события" }, { "name": "Roles", "description": "Итоговый список ролей" } ] } ] }
ГдеauditUrl
— DNS-порт, либо черезplatform-gateway
, либо через интеграционный шлюз МТП (предпочтительно для ПК или ВМ).
В качестве ответа на данный запрос будет получен идентификатор метамодели:
Пример ответа{ "id": "b1df2678-7c44-4288-b0ff-e08532639aad" }
Примечание
При обновлении версии метамодели необходимо инкрементировать
metamodelVersion
.Рассмотрим пример отправки события аудита на редактирование роли.
Для отправки события в Аудит (согласно описанной выше метамодели) выполните следующее:
-
Составьте JSON-описание события.Описание события для примера
{ "metamodelVersion": "1", "name": "Role Changed", "session": "сессия", "module": "идентификатор_сервиса", "createdAt": 1699442898000, "userLogin": "admin", "userName": "Ivanov Ivan", "userNode": "127.0.0.1", "params": [ { "name": "Target User", "value": "user" }, { "name": "Roles", "value": "view,edit,create" } ] }
-
Обновите поля приложения:
Поле Описание moduleИдентификатор createdAtВремя возникновения события в милисекундах, прошедших с полуночи (00:00:00 UTC) 1 января 1970 года (Unix time) metamodelVersionВерсия метамодели -
Отправьте событие при помощи следующего запроса (укажите JSON с описанием метамодели).Запрос для загрузки метамодели примера
curl -X 'POST' \ 'http://{auditUrl}/audit/proxy/v1/event' \ -H 'accept: application/json' \ -H 'X-Node-ID: node-id' \ -H 'Content-Type: application/json' \ -d '{ "metamodelVersion": "1", "name": "Role Changed", "session": "сессия", "module": "идентификатор_сервиса", "createdAt": 1699442898000, "userLogin": "admin", "userName": "Ivanov Ivan", "userNode": "127.0.0.1", "params": [ { "name": "Target User", "value": "user" }, { "name": "Roles", "value": "view,edit,create" } ] }'
ПримечаниеSOURCERN
- уникальная конфигурационная единица тенанта (см. в паспорте стенда).
В качестве ответа на данный запрос будет получен идентификатор отправленного события:
Пример ответа{ "id": "49b70292-cafd-461e-b758-c841a669396a" }
Чтобы просмотреть инфомацию по событию:
-
Перейдите в интерфейс Аудита, например: https://keycloak.dvpaio.novalocal/audit/ui.
-
Авторизуйтесь при помощи учетной записи. Доступ к IAM Proxy вашего стенда можно получить через администратора стенда.
-
Нажмите на карточку Поиск событий аудита. Откроется окно поиска событий аудита.
Увеличить
Увеличить
-
Укажите параметры поиска события: выберите тенант, период, сходный текст, идентификатор сервиса. Выберите из выпадающего списка тип поиска. Тип поиска определяет правила, по которому поиск будет выполняться.
Увеличить
Нажмите Найти. В результатах поиска отобразятся события, удовлетворяющие заданным критериям поиска. -
Нажмите на строку с событием, чтобы просмотреть детальную информацию о нем.
Увеличить
В демопримерах реализованы стандартные сценарии, демонстрирующие работу отдельных сервисов Платформы ГосТех. Отправка тестовых запросов в демопримерах позволит вам ознакомиться с функциями того или иного сервиса. Доступные демопримеры и описания реализованной в них функциональности представлены ниже.
Аудит
Отправка произведённых в системе событий с уникальными идентификаторами и настраиваемым набором параметров