Перейти к содержимому

Секреты в безопасном хранилище; техпользователь с минимальными правами

Директивный

v8std#std740v8std#std770диагностикаUsingHardcodeSecretInformationдиагностикаExecuteExternalCode

#секреты#безопасность

Пароли и секреты не хранятся в реквизитах ИБ открытым текстом — только в безопасном хранилище БСП. Интеграции выполняются от технического пользователя с отдельной ролью, дающей минимум прав (только Use на конкретный HTTP-сервис и метод). Выполнить/Вычислить на сервере — ограничивать.

  • Секрет — это не только пароль: токены и ключи API, строки соединения, Authorization-заголовки, коды подтверждения (2FA), приватные ключи.
  • Секрет пишется под привилегированным режимом; в коде хранится ключ/идентификатор, а не сам секрет.
  • Техпользователь интеграции ≠ административная учётка: роль узкая, под задачу.
  • Секреты и чувствительные тела (ПДн, токены, коды подтверждения) не пишутся в ЖР.

Секрет в реквизите или в коде утекает вместе с выгрузкой конфигурации, бэкапом или логом. Широкая роль у интеграционного пользователя превращает скомпрометированный токен в полный доступ. Каналы утечки конкретны, и хранилище закрывает их все разом:

Канал Что утекает
Выгрузка конфигурации/расширения в git пароль, зашитый в код или макет
Копия базы прод → тест боевые токены в реквизитах; тест начинает ходить в боевые системы
ЖР и логи HTTP Authorization-заголовок, тело запроса с токеном
Скриншоты в инструкциях и тикетах пароль, видимый в форме настроек

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

Запись — под привилегированным режимом; чтение — так же, непосредственно перед использованием, без сохранения секрета в реквизиты формы и без передачи на клиент:

Фактические права роли можно проверить программно, без создания пользователя: ПравоДоступа(Право, МетаданныеОбъекта, МетаданныеРоли) — удобно для аудита ролей.

Подключение второго фактора аутентификации (2FA): платформа не пробрасывает учётные данные текущего пользователя в вызов провайдера, поэтому в шаблон запроса добавлен явный Authorization: Basic технического пользователя. Всё по этому стандарту: у техпользователя отдельная роль, дающая только Use на конкретный HTTP-сервис и метод отправки кода (не полные права «чтобы работало»); секрет хранится в безопасном хранилище, а не в тексте шаблона; сам код подтверждения в ЖР не пишется — иначе журнал превращается в архив одноразовых паролей.

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