Доступ и безопасность

Продукт держит в себе ключи от поставщиков, пароли каналов связи и журнал обращений, поэтому к безопасности стоит отнестись внимательно. Здесь собрано, что уже сделано в самом продукте, а что нужно сделать на стороне сервера и в привычках команды.

Учётная запись администратора

Администратор один, и он задаётся переменными окружения — так что завести «лишнего» пользователя нельзя, даже случайно. Пароль хранится не как текст, а его необратимой суммой (SHA-256, записанной строчными буквами). Вход держится 90 дней — до тех пор пароль повторно вводить не придётся.

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

Где хранятся секреты

  • Ключи поставщиков и пароли каналов связи лежат в вашей базе и показываются заглушкой. В браузер они не отдаются; сохранить их можно, но прочитать обратно — нет.
  • Ключи доступа хранятся только отпечатком и последними 8 знаками. Готовый ключ показывается один раз, и восстановить его из базы невозможно.
  • Секреты скрытия секретов в отчётах об утечках замаскированы и хранятся ограниченное время.

Чего нет в журнале

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

Кто может обратиться из браузера

Внешние обращения к интерфейсу разрешены только с того же адреса, где открыт продукт. Это значит, что посторонний сайт не сможет из браузера вашего сотрудника незаметно обратиться к вашему прокси: браузер сам заблокирует такой запрос. Отдельно от этого адреса /api/* всегда открыт для программ — он защищён ключами доступа.

Что стоит сделать при выходе в интернет

  • Настроить HTTPS — чтобы пароль и ключи не ходили открытым текстом.
  • Завести отдельную базу со своим паролем — не использовать общую с другими программами.
  • Закрыть порт прокси-службы файрволом или открыть его только с проверкой по ключу. Если прокси-служба не нужна, порт лучше вовсе не публиковать.
  • Выдавать отдельный ключ доступа каждому человеку и подрядчику — с пределом расхода и списком моделей. Тогда отзыв доступа не задевает остальных.
  • Регулярно делать дамп базы — это и защита от потери истории, и способ разобраться в происходящем.

Что честно не защищено

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

Это последняя страница документации. Вернуться к списку разделов можно в оглавлении документации, а за общей картиной продукта — на страницу «Прокси-агент».

← Оглавление документации