Авторизация#
CedrusData Catalog использует комбинацию role-based access control (RBAC) и discretionary access control (DAC) для организации доступа к объектам каталога.
Принципал имеет право совершить операцию над объектом, если он является его владельцем или ему назначена роль с необходимым правами доступа.
Примечание
В настоящее время CedrusData Catalog поддерживает только две предопределенные роли builtin.admin
и builtin.iceberg.admin
, описанные ниже.
В ближайших релизах будет добавлена возможность создания новых ролей с произвольным списком привилегий.
Процесс авторизации#
Когда пользователь выполняет операцию над объектом, CedrusData Catalog производит следующую последовательность действий:
Формирует список принципалов, чьи права доступа будут использованы для авторизации операции. В данный список попадает текущий пользователь и назначенные ему роли, включая транзитивные.
Например, если пользователюalice
предоставлена рольeditor
, а ролиeditor
предоставлена рольviewer
, то система будет использовать права доступа принципалов [alice
,editor
,viewer
] для авторизации операцииВыбирает набор действий над текущим или родительскими объектами, подлежащих авторизации в рамках данной операции. Например, для создания таблицы Iceberg, пользователь должен иметь доступ к (1) namespace, в котором будет создана таблица; (2) каталогу, в котором находится namespace; (3) файловой системе, с которой работает каталог.
Авторизует каждое действие относительно списка принципалов, полученного на первом шаге. Например, запись метаданных таблицы Iceberg в файловую систему будет авторизована, если один из принципалов [
alice
,editor
,viewer
] является владельцем файловой системы.