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

Сервис аудита (услуга 1.15) позволяет осуществлять запись событий безопаности. Механика работы с сервисом выглядит следующим образом:
  1. Прорабатывается событийная метамодель, которая описывает все возможные события безопасности, а также список их дополнительных параметров.
  2. Проработана и загружена модель в сервисе аудита.
  3. В процессе работы сервиса при возникновении ситуации, требующей запись в журнал событий безопасности, выполняется отправка данных события в сервис аудита. Выполняется разбор инцидентов.
Для работы с сервисом используются интеграционные шлюзы. Эндпоинт для обращения к сервису через Platform Gateway и Swagger Proxy - /audit/proxy (например, для отправки события {адрес_шлюза}/audit/proxy/v1/event).

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

Рассмотрим пример настройки метамодели на основе приложения, которое устанавливает роли для пользователей:
  1. Проработайте метамодель приложения. Для данного приложения содержание события будет следующим:
    • название события - "Role changed";
    • описание события - "Смена роли пользователя";
    • название приложения - идентификатор сервиса;
    • логин пользователя, который вызвал действие;
    • узел (IP/FQDN), с которого пользователь выполняет действия.
    В качестве параметров события необходимо передать:
    • логин пользователя, роль которого изменяется;
    • итоговый список ролей.
  2. Подготовьте JSON-описание для метамодели. Исходя из указанных требований, для примера будет следующая метамодель (согласно API Аудит):
    Метамодель для примера
    {
      "metamodelVersion": 1,
      "module": "идентификатор_сервиса",
      "events": [
        {
          "name": "Role Changed",
          "description": "Смена роли пользователя",
          "success": true,
          "mode": "speed",
          "params": [
            {
              "name": "Target User",
              "description": "Логин пользователя, роли которого изменяются в рамках события"
            },
            {
              "name": "Roles",
              "description": "Итоговый список ролей"
            }
          ]
        }
      ]
    }
    
    В поле module укажите свой идентификатор сервиса.
  3. Загрузите 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.

Пример отправки события в Аудит

Рассмотрим пример отправки события аудита на редактирование роли.
Для отправки события в Аудит (согласно описанной выше метамодели) выполните следующее:
  1. Составьте 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"
        }
      ]
    }
    
  2. Обновите поля приложения:
    ПолеОписание
    module
    Идентификатор
    createdAt
    Время возникновения события в милисекундах, прошедших с полуночи (00:00:00 UTC) 1 января 1970 года (Unix time)
    metamodelVersion
    Версия метамодели
  3. Отправьте событие при помощи следующего запроса (укажите 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"
}

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

Чтобы просмотреть инфомацию по событию:
  1. Перейдите в интерфейс Аудита, например: https://keycloak.dvpaio.novalocal/audit/ui.
  2. Авторизуйтесь при помощи учетной записи. Доступ к IAM Proxy вашего стенда можно получить через администратора стенда.
  3. Нажмите на карточку Поиск событий аудита. Откроется окно поиска событий аудита.

    Увеличить

    Увеличить

  4. Укажите параметры поиска события: выберите тенант, период, сходный текст, идентификатор сервиса. Выберите из выпадающего списка тип поиска. Тип поиска определяет правила, по которому поиск будет выполняться.

    Увеличить

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

    Увеличить

Демопримеры

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