Загрузка правил выдачи привилегий для групп пользователей#
Загрузка правил выдачи привилегий для групп пользователей (далее – слепок данных) используется для изменения политики 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-токена):Первый пользователь, обратившийся с конкретным
atsn_id, захватывает его.Остальные пользователи при попытке использовать этот же
atsn_idполучают отказ.После окончания передачи данных
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
Результат#
Пакетная загрузка информации о доступности привилегий для групп пользователей выполнена успешно.