Администрирование приватной клики

В данной статье описано, как администрировать собственную клику и за какими проявлениями ее жизнедеятельности можно и нужно следить. Cуществует специальный инструмент, который помогает управлять кликами и проверять их работоспособность — подробнее о нем в статье Контроллер.

Доступы

Пользователи аутентифицируются в CHYT так же, как и в YTsaurus — с использованием токена от YTsaurus (подробнее см. Аутентификация). CHYT проверяет права двух видов.

Во-первых, при приёме запроса клика проверяет, что у пользователя, из-под которого совершён запрос, есть право на использование клики (право use). Права на клику хранятся в специальном системном узле Access Control Object Node, который находится по пути //sys/access_control_object_namespaces/chyt/<alias>/principal и создается автоматически для каждой клики при ее создании через CHYT Controller. Права на клику разграничивают доступ исключительно к вычислительным ресурсам клик.

Для клик доступны три роли:

  • Use — дает права use на клику, которые позволяют выполнять SQL-запросы на инстансах клики.
  • Manage — дает права manage, read и remove, которые позволяют изменять или просматривать конфигурацию клики и удалить клику соответсвенно.
  • Responsible — позволяет подтверждать выдачу новых ролей на клику.

Во-вторых, при доступе к любым данным в YTsaurus происходит проверка доступа на чтение или запись ко всем упомянутым в запросе таблицам согласно стандартному механизму ACL, используемому в YTsaurus. Эта проверка гарантирует безопасность доступа к данным.

Изменение ACL работающей клики

Изменить ACL можно при помощи команды update_op_parameters, для этого необходимо:

  1. Ввести алиас клики в поле Filter Operations, нажать Go to operation. Алиас начинается с символа \*, это имя клики.

    find_operation_by_alias

  2. Перейти на страницу операции, скопировать Id.

  3. Выполнить команду, которая полностью заменит acl операции. Подставить Id из пункта 3.

    yt --proxy <cluster_name> update-op-parameters --operation <operation_id> '{acl = [{subjects=[robot-1; robot-2; robot-3]; action=allow; permissions=[read]};{subjects=[<subject>]; action=allow; permissions=[read;manage]}]}'