Принцип минимальных прав в компании на 30 человек — это не проект и не софт, а три артефакта: матрица доступа, срок у каждого выданного права и часовая ревизия раз в квартал. Матрица собирается за один рабочий день, стоит 11 400 ₽ в рабочем времени и дальше живёт как обычная таблица на общем диске. Всё остальное, что пишут про least privilege, — надстройки над этими тремя вещами.
Проблема не в том, что руководители не знают принцип. Знают все: давать ровно столько прав, сколько нужно для работы, и не больше. Проблема в том, что принцип сформулирован как пожелание, а права выдаются в конкретный вторник, когда менеджеру срочно нужно посмотреть отгрузку, администратор занят, а самый быстрый способ решить вопрос — поставить галочку «полные права» и вернуться к делам. Через год таких вторников набирается сорок, и никто уже не может объяснить, почему у кладовщика открыт отчёт о прибыли.
Ниже — механика, которая превращает пожелание в процедуру. Она рассчитана на компанию без отдела информационной безопасности: всё делается силами приходящего или штатного администратора и трёх руководителей направлений. Отдельно, в последнем разделе, разбираем обратную сторону — три ситуации, где жёсткое ограничение обходится дороже риска, который оно закрывает.
Минимальные права — это три артефакта, а не принцип
Правило, по которому человек, программа или подрядчик получают ровно тот набор прав, который нужен для выполнения текущей задачи, и ровно на то время, пока задача выполняется. Ключевых слов здесь два: «текущей» — не будущей и не гипотетической, и «на время» — право с открытым сроком принципу не соответствует, даже если объём прав минимален.
В компаниях, где принцип действительно работает, всегда обнаруживаются одни и те же три вещи. Первая — таблица, в которой записано, какая роль что видит в каждой системе. Вторая — привычка ставить дату при выдаче нестандартного права. Третья — календарное напоминание раз в квартал, по которому кто-то один сверяет активные учётные записи с кадровым списком. Ни одна из трёх не требует покупки инструментов.
И наоборот: в компаниях, где принцип не работает, отсутствуют ровно эти три вещи, а вместо них есть регламент на восемь страниц, утверждённый два года назад и ни разу не открытый. Регламент — не артефакт. Артефакт — это то, что открывают в момент выдачи права и в момент увольнения сотрудника.
Матрица доступа: строки — роли, столбцы — системы
Матрица — это лист, где по вертикали перечислены роли, по горизонтали — системы, а в ячейках стоит уровень права. Не должности, а именно роли: должностей в компании на 30 человек бывает восемнадцать, а ролей — семь. Менеджер по продажам, старший менеджер и менеджер по работе с ключевыми клиентами в матрице обычно одна строка, потому что операции у них одинаковые, а разница — в размере плана.
Вот как выглядит заполненная матрица для торговой компании на 30 человек с 1С:УТ, CRM, облачной телефонией, общим диском и сайтом на собственной админке. Значения в ячейках — не «да/нет», а то, что человек реально может сделать.
| Роль | 1С:УТ | CRM | Телефония | Общий диск | Админка сайта |
|---|---|---|---|---|---|
| Менеджер по продажам | Нет | Свои сделки, выгрузка закрыта | Свои звонки и записи | Папка отдела | Нет |
| Руководитель отдела продаж | Отгрузки и остатки, чтение | Все сделки, выгрузка по заявке | Записи своего отдела | Папка отдела | Нет |
| Бухгалтер | Документы и платежи, без удаления и распроведения | Нет | Нет | Папка бухгалтерии | Нет |
| Кладовщик | Приход и отгрузка, без цен закупки и прибыли | Нет | Нет | Нет | Нет |
| Маркетолог | Нет | Сегменты и статистика без телефонов | Нет | Папка маркетинга | Публикация, без пользователей и модулей |
| Системный администратор | Администрирование, без роли бухгалтера | Администрирование, выгрузка закрыта | Настройки | Все папки | Администрирование |
| Директор | Все отчёты, чтение | Все сделки, выгрузка | Записи всех отделов | Все папки | Нет |
Три ячейки в этой таблице обычно вызывают спор, и в каждой ответ один и тот же. У кладовщика закрыты цены закупки — не потому, что ему не доверяют, а потому, что для приёмки и отгрузки они не нужны, а утечка закупочных цен к конкуренту стоит дороже, чем неудобство. У администратора закрыта выгрузка из CRM — техническую возможность обойти это он имеет, но обход попадёт в журнал, а рутинная выгрузка не попадёт. У директора нет прав в админке сайта, потому что он ими не пользуется, а его учётная запись — самая ценная цель для подбора пароля.
Схема-таблица в чертёжном стиле. По вертикали семь строк-ролей: менеджер по продажам, руководитель отдела продаж, бухгалтер, кладовщик, маркетолог, системный администратор, директор. По горизонтали пять столбцов-систем: 1С:УТ, CRM, телефония, общий диск, админка сайта. Ячейки закрашены тремя уровнями заливки с легендой: «нет доступа», «чтение или свои записи», «изменение». Три ячейки обведены отдельной рамкой с выносками: «кладовщик — без цен закупки», «администратор — выгрузка закрыта», «директор — без админки сайта». Сверху подпись «7 ролей × 5 систем», все подписи по-русски.
Собирается такая матрица не из головы администратора, а из разговора с руководителями направлений — и разговор ведётся про операции, а не про должности. Вопрос «какие права дать Ирине» не имеет правильного ответа. Вопрос «какие документы Ирина создаёт и какие отчёты открывает в течение месяца» имеет ответ из шести пунктов, и из него уже собирается роль.
Восемь часов работы администратора и два часа руководителей — это весь бюджет. Дальше матрица меняется точечно: пришёл новый сотрудник — открыли строку своей роли и выдали то, что там записано; появилась новая система — добавили столбец. Отдельная выгода, о которой обычно не думают: при найме права выдаются за пять минут вместо получаса переписки «а что ему вообще нужно».
Три вопроса перед выдачей любого права
Матрица закрывает штатные ситуации. Но половина прав в компании выдаётся вне матрицы: под конкретную задачу, срочно, в переписке. Именно эти права потом и обнаруживаются на ревизии. Чтобы такая выдача не превращалась в накопление, перед каждой задаются три вопроса — они занимают минуту и почти всегда меняют решение.
- 1Нужно ли это для текущей задачи
Не для будущей и не для гипотетической. Формулировка «пусть будет, вдруг понадобится» — самый частый источник лишних прав. Проверка простая: если человек не может назвать документ, отчёт или действие, ради которого просит право, права нет — есть предчувствие. Отдельный случай — просьба выдать администратора, чтобы «не дёргать вас каждый раз»: она означает, что в матрице не хватает одной строки, а не что нужен администратор.
- 2На какой срок
Ответ «постоянно» допустим только для того, что уже записано в матрице. Всё остальное получает дату. Если срок назвать невозможно, потому что задача не имеет понятного конца, ставится 30 дней — за месяц станет ясно, стало право штатным или задача закрылась. Дата — не формальность: без неё нет события, которое запускает отзыв.
- 3Что сломается, когда право отзовут
Этот вопрос задаётся до выдачи, а не после. Он вытаскивает наружу скрытые зависимости: обмен с сайтом, который годами работает под личной учётной записью бывшего программиста; ежемесячный отчёт, который умеет строить один человек; выгрузка в банк, привязанная к чьей-то персональной подписи. Если ответ «сломается обмен», значит, право надо выдавать не человеку, а служебному пользователю интеграции — и это отдельная работа на час, зато без сюрприза в день увольнения.
Третий вопрос — самый полезный. В большинстве компаний, где мы разбирали процессы перед автоматизацией, находилась минимум одна интеграция, работающая под учётной записью живого человека. Такая связка тихо работает годами и ломается ровно в тот день, когда человека отключают, — обычно в первый день после его увольнения, когда разбираться уже некому. Служебные пользователи для обменов заводятся отдельно, и это правило мы держим и в собственных проектах, включая автозаполнение CRM из телефонии и почты.
Временный доступ вместо постоянного
Временный доступ — единственный вид права, который не требует силы воли для отзыва: его отзывает наступление даты. Но работает это только при двух условиях, и оба обычно нарушаются.
- Дата записана там же, где выдано право, — в той же таблице-матрице или в письме-заявке. Дата, сказанная вслух, не существует: через три недели никто не вспомнит, шла речь о неделе или о конце квартала.
- На дату поставлено календарное напоминание, и не на день отзыва, а за три дня до него. Три дня — это запас на «продлите, пожалуйста, ещё на неделю»: продление по заявке нормально, а вот молчаливое переживание срока — нет.
- Напоминание стоит на конкретном человеке, а не на общем ящике. У общего ящика нет обязанностей: письмо в нём прочитают четверо и ни один не отреагирует.
Горизонтальная лента времени из четырёх отметок с подписями по-русски. Отметка 1 — «Заявка: задача, система, срок». Отметка 2 — «Выдача: право + дата окончания, запись в матрицу». Отметка 3 — «За 3 дня: напоминание на конкретном человеке» с развилкой вниз на две ветки: «продление по заявке» и «ничего не делаем». Отметка 4 — «Отзыв в дату». Над лентой пометка «по умолчанию 30 дней, если срок задачи неизвестен». Внизу серым — параллельная ветка «без даты и без напоминания» без отметки отзыва, уходящая за край листа. Чертёжный стиль.
Формулировка «доступ до окончания проекта» выглядит как срок, но сроком не является: окончание проекта — событие, у которого нет календарной даты и которое нередко размазано на месяцы гарантийной переписки. В заявке пишется конкретное число, а гарантийные доступы выдаются заново под каждую задачу на два-три дня. Подробнее эта схема разобрана в материале о доступах подрядчику.
Квартальная ревизия за час
Ревизия не требует ни инструментов, ни подготовки. Час в квартал, один ответственный, пять шагов. Смысл её не в том, чтобы кого-то поймать, а в том, чтобы список активных учётных записей совпадал со списком людей, которые сегодня работают в компании.
- 1Выгрузить список активных учётных записей из пяти систем — 15 минут. В 1С это список пользователей, в CRM — сотрудники и приглашённые, в почте — ящики и алиасы, в телефонии — внутренние номера, на общем диске — участники папок.
- 2Сверить со списком сотрудников на сегодня, взятым у кадровика или из бухгалтерии, — 10 минут. Сверяются не фамилии по памяти, а два списка: расхождение в любую сторону — находка.
- 3По каждому расхождению задать три вопроса — 20 минут. Кто владелец этой учётной записи. Для какой задачи она сейчас нужна. До какого числа. Отсутствие ответа хотя бы на один вопрос — достаточное основание для отключения.
- 4Отключить то, что не прошло проверку, — 10 минут. Именно отключить, а не удалить: удаление уносит с собой историю действий, и разбирательство через полгода становится невозможным.
- 5Записать решения в ту же таблицу с матрицей — 5 минут. Строка, дата, что сделали. Через квартал следующая ревизия начинается не с нуля, а с прошлых записей.
Схема из пяти последовательных блоков со стрелками и хронометражом в каждом: «Выгрузка учётных записей из 5 систем — 15 мин», «Сверка с кадровым списком — 10 мин», «Три вопроса по каждому расхождению — 20 мин», «Отключение, не удаление — 10 мин», «Запись решений в матрицу — 5 мин». Справа итоговая плашка «60 минут, раз в квартал, 4 800 ₽ в год». Внутри третьего блока три коротких подписи-вопроса: «кто владелец», «для какой задачи», «до какого числа». Чертёжный стиль, подписи по-русски.
Отключённая учётная запись не может войти в систему, но остаётся в журналах: видно, кто и что делал под ней раньше. Удалённая учётная запись во многих системах превращает историю её действий в записи без автора. Правило простое: отключаем сразу, удаляем — не раньше, чем истечёт срок, в течение которого может понадобиться разбирательство, и обычно это не меньше года.
Три накопления прав, которые встречаются чаще всего
Лишние права накапливаются не случайно — у них типовые истории появления. Три ниже встречаются в компаниях 20–300 человек постоянно, и все три возникают из добрых намерений.
| Что нашли | Как оно появилось | Чем это кончается | Чем заменить |
|---|---|---|---|
| Администратор в CRM у руководителя отдела продаж | На внедрении нужно было настраивать воронку и поля, а ждать администратора было долго | Право менять настройки журналирования и выгружать базу целиком — у человека, чей уход как раз и есть основной сценарий увода базы | Роль «руководитель отдела» плюс отдельное право на изменение воронки, выдаваемое на срок доработок |
| Полный доступ к 1С у бухгалтера-совместителя | Приходящий специалист на два дня в неделю, объяснять роли некогда, проще дать всё | После расставания остаётся право распроведения и удаления документов закрытых периодов — и оно живёт, пока кто-нибудь не заметит | Роль бухгалтера без удаления и распроведения, срок действия по договору оказания услуг |
| Право выгрузки списков у всех сотрудников | Так настроено в коробке по умолчанию, никто не менял | Клиентская база уходит целиком за 30 секунд, в журнале — обычное действие, неотличимое от рабочего | Выгрузка вынесена в отдельное право у трёх человек, остальным — по заявке с записью в журнал |
Общее у всех трёх — право досталось человеку, потому что так было быстрее в конкретный день. Это не халатность, а нормальная реакция на нехватку времени; лечится она не строгостью, а тем, что в матрице заранее есть подходящая строка. Когда роль «руководитель отдела с правом менять воронку» описана заранее, соблазна выдать администратора не возникает.
Когда жёсткое ограничение вредит
Принцип минимальных прав имеет обратную сторону, о которой в текстах по безопасности обычно молчат: каждое ограничение чего-то стоит. Иногда — больше, чем риск, который оно закрывает. Три ситуации ниже мы советуем разбирать отдельно и решение по ним принимать сознательно, а не по инерции «безопасность важнее».
- 1Ограничение, которое обходится вручную за двадцать минут
Классический пример — запрет выгрузки у людей, которые и так видят все нужные записи в интерфейсе. Список из двухсот строк переписывается руками или копируется по экрану за 20 минут, то есть данные ограничение не защищает. Защищает оно только от массовой выгрузки в тысячи строк — и настраивать надо порог и журналирование, а не полный запрет.
- 2Единственный носитель права в маленькой компании
Если право проводить платежи есть только у одного бухгалтера, а второго в компании нет, то отпуск, больничный и любая поездка останавливают платежи. Правильный ответ — не отказ от разграничения, а заранее оформленное замещение: вторая именная учётная запись с той же ролью, выдаваемая на период отсутствия по той же заявке с датой.
- 3Отсутствие аварийного доступа
В субботу в 23:00 падает обмен между сайтом и учётной системой, а единственный человек с нужными правами недоступен. Жёсткая матрица без аварийного варианта означает, что заказы не разбираются до понедельника. Рабочая схема — именная аварийная учётная запись, пароль от которой лежит в запечатанном конверте у директора, а сам факт вскрытия конверта обязательно разбирается на следующий рабочий день.
Первую ситуацию можно посчитать, и счёт получается неприятный. Модельная компания: 12 запросов на выгрузку списка клиентов в месяц, каждый требует времени сотрудника, руководителя и администратора.
Столбиковая диаграмма из двух столбцов в рублях за год. Левый низкий столбец «Матрица и четыре ревизии — 16 200 ₽» с разбивкой на два сегмента: сборка 11 400 ₽, ревизии 4 800 ₽. Правый высокий столбец «Согласование каждой выгрузки — 92 400 ₽» с подписью «12 запросов в месяц × 35 мин × 1 100 ₽/ч». Между столбцами подпись «×5,7». Под правым столбцом пометка «и обходится за 20 минут копированием с экрана». Чертёжный стиль, подписи по-русски.
Вывод из этого расчёта не «не ограничивайте», а «ограничивайте там, где ограничение нельзя обойти за двадцать минут». Массовая выгрузка, изменение прав, удаление документов, доступ к платёжному контуру — здесь ограничение работает. Право посмотреть то, что человек и так видит по работе, ограничивать бессмысленно: вы получите очередь согласований, раздражение отдела и ровно тот же уровень риска.
И последнее. Матрица, сроки и ревизия защищают от накопления прав, но не от того, что пароль от учётной записи с правильными правами лежит в переписке или в таблице на общем диске. Это соседняя задача, и мы разбирали её отдельно — там про менеджер паролей, три класса секретов и порядок смены ключей интеграций. Хорошо настроенные права при плохом хранении секретов дают ложное чувство порядка.
Право без даты — это не право, а свойство человека. Свойства не отзываются.
