Бизнес · 6 мин чтения

Как хранить доступы к сайту внутри компании: чек-лист без хаоса

Раз в квартал ко мне приходит клиент с одинаковой историей: разработчик, который делал сайт, пропал, а доступы к хостингу и админке остались только у него - сайт лежит с истёкшим SSL и без возможности что-то поправить. Как хранить доступы к сайту - вопрос, который стоит закрыть на берегу, а не в момент, когда что-то уже сломалось. Ниже - рабочий чек-лист, который я применяю в проектах на WordPress, Tilda и в сервисах на n8n: от инвентаризации доступов до регламента их отзыва.

Какие доступы к сайту нужно инвентаризировать

Первый шаг - не менеджер паролей, а таблица (потом перенесённая в нормальный инструмент) со списком того, что вообще есть у проекта. На практике набор почти всегда такой:

  • панель хостинга (ISPmanager, cPanel, VDS-провайдер) и доступ по SSH
  • регистратор домена и управление DNS-записями
  • админка CMS - WordPress, Tilda, Bitrix
  • база данных и FTP/SFTP
  • платёжные интеграции - например, ключи T‑Bank для эквайринга в WooCommerce
  • API служб доставки - СДЭК, Boxberry, Почта России
  • токены ботов - скажем, bot token aiogram-бота, подключённого к сайту
  • аналитика - Яндекс.Метрика, GA4, Search Console
  • репозиторий кода (GitHub/GitLab) и деплой-ключи
  • учётки в n8n или Zapier с credentials для автоматизаций между сайтом, CRM и мессенджерами

За восемь лет работы с сайтами на Tilda и WordPress я ни разу не видел взлома через подбор пароля, а вот доступ, потерянный из-за уволившегося сотрудника или пропавшего фрилансера, - регулярная история. Инвентаризация занимает час-два, но именно она показывает, сколько живых точек входа реально есть у сайта.

Почему таблица в чате и общий пароль - плохая идея

Классика: пароль от админки лежит в закреплённом сообщении Telegram-группы, а доступ к хостингу передают голосом на созвоне. Проблемы у такой схемы конкретные:

  • нет аудита - непонятно, кто и когда заходил под общей учёткой
  • нельзя отозвать доступ у одного человека, не сменив пароль для всех
  • чат читают люди, которые давно не работают над проектом, а поиск по истории находит пароль за секунду
  • без принудительного 2FA один слитый пароль - это полный доступ к сайту, платёжным ключам и базе клиентов

Особенно критично это для интеграций с оплатой и доставкой: если ключи T‑Bank или API СДЭК утекут вместе с общим паролем от Google-документа, отследить источник утечки почти невозможно.

Менеджеры паролей для команды: сравнение

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

Сервис Формат Шаринг для команды 2FA / аудит Когда подходит
Bitwarden (облако) SaaS Есть, по группам Есть, платно - лог событий Команда до 10-15 человек, без жёстких требований к серверу в РФ
Vaultwarden Self-hosted (Docker) Есть, полный контроль Есть Когда нужен сервер в РФ и контроль над данными
1Password Business SaaS Есть, гибкие политики Есть, продвинутый аудит Крупная команда, бюджет на подписку
KeePass Локальный файл Практически нет Нет Один человек или архив старых паролей, не для команды

Для большинства своих клиентов на WordPress и Tilda я рекомендую Vaultwarden на своём же VDS - это тот же интерфейс Bitwarden, но база с паролями физически лежит на сервере в России, а не в чужом облаке.

Бесплатный материал

🎁 Полезный скрипт в подарок

Подпишитесь на Telegram - пришлю готовый скрипт по этой теме.

Без спама. Отписка в 1 клик.

Разграничение доступов по ролям

Одна учётка с правами администратора на всех - источник половины проблем. В WordPress есть встроенные роли (администратор, редактор, автор), в Tilda - уровни доступа для команды проекта, и их стоит использовать по назначению, а не выдавать всем максимум.

Роль Что нужно Что не нужно
Контент-менеджер Редактор в CMS, доступ к медиабиблиотеке SSH, база данных, платёжные ключи
Маркетолог/таргетолog Аналитика, пиксели, доступ к формам Админка хостинга, репозиторий кода
Штатный разработчик SSH, база, репозиторий, staging Личный кабинет хостинг-провайдера с оплатой
Подрядчик на проект Временный доступ под задачу, ограниченный сроком Постоянный доступ после сдачи работ

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

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

Когда беру проект на доработку - кастомный скрипт для Tilda, интеграцию с СДЭК или бота на aiogram - прошу заводить отдельную временную учётку, а не делиться личным паролем клиента. После сдачи работ доступ у меня забирают, и это нормальная практика, а не недоверие.
Чек-лист передачи доступов подрядчику:

  • создать отдельного пользователя в CMS и на хостинге, не делиться главным логином
  • выдавать deploy-ключ в Git с ограниченными правами, а не полный доступ к репозиторию
  • ставить срок действия доступа в календаре - не полагаться на память
  • после сдачи проекта менять пароли от хостинга и API-ключи, к которым был доступ у подрядчика, а не только удалять его учётку
  • отзывать SSH-ключи и деплой-токены отдельно - удаление аккаунта не всегда убирает выпущенные ранее ключи

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

Секреты в коде и автоматизациях - не хардкодить

Отдельная зона риска - не пароли людей, а секреты внутри кода: токен телеграм-бота, ключ платёжного API, доступ к базе. Их нельзя коммитить в репозиторий открытым текстом. Стандартная схема - переменные окружения в .env-файле, который добавлен в .gitignore:

BOT_TOKEN=123456:AAxxx-yyyyyyyyyyyyyyy
TBANK_API_KEY=sk_live_xxxxxxxx
SDEK_ACCOUNT=xxxx
SDEK_SECURE_PASSWORD=xxxx
DB_PASSWORD=xxxx

В GitHub такие значения хранятся в Secrets для Actions, а не в коде пайплайна. В n8n для этого есть встроенное шифрованное хранилище credentials - не нужно вставлять токен бота или ключ СДЭК прямо в HTTP-ноду, credential создаётся один раз и переиспользуется в сценариях. Это же правило касается ботов на aiogram: токен читается из переменной окружения на сервере, а не хранится в файле, который может попасть в публичный репозиторий.

Регламент хранения доступов: что зафиксировать письменно

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

  • реестр доступов - кто, к какой системе, с какого числа и с какой ролью
  • ответственный за выдачу и отзыв доступов - обычно это не разработчик, а владелец бизнеса или технический директор
  • обязательный 2FA для админки CMS, хостинга и менеджера паролей
  • ротация паролей для критичных систем - на практике делаю раз в 90 дней для хостинга и платёжных интеграций
  • порядок действий в день увольнения сотрудника: смена паролей от общих систем, отзыв SSH-ключей, удаление из группы в менеджере паролей
  • журнал доступа - кто заходил на сервер и когда, хотя бы через встроенные логи хостинга

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

Чтобы сайт работал без сбоев

Техподдержка

от 15 000 ₽/мес

Подробнее →

Частые вопросы

Как передать доступы подрядчику без риска для сайта?

Заводите отдельную временную учётку с ограниченной ролью вместо того, чтобы делиться личным паролем администратора. После сдачи проекта меняйте пароли и ключи API, к которым был доступ у подрядчика, а не только удаляйте его аккаунт.

Сколько человек должно иметь права администратора на сайте?

На практике держу число полных администраторов минимальным - обычно один-два человека со стороны владельца бизнеса плюс разработчик на период активных работ. Остальным ролям хватает прав редактора или доступа к конкретным разделам.

Что делать с доступами после увольнения сотрудника?

В тот же день меняются пароли от общих систем (хостинг, CMS, менеджер паролей), отзываются SSH-ключи и деплой-токены, сотрудник удаляется из групп доступа. Если у него были отдельные API-ключи платёжных систем или служб доставки - их тоже нужно перевыпустить.

Нужно ли менять пароли, если утечки не было?

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

Есть задача?

Обсудим в мессенджере

Расскажите, что нужно сделать — отвечу в течение 4 часов в рабочее время. Первая консультация бесплатно.

Самозанятый Калинкин Н. А. · работаю с физлицами и юрлицами

Продолжая пользование настоящим сайтом Вы выражаете своё согласие на обработку Ваших персональных данных (файлов куки) с использованием Yandex.Metrika.
Понятно