Быстрый старт

Сервис аудита (услуга 1.15) позволяет осуществлять запись событий безопаности. Механика работы с сервисом выглядит следующим образом:
  1. Прорабатывается событийная метамодель, которая описывает все возможные события безопасности, а также список их дополнительных параметров.
  2. При запуске приложения публикуется подготовленная модель в сервисе аудита.
  3. В процессе работы сервиса при возникновении ситуации, требующей запись в журнал событий безопасности, выполняется отправка данных события в сервис аудита.
Адрес сервиса - http://platform-gateway/audit/proxy.
Узнать адрес виртуальной машины можно в паспорте стенда вашего проекта. Дополнительную информацию можно получить у аккаунт-менеджера.

Настройка метамодели

Подготовим JSON для метамодели (с двумя событиями, второе в качестве закрепления) и загрузим её через API (curl).
Проработаем метамодель для нашего приложения. Представим, что приложение занимается установкой ролей для пользователей и необходимо отправлять события аудита на каждое редактирование роли. Проработаем содержание события:
  • название события - "Role changed";
  • описание события - "Смена роли пользователя";
  • название приложения (чтобы знать, что это именно его события) - указываем свой идентификатор в качестве названия приложения;
  • логин пользователя, который вызвал действие;
  • узел (IP/FQDN), с которого пользователь выполняет действия.
В качестве параметров события необходимо передать:
  • логин пользователя, роль которого мы меняем;
  • итоговый список ролей.
Также мы хотим явно отличать события, посланные из приложения, от любого другого. Исходя из указанных требований, составим следующую метамодель (согласно API Аудит):
Метамодель type=json
{
"metamodelVersion": 1,
"module": "укажите-ваш-идентификатор",
"events": [
{
"name": "Role Changed",
"description": "Смена роли пользователя",
"success": true,
"mode": "speed",
"params": [
{
"name": "Target User",
"description": "Логин пользователя, роли которого изменяются в рамках события"
},
{
"name": "Roles",
"description": "Итоговый список ролей"
}
]
}
]
}```

Вместо `укажите-ваш-идентификатор` укажите свой идентификатор сервиса.

Далее загрузим JSON-описание метамодели в Аудит, выполнив следующий запрос:

`http://{auditUrl}/audit/proxy/v1/metamodel`

`auditUrl` - днс:порт, либо через `platform-gateway`, либо через интеграционный шлюз МТП (предпочтительно для ПК или ВМ).

Запрос для загрузки метамодели:

```conf name=Запрос type=json
curl -X 'POST' \
'http://{auditUrl{/audit/proxy/v1/metamodel' \
-H 'accept: application/json' \
-H 'SOURCERN: PLATCORE1' \
-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": "Итоговый список ролей"
}
]
}
]
}'
При отправке данного запроса из приложения в Kubernetes можно использовать http://platform-gateway (платформенный шлюз).
В качестве ответа на данный запрос мы получим идентификатор нашей метамодели:
Ответ type=json
{
"id": "b1df2678-7c44-4288-b0ff-e08532639aad"
}
Учтите, что при обновлении версии метамодели, необходимо инкрементировать metamodelVersion.

Отправка события в Аудит

Теперь попробуем отправить событие в Аудит (согласно описанной нами метамодели). Составим следующее JSON-описание события:
Событие type=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
Актуальная дата создания
metamodelVersion
Версия метамодели (в случае, если вы её обновляли)
Отправим это событие при помощи следующего запроса (укажите свой JSON): http://{auditUrl}/audit/proxy/v1/event
Запрос для загрузки метамодели:
Запрос type=json
curl -X 'POST' \
'http://{auditUrl}/audit/proxy/v1/event' \
-H 'accept: application/json' \
-H 'X-Node-ID: node-id' \
-H 'SOURCERN: PLATCORE1' \
-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"
}
]
}'
При отправке данного запроса из приложения в Kubernetes можно использовать ссылку http://platform-gateway (платформенный шлюз).
В качестве ответа мы получим идентификатор отправленного события:
Идентификатор type=json
{
"id": "49b70292-cafd-461e-b758-c841a669396a"
}

Поиск отправленного события

  1. Переходим на интерфейс Аудита по ссылке ИАМ (через звездное небо).
  2. Авторизовывамся при помощи учетной записи.
  3. Нажимаем на карточку Поиск событий аудита. Откроется окно поиска событий аудита.

    Увеличить

    Увеличить

  4. Выбираем тенант, который мы использовали ранее. Указываем период, сходный текст и свой идентификатор.

    Увеличить

  5. В результатах поиска отобразятся нужные нам события. Нажмите на строку с событием, чтобы узнать о нем подробнее.

    Увеличить

Демопримеры

В демопримерах реализованы стандартные сценарии, демонстрирующие работу отдельных сервисов Платформы ГосТех. Отправка тестовых запросов в демопримерах позволит вам ознакомиться с функциями того или иного сервиса. Доступные демопримеры и описания реализованной в них функциональности представлены ниже.
Аудит
Отправка произведённых в системе событий с уникальными идентификаторами и настраиваемым набором параметров
Предыдущий раздел
1.15 Аудит
Следующий раздел
Поиск событий
Была ли страница полезной?