Доступы и безопасность

Почему оператор SaaS не должен уметь читать ваши секреты

Право доступа к чужим данным всегда объясняют поддержкой. Разница между «мы обещаем не смотреть» и «мы не можем посмотреть» — это разница между регламентом и устройством.

Александр Цапков10 сентября 20262 мин

У любого SaaS есть человек с правами больше всех — оператор платформы. И почти всегда у него есть техническая возможность посмотреть данные клиента.

Это объясняют поддержкой, и объяснение правдиво: чтобы помочь, надо видеть. Вопрос в том, где эта возможность заканчивается.

Две разные фразы

«Мы обещаем не смотреть» — это регламент. Он держится на добросовестности сотрудников, на том, что никто не уволится обиженным, и на том, что доступ к базе не утечёт.

«Мы не можем посмотреть» — это устройство. Оно держится на том, что ключа нет физически.

Разница проверяется одним вопросом, который стоит задавать любому подрядчику: что произойдёт, если ваш сотрудник захочет? Если ответ начинается со слова «регламент» — вы услышали первую фразу.

Как это сделано у нас

Секреты развёртывания оператор платформы не читает. Не «не должен» — не может: они шифруются так, что ключ расшифровки на сервере не лежит.

Хранилище доступов открывается отдельным паролем, который на сервер не уходит вовсе. Отсюда неприятное, но честное следствие: забытый пароль хранилища восстановить нельзя. Нам нечем — у нас его нет.

Ключей от серверов клиентов у нас нет по построению. Агент приходит за заданием сам, приватная часть его пары остаётся на машине клиента. Подробный разбор — Мы не храним ни одного SSH-ключа.

Что оператор всё-таки может — и почему это записано

Полный запрет невозможен: платформу надо чинить, и иногда для этого нужно посмотреть на данные.

Поэтому границы доступа записаны отдельным решением, и в нём три вещи:

  1. что именно оператор может открыть;
  2. какой след остаётся — кто, что и когда смотрел;
  3. какой срок этот след хранится.

Третий пункт не формальность: след, который стирается через неделю, отвечает на вопрос «кто смотрел вчера» и не отвечает на «кто смотрел перед утечкой».

Что спрашивать у подрядчика

Три вопроса, которые отличают устройство от обещания:

  • Может ли ваш сотрудник прочитать мои пароли? Не «имеет ли право», а «может ли технически».
  • Останется ли след, если он посмотрит? И где этот след увижу я, а не вы.
  • Что вы сделаете, если я забуду пароль от хранилища? Ответ «восстановим» означает, что ключ у них есть.

Что из этого следует

Обещание не смотреть — это обязательство, которое вы берёте на себя перед клиентом. Невозможность посмотреть — это свойство, которое снимает обязательство целиком.

Второе дороже в разработке и проще в жизни: нечего нарушать, нечего доказывать при проверке и нечего терять при утечке доступа к собственной базе.


Доступы проекта у нас лежат в хранилище с отдельным паролем, а каждое их раскрытие записывается. Как это устроено — Хранилище доступов.

Хранилище паролей и ключей проектаПароли и ключи от сторонних сервисов проекта — зашифрованы, сервер их прочитать не может.

Читайте также

Автор

Александр ЦапковОснователь Скоупворк

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