Всем привет.
Занимаемся разработкой распределённой WorkFlow системы. Система будет работать в организации, которая имеет несколько мощных кластеров и суперкомпьютеров (всё под Linux).
Текущая архитектура системы такая: имеется один сервер с движком WorkFlow и на каждом доступном ресурсе (кластер или суперкомпьютер) имеется постоянно работающий агент. Сервер выбирает требуемые ресурсы для задач, связывается с агентом, отправляет данные и команды, контролирует выполнение задач, получает результаты.
Каждый WorkFlow - это набор задач, которые могут выполняться на разных ресурсах, часто параллельно.
Сейчас пользователи работают с этим ресурсами на уровне подключения через SSH и запуска shell-скриптов.
Основная проблема: задачи на ресурсах нашей системой должны запускаться от имени реальных пользователей. Потому что использование ресурсов пользователями должно контролироваться и к тому же оплачиваться самими пользователями или в рамках проектов, в которых пользователи работают. Существует система биллинга. Пользователи на всех ресурсах заводятся одновременно и централизованно, одновременно же и в биллинге.
Наше решение было - запускать задачи с помощью команды sudo. Т.е. агент, а точнее пользователь, от имени которого запускается агент, имеет права на выполнение определённого ограниченного набора команд от имени определённых пользователей без пароля. И тогда всё идёт гладко.
Однако!!! Админы организации нашу идею напрочь зарубили и сказали, что у нас кривая архитектура. Что они никогда не дадут нам использовать sudo и что нам нужно всё делать по другому. Например, для каждой задачи запускать от имени нужного пользователя агента (через ssh). При этом наш сервер будет иметь сертификаты пользователей, чтобы коннектиться к ресурсам от их имени.
Вот такая дилема. Пока админов в чём-то убедить не получается. Они стоят на своём, что настроить для нас sudo нельзя, что при этом пострадает безопастность, что у нас кривая архитектура и что мы должны всё переделывать, лишь бы не использовать sudo.
Может я что-то не понимаю и использовать sudo действительно неправильно и небезопасно?
Может есть ещё какие варианты архитектуры в данной ситуации? Да, запускать агента под рутом - об этом вообще и слышать не хотят, реально закрывают уши и говорят - даже не заикайтесь.
Буду очень благодарен всем, кто откликнется.