Управление доступом сотрудников Селектел к облачным серверам

Моя прелесть

Одной из сложных задач является определение границы доступа для сотрудников компании, предоставляющих услугу.

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

Однако, это вызывает вполне понятные опасения. А что это они (а служба поддержки круглосуточная, то есть их не два и не пять человек) на консоль моего сервера смотрят? А если у меня там пароль или какая другая информация, которую я не хочу разглашать?

Таким образом, возникает противоречие между двумя благими пожеланиями. Добавим, что не смотря на довольно строгую политику по манипуляции с серверами клиентов (только после прямого подтверждения пожелания в тикете), всё равно остаётся тень сомнения. Человеческий фактор (рассеяность или злой умысел) вполне может нарушить любую корпоративную политику.

В таких ситуациях лучше всего работают технические средства.

Думаю, эта картинка объяснит больше, чем все последующие слова:
Установка прав доступа

Мы предоставили пользователю возможность самому управлять этими разрешениями. На новосозданном облачном сервере они таковы, инженерам запрещено:

  • менять настройки;
  • удалять/переустанавливать облачный сервер;
  • просматривать пароль root’а и вводить что-либо в консоли.

Инженерам по умолчанию разрешено просматривать консоль. Некоторые проблемы проявляют себя именно на консоли (например, туда выводятся сообщения ядра с приоритетом KERN_ERROR и выше). Это позволяет быстро ответить на вопрос «что не так», заданный в тикете.

Но все эти настройки можно поменять. Для этого используются разрешения (permissions). Для каждого из них можно установить срок действия (хоть час, хоть бессрочно). Можно так же запретить просмотр консоли.

Для удобства взаимодействия сотрудники службы поддержки могут отправить запрос на выполнение действий. У клиента появляется такой запрос:
Уведомление

Если нажать «разрешить», то разрешения выставятся на указанное время, а потом закончат свой срок действия. Если нажать «ингнорировать», то запрос будет отклонён.

На всякий случай, чтобы не было недоразумений: роботы используют свой интерфейс, в котором разрешения и запреты не действуют. Если робот обнаружит, что деньги закончились, то он выключит облачный сервер вне зависимости от того, есть разрешение или нет. Надеюсь, роботам люди доверяют больше, чем людям.