Авторизация
CedrusData Catalog использует комбинацию role-based access control (RBAC) и discretionary access control (DAC) для организации доступа к объектам каталога.
Принципал имеет право совершить операцию над объектом,
если он является его владельцем или ему назначена роль с необходимым правами доступа.
Примечание
В настоящее время CedrusData Catalog поддерживает только две предопределенные роли builtin.admin и builtin.iceberg.admin, описанные ниже.
В ближайших релизах будет добавлена возможность создания новых ролей с произвольным списком привилегий.
Владельцы объектов
Все объекты каталога, за исключением принципалов и постоянных токенов доступа, имеют владельцев.
Владелец имеет неограниченные права доступа к объекту.
Назначение владельца происходит автоматически при создании объекта.
Изначальным владельцем объекта всегда является пользователь, вызвавший команду создания объекта.
Владелец объекта может быть изменен путем вызова команды grant-ownership, которая определена для каждого типа объекта.
Примечание
Объект может не иметь владельца, если он был создан в CedrusData Catalog до версии 458-10.
Для таких объектов владелец не учитывается для проверки прав доступа.
Вы можете использовать команду grant-ownership, чтобы назначить владельца такому объекту.
CedrusData Catalog вернет ошибку при попытке удаления принципала, который является владельцем хотя бы одного объекта.
Роли
Роли — это специальные учетные записи для управления доступом к объектам каталога.
Роли могут быть назначены пользователям или другим ролям командой role grant и отозваны командой role revoke.
Роли наследуют права доступа у других ролей.
Роль может быть назначена владельцем объекта. В таком случае все члены данной роли (включая транзитивные) получают право выполнения любых операций над объектом.
Роли могут быть назначены права доступа. В настоящее время CedrusData Catalog поддерживает только фиксированный набор прав доступа, назначенных двум системным ролям:
builtin.admin — суперпользователь, имеет право выполнять любые операции
builtin.iceberg.admin — Имеет право взаимодействовать c файловыми системами и выполнять любые действия над объектами Iceberg: catalog, namespace, table, view, object group
Поддержка гранулярных привилегий будет доступна в ближайших версиях продукта.
Процесс авторизации
Когда пользователь выполняет операцию над объектом, CedrusData Catalog производит следующую последовательность действий:
Формирует список принципалов, чьи права доступа будут использованы для авторизации операции.
В данный список попадает текущий пользователь и назначенные ему роли, включая транзитивные.
Например, если пользователю alice предоставлена роль editor, а роли editor предоставлена роль viewer,
то система будет использовать права доступа принципалов [alice, editor, viewer] для авторизации операции
Выбирает набор действий над текущим или родительскими объектами, подлежащих авторизации в рамках данной операции.
Например, для создания таблицы Iceberg, пользователь должен иметь доступ к (1) namespace, в котором будет создана таблица;
(2) каталогу, в котором находится namespace; (3) файловой системе, с которой работает каталог.
Авторизует каждое действие относительно списка принципалов, полученного на первом шаге.
Например, запись метаданных таблицы Iceberg в файловую систему будет авторизована,
если один из принципалов [alice, editor, viewer] является владельцем файловой системы.