Загрузка правил выдачи привилегий для групп пользователей#

Загрузка правил выдачи привилегий для групп пользователей (далее – слепок данных) используется для изменения политики ABAC, которая авторизует пользователей на выполнение действий над активами.

Слепок данных содержит информацию о конфигурации привилегий для групп пользователей.

Kintsugi (DBCM) способна хранить множество различных слепков данных.

Загруженные слепки не оказывают влияния на политику ABAC до тех пор, пока не будут применены администратором системы.

Предусловия#

Подготовьте запросы в JSON-формате для загрузки привилегий пользователей к группам узлов.

Пример файла rules.json в JSON-формате:

{
  "is_final": false,
  "rules": [
    {
      "user_group_key": "user_group_key_1",
      "users": [
        "alice",
        "charlie"
      ],
      "asset_filter_grants": [
        {
          "custom_prop_filter": [
            {
              "property_key": "custom_ac",
              "property_value": "AC0001"
            },
            {
              "property_key": "custom_cir",
              "property_value": "CIR002"
            }
          ],
          "privileges": [
            "asset_pg_delete",
            "pg_metrics_regular_toggle",
            "pg_metrics_embedded_toggle"
          ]
        }
      ],
      "global_grants": [
        "global_asset_pg_create"
      ]
    }
  ]
}

, где:

  • is_final - флаг окончания передачи данных.

  • atsn_id - идентификатор, который генерируется на стороне Kintsugi (DBCM).

    При подгрузке первого пакета данных идентификатор будет выслан в ответе. В дальнейшем для того, чтобы расширить слепок данных необходимо использовать полученный идентификатор.

    В API реализована привязка идентификатора atsn_id к пользователю (sub из JWT-токена):

    1. Первый пользователь, обратившийся с конкретным atsn_id, захватывает его.

    2. Остальные пользователи при попытке использовать этот же atsn_id получают отказ.

    3. После окончания передачи данных atsn_id освобождается.

  • rules - список правил, определяющий группы пользователей, доступные для них активы и привилегии.

  • user_group_key - идентификатор группы пользователей.

  • users - список пользователей, входящих в группу.

  • global_grants - глобальные права для группы пользователей (например, создание объектов).

  • asset_filter_grants - список прав на объекты с фильтрацией по пользовательским свойствам:

    • custom_prop_filter - фильтры по свойствам (property_key, property_value), ограничивающие множество активов и формирующие группу узлов.

    • privileges - список разрешенных действий (например, включение метрик).

Последовательность выполнения#

Введите в командной строке соответствующий API-вызов:

Пример запроса для пакетной загрузки информации о доступности привилегий для групп пользователей:

curl -X POST -H "Authorization: Basic ${token}" https://${kintsugi_host}/backend/privileges/snapshots/upload -H "Content-Type: application/json" @rules.json

Результат#

Пакетная загрузка информации о доступности привилегий для групп пользователей выполнена успешно.