Принцип минимальных прав в компании на 30 человек — это не проект и не софт, а три артефакта: матрица доступа, срок у каждого выданного права и часовая ревизия раз в квартал. Матрица собирается за один рабочий день, стоит 11 400 ₽ в рабочем времени и дальше живёт как обычная таблица на общем диске. Всё остальное, что пишут про least privilege, — надстройки над этими тремя вещами.

Проблема не в том, что руководители не знают принцип. Знают все: давать ровно столько прав, сколько нужно для работы, и не больше. Проблема в том, что принцип сформулирован как пожелание, а права выдаются в конкретный вторник, когда менеджеру срочно нужно посмотреть отгрузку, администратор занят, а самый быстрый способ решить вопрос — поставить галочку «полные права» и вернуться к делам. Через год таких вторников набирается сорок, и никто уже не может объяснить, почему у кладовщика открыт отчёт о прибыли.

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

Минимальные права — это три артефакта, а не принцип

Что это значитПринцип минимальных привилегий

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

В компаниях, где принцип действительно работает, всегда обнаруживаются одни и те же три вещи. Первая — таблица, в которой записано, какая роль что видит в каждой системе. Вторая — привычка ставить дату при выдаче нестандартного права. Третья — календарное напоминание раз в квартал, по которому кто-то один сверяет активные учётные записи с кадровым списком. Ни одна из трёх не требует покупки инструментов.

И наоборот: в компаниях, где принцип не работает, отсутствуют ровно эти три вещи, а вместо них есть регламент на восемь страниц, утверждённый два года назад и ни разу не открытый. Регламент — не артефакт. Артефакт — это то, что открывают в момент выдачи права и в момент увольнения сотрудника.

Матрица доступа: строки — роли, столбцы — системы

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

Вот как выглядит заполненная матрица для торговой компании на 30 человек с 1С:УТ, CRM, облачной телефонией, общим диском и сайтом на собственной админке. Значения в ячейках — не «да/нет», а то, что человек реально может сделать.

Роль1С:УТCRMТелефонияОбщий дискАдминка сайта
Менеджер по продажамНетСвои сделки, выгрузка закрытаСвои звонки и записиПапка отделаНет
Руководитель отдела продажОтгрузки и остатки, чтениеВсе сделки, выгрузка по заявкеЗаписи своего отделаПапка отделаНет
БухгалтерДокументы и платежи, без удаления и распроведенияНетНетПапка бухгалтерииНет
КладовщикПриход и отгрузка, без цен закупки и прибылиНетНетНетНет
МаркетологНетСегменты и статистика без телефоновНетПапка маркетингаПубликация, без пользователей и модулей
Системный администраторАдминистрирование, без роли бухгалтераАдминистрирование, выгрузка закрытаНастройкиВсе папкиАдминистрирование
ДиректорВсе отчёты, чтениеВсе сделки, выгрузкаЗаписи всех отделовВсе папкиНет

Три ячейки в этой таблице обычно вызывают спор, и в каждой ответ один и тот же. У кладовщика закрыты цены закупки — не потому, что ему не доверяют, а потому, что для приёмки и отгрузки они не нужны, а утечка закупочных цен к конкуренту стоит дороже, чем неудобство. У администратора закрыта выгрузка из CRM — техническую возможность обойти это он имеет, но обход попадёт в журнал, а рутинная выгрузка не попадёт. У директора нет прав в админке сайта, потому что он ими не пользуется, а его учётная запись — самая ценная цель для подбора пароля.

схема процессаprincip-minimalnyh-prav-dostupa--01
Матрица доступа: семь ролей по вертикали, пять систем по горизонтали, уровень права в ячейках

Схема-таблица в чертёжном стиле. По вертикали семь строк-ролей: менеджер по продажам, руководитель отдела продаж, бухгалтер, кладовщик, маркетолог, системный администратор, директор. По горизонтали пять столбцов-систем: 1С:УТ, CRM, телефония, общий диск, админка сайта. Ячейки закрашены тремя уровнями заливки с легендой: «нет доступа», «чтение или свои записи», «изменение». Три ячейки обведены отдельной рамкой с выносками: «кладовщик — без цен закупки», «администратор — выгрузка закрыта», «директор — без админки сайта». Сверху подпись «7 ролей × 5 систем», все подписи по-русски.

Семь ролей и пять систем закрывают компанию, где работает 30 человек

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

Что стоит матрица доступа для компании на 30 человек (администратор 1 200 ₽/ч, руководитель 900 ₽/ч)
Выгрузка списка активных учётных записей из пяти систем — 1 ч1 200 ₽
Разговор с тремя руководителями об операциях: 3 × 40 мин — 2 ч администратора2 400 ₽
Время самих руководителей: 3 × 40 мин — 2 ч1 800 ₽
Заполнение матрицы 7 ролей × 5 систем — 2 ч2 400 ₽
Приведение прав в системах к тому, что записано в матрице — 3 ч3 600 ₽
Четыре квартальные ревизии по часу — 4 ч в течение года4 800 ₽
Итого11 400 ₽ разово на сборку и 4 800 ₽ в год на ревизии — 16 200 ₽ за первый год

Восемь часов работы администратора и два часа руководителей — это весь бюджет. Дальше матрица меняется точечно: пришёл новый сотрудник — открыли строку своей роли и выдали то, что там записано; появилась новая система — добавили столбец. Отдельная выгода, о которой обычно не думают: при найме права выдаются за пять минут вместо получаса переписки «а что ему вообще нужно».

Три вопроса перед выдачей любого права

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

  1. 1
    Нужно ли это для текущей задачи

    Не для будущей и не для гипотетической. Формулировка «пусть будет, вдруг понадобится» — самый частый источник лишних прав. Проверка простая: если человек не может назвать документ, отчёт или действие, ради которого просит право, права нет — есть предчувствие. Отдельный случай — просьба выдать администратора, чтобы «не дёргать вас каждый раз»: она означает, что в матрице не хватает одной строки, а не что нужен администратор.

  2. 2
    На какой срок

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

  3. 3
    Что сломается, когда право отзовут

    Этот вопрос задаётся до выдачи, а не после. Он вытаскивает наружу скрытые зависимости: обмен с сайтом, который годами работает под личной учётной записью бывшего программиста; ежемесячный отчёт, который умеет строить один человек; выгрузка в банк, привязанная к чьей-то персональной подписи. Если ответ «сломается обмен», значит, право надо выдавать не человеку, а служебному пользователю интеграции — и это отдельная работа на час, зато без сюрприза в день увольнения.

Третий вопрос — самый полезный. В большинстве компаний, где мы разбирали процессы перед автоматизацией, находилась минимум одна интеграция, работающая под учётной записью живого человека. Такая связка тихо работает годами и ломается ровно в тот день, когда человека отключают, — обычно в первый день после его увольнения, когда разбираться уже некому. Служебные пользователи для обменов заводятся отдельно, и это правило мы держим и в собственных проектах, включая автозаполнение CRM из телефонии и почты.

Временный доступ вместо постоянного

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

  • Дата записана там же, где выдано право, — в той же таблице-матрице или в письме-заявке. Дата, сказанная вслух, не существует: через три недели никто не вспомнит, шла речь о неделе или о конце квартала.
  • На дату поставлено календарное напоминание, и не на день отзыва, а за три дня до него. Три дня — это запас на «продлите, пожалуйста, ещё на неделю»: продление по заявке нормально, а вот молчаливое переживание срока — нет.
  • Напоминание стоит на конкретном человеке, а не на общем ящике. У общего ящика нет обязанностей: письмо в нём прочитают четверо и ни один не отреагирует.
этапыprincip-minimalnyh-prav-dostupa--02
Лента жизни временного доступа: заявка, выдача с датой, напоминание за три дня, отзыв или продление

Горизонтальная лента времени из четырёх отметок с подписями по-русски. Отметка 1 — «Заявка: задача, система, срок». Отметка 2 — «Выдача: право + дата окончания, запись в матрицу». Отметка 3 — «За 3 дня: напоминание на конкретном человеке» с развилкой вниз на две ветки: «продление по заявке» и «ничего не делаем». Отметка 4 — «Отзыв в дату». Над лентой пометка «по умолчанию 30 дней, если срок задачи неизвестен». Внизу серым — параллельная ветка «без даты и без напоминания» без отметки отзыва, уходящая за край листа. Чертёжный стиль.

Отзывает не дисциплина, а наступление даты — при условии, что дата записана
Ловушка «до окончания проекта»

Формулировка «доступ до окончания проекта» выглядит как срок, но сроком не является: окончание проекта — событие, у которого нет календарной даты и которое нередко размазано на месяцы гарантийной переписки. В заявке пишется конкретное число, а гарантийные доступы выдаются заново под каждую задачу на два-три дня. Подробнее эта схема разобрана в материале о доступах подрядчику.

Квартальная ревизия за час

Ревизия не требует ни инструментов, ни подготовки. Час в квартал, один ответственный, пять шагов. Смысл её не в том, чтобы кого-то поймать, а в том, чтобы список активных учётных записей совпадал со списком людей, которые сегодня работают в компании.

  1. 1Выгрузить список активных учётных записей из пяти систем — 15 минут. В 1С это список пользователей, в CRM — сотрудники и приглашённые, в почте — ящики и алиасы, в телефонии — внутренние номера, на общем диске — участники папок.
  2. 2Сверить со списком сотрудников на сегодня, взятым у кадровика или из бухгалтерии, — 10 минут. Сверяются не фамилии по памяти, а два списка: расхождение в любую сторону — находка.
  3. 3По каждому расхождению задать три вопроса — 20 минут. Кто владелец этой учётной записи. Для какой задачи она сейчас нужна. До какого числа. Отсутствие ответа хотя бы на один вопрос — достаточное основание для отключения.
  4. 4Отключить то, что не прошло проверку, — 10 минут. Именно отключить, а не удалить: удаление уносит с собой историю действий, и разбирательство через полгода становится невозможным.
  5. 5Записать решения в ту же таблицу с матрицей — 5 минут. Строка, дата, что сделали. Через квартал следующая ревизия начинается не с нуля, а с прошлых записей.
схема процессаprincip-minimalnyh-prav-dostupa--03
Пять шагов квартальной ревизии с хронометражом: 15, 10, 20, 10 и 5 минут, всего час

Схема из пяти последовательных блоков со стрелками и хронометражом в каждом: «Выгрузка учётных записей из 5 систем — 15 мин», «Сверка с кадровым списком — 10 мин», «Три вопроса по каждому расхождению — 20 мин», «Отключение, не удаление — 10 мин», «Запись решений в матрицу — 5 мин». Справа итоговая плашка «60 минут, раз в квартал, 4 800 ₽ в год». Внутри третьего блока три коротких подписи-вопроса: «кто владелец», «для какой задачи», «до какого числа». Чертёжный стиль, подписи по-русски.

Ревизия укладывается ровно в час, если списки сверяются, а не вспоминаются
Отключение и удаление — разные операции

Отключённая учётная запись не может войти в систему, но остаётся в журналах: видно, кто и что делал под ней раньше. Удалённая учётная запись во многих системах превращает историю её действий в записи без автора. Правило простое: отключаем сразу, удаляем — не раньше, чем истечёт срок, в течение которого может понадобиться разбирательство, и обычно это не меньше года.

Три накопления прав, которые встречаются чаще всего

Лишние права накапливаются не случайно — у них типовые истории появления. Три ниже встречаются в компаниях 20–300 человек постоянно, и все три возникают из добрых намерений.

Что нашлиКак оно появилосьЧем это кончаетсяЧем заменить
Администратор в CRM у руководителя отдела продажНа внедрении нужно было настраивать воронку и поля, а ждать администратора было долгоПраво менять настройки журналирования и выгружать базу целиком — у человека, чей уход как раз и есть основной сценарий увода базыРоль «руководитель отдела» плюс отдельное право на изменение воронки, выдаваемое на срок доработок
Полный доступ к 1С у бухгалтера-совместителяПриходящий специалист на два дня в неделю, объяснять роли некогда, проще дать всёПосле расставания остаётся право распроведения и удаления документов закрытых периодов — и оно живёт, пока кто-нибудь не заметитРоль бухгалтера без удаления и распроведения, срок действия по договору оказания услуг
Право выгрузки списков у всех сотрудниковТак настроено в коробке по умолчанию, никто не менялКлиентская база уходит целиком за 30 секунд, в журнале — обычное действие, неотличимое от рабочегоВыгрузка вынесена в отдельное право у трёх человек, остальным — по заявке с записью в журнал

Общее у всех трёх — право досталось человеку, потому что так было быстрее в конкретный день. Это не халатность, а нормальная реакция на нехватку времени; лечится она не строгостью, а тем, что в матрице заранее есть подходящая строка. Когда роль «руководитель отдела с правом менять воронку» описана заранее, соблазна выдать администратора не возникает.

Когда жёсткое ограничение вредит

Принцип минимальных прав имеет обратную сторону, о которой в текстах по безопасности обычно молчат: каждое ограничение чего-то стоит. Иногда — больше, чем риск, который оно закрывает. Три ситуации ниже мы советуем разбирать отдельно и решение по ним принимать сознательно, а не по инерции «безопасность важнее».

  1. 1
    Ограничение, которое обходится вручную за двадцать минут

    Классический пример — запрет выгрузки у людей, которые и так видят все нужные записи в интерфейсе. Список из двухсот строк переписывается руками или копируется по экрану за 20 минут, то есть данные ограничение не защищает. Защищает оно только от массовой выгрузки в тысячи строк — и настраивать надо порог и журналирование, а не полный запрет.

  2. 2
    Единственный носитель права в маленькой компании

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

  3. 3
    Отсутствие аварийного доступа

    В субботу в 23:00 падает обмен между сайтом и учётной системой, а единственный человек с нужными правами недоступен. Жёсткая матрица без аварийного варианта означает, что заказы не разбираются до понедельника. Рабочая схема — именная аварийная учётная запись, пароль от которой лежит в запечатанном конверте у директора, а сам факт вскрытия конверта обязательно разбирается на следующий рабочий день.

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

Что стоит согласование, которое ничего не защищает
Запросов на выгрузку в месяц12
Время на один запрос: сотрудник 15 мин + руководитель 10 мин + администратор 10 мин35 мин
Всего в месяц: 12 × 35 мин7 ч
Стоимость часа по средней ставке участников1 100 ₽
В месяц: 7 ч × 1 100 ₽7 700 ₽
Итого92 400 ₽ в год за процедуру, которую обходят за 20 минут копированием с экрана
графикprincip-minimalnyh-prav-dostupa--04
Два столбца: 16 200 рублей в год на матрицу и ревизии против 92 400 рублей на лишние согласования

Столбиковая диаграмма из двух столбцов в рублях за год. Левый низкий столбец «Матрица и четыре ревизии — 16 200 ₽» с разбивкой на два сегмента: сборка 11 400 ₽, ревизии 4 800 ₽. Правый высокий столбец «Согласование каждой выгрузки — 92 400 ₽» с подписью «12 запросов в месяц × 35 мин × 1 100 ₽/ч». Между столбцами подпись «×5,7». Под правым столбцом пометка «и обходится за 20 минут копированием с экрана». Чертёжный стиль, подписи по-русски.

Дисциплина дешевле бюрократии почти в шесть раз — и в отличие от неё работает

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

И последнее. Матрица, сроки и ревизия защищают от накопления прав, но не от того, что пароль от учётной записи с правильными правами лежит в переписке или в таблице на общем диске. Это соседняя задача, и мы разбирали её отдельно — там про менеджер паролей, три класса секретов и порядок смены ключей интеграций. Хорошо настроенные права при плохом хранении секретов дают ложное чувство порядка.

Право без даты — это не право, а свойство человека. Свойства не отзываются.