Для разработчиков

Шифрование и безопасный контур

Доступно только на тарифе Корпорация

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

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

Настройки видит только владелец пространства. Администратору экран недоступен.

Безопасный контур

Владелец перечисляет публичные IP-адреса, с которых работают сотрудники: раздел Управление белым списком IP для доступа к вложениям. Принимаются IPv4, IPv6 и запись подсети в нотации CIDR — например, 8.8.8.8 или 203.0.113.0/24. Адреса добавляются по одному.

Настройки безопасного контура

Отдельного переключателя у этой возможности нет: контур действует, пока список непустой, и перестаёт действовать, как только он опустел.

Файл, загруженный с адреса из списка, скачивается только с адресов из списка. Признак проставляется один раз, в момент отправки, и остаётся с файлом навсегда. Пересланная копия наследует его от оригинала.

Сотрудник видит у такого вложения замок, а при попытке скачать снаружи — «Файл защищен» и «Скачивание возможно только из корпоративной сети».

Просмотр во внешнем контуре

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

Через API послабление не действует. Метод GETСкачивание файла отдаёт файл целиком или отказывает — промежуточного состояния «показать, но не отдать» у него нет, и параметр target доступа не открывает.

Что происходит при очистке списка

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

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

Продвинутое шифрование

Пространство шифрует данные собственным ключом из вашего хранилища ключей: поддерживаются Yandex KMS, Cloud.ru и Vault. В настройках указываются идентификатор ключа KMS и JSON-ключ сервисного аккаунта, а провайдер определяется по ключу сам.

Настройки продвинутого шифрования

Шифруется текст сообщений и часть вложений. Что именно зашифровано у конкретного файла, API не показывает — понять можно только по виду ссылки в url.

Шифрование применяется к новым сообщениям. Всё, что отправлено до включения, остаётся как было: обратной перешифровки нет.

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

Рядом лежит отдельный переключатель Шифровать push-уведомления — он шифрует текст перед отправкой через сервисы Apple и Google и к вложениям отношения не имеет.

Что меняется для интеграции

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

Как только файл оказывается защищённым или зашифрованным, в url приходит адрес метода GETСкачивание файла. Такую ссылку нельзя открыть в браузере или отдать стороннему сервису — она работает только с заголовком Authorization, и токену нужен скоуп files:read.

Различить два случая по полям ответа нельзя: состав объекта файла одинаковый. Ориентируйтесь на саму ссылку — ведёт она в хранилище или в Пачку.

Адрес сверяется ваш. Проверяется адрес, с которого пришёл запрос, то есть адрес сервера интеграции, а не сотрудника, чьим токеном вы пользуетесь. Чтобы серверная интеграция могла скачивать защищённые вложения, её исходящий адрес должен быть в списке.

Отказы, которые вы увидите:

  • 403 с кодом confidential_download_denied — файл не отдаётся. Так метод отвечает на защищённый файл, запрошенный снаружи контура, на файл, в котором нашли вирус, и на обычное вложение, которому этот метод не нужен: такие забирают по прямой ссылке.
  • 400 с кодом decryption_failed — расшифровать не удалось. Обычно это значит, что хранилище ключей недоступно или ключ отозван.

Зашифрованный файл всегда приходит целиком и вложением: параметр target для него не действует.

Журнал аудита

Обращения к ключу видны в методе GETЖурнал аудита событий: kms_encrypt — при шифровании, kms_decrypt — при расшифровке. В details приходит reason, по которому видно повод: file_upload и file_download для вложений, message_create и message_index для текста сообщений.

Изменения самих настроек — правка списка адресов, включение и выключение шифрования — в журнал не пишутся.