Как изолировать рабочие области и не запутаться в правах

8 минут
CreodockРедакция продукта
Изолированные контейнеры защищают данные разных рабочих областей

Базовые правила архитектуры, при которых API, файлы и действия команды остаются внутри своей рабочей области.

Граница рабочей области — первая линия защиты

Почти каждый объект продукта принадлежит конкретной рабочей области: клиент, заказ, файл, платёж, роль и журнал действий. Поэтому проверка принадлежности должна происходить до выполнения бизнес-операции, а не после неё.

Один и тот же принцип действует для интерфейса, внутреннего API и публичных интеграций.

Роль отвечает на вопрос «что можно сделать»

Изоляция определяет, к данным какой области есть доступ. Права внутри области определяют доступные действия: просмотр, создание, редактирование, назначение исполнителя или управление оплатами.

Эти проверки нельзя заменять тем, что кнопка скрыта в интерфейсе. Сервер обязан повторно подтвердить право на каждое значимое действие.

Скрытый элемент интерфейса — удобство. Проверка на сервере — безопасность.

Те же правила для API

API-ключ действует как отдельный участник рабочей области. У него должен быть ограниченный набор разрешений, понятный владелец и возможность отзыва без остановки всей системы.

  1. 01Определите рабочую областьКаждый запрос должен однозначно принадлежать одному workspace.
  2. 02Проверьте разрешениеКлюч получает только явно выданные возможности.
  3. 03Запишите значимое действиеАудит сохраняет кто, когда и что изменил без утечки секретов.

Безопасность как предсказуемость

Хорошая модель доступа не заставляет команду думать о ней каждый день. Пользователь видит только свои данные и доступные действия, а владелец может объяснить и проверить каждое выданное право.