Vercel Sandbox Firewall теперь поддерживает Postgres-соединения: что изменилось

Vercel обновил свой Sandbox Firewall, и теперь он корректно пропускает Postgres-соединения. Раньше из-за особенностей TLS-согласования в Postgres файрвол блокировал такие подключения, но разработчики устранили эту проблему. Теперь вы можете подключаться к управляемым базам данных, включая Neon, Supa

Vercel Sandbox Firewall теперь поддерживает Postgres-соединения: что изменилось

Vercel обновил свой Sandbox Firewall, и теперь он корректно пропускает Postgres-соединения. Раньше из-за особенностей TLS-согласования в Postgres файрвол блокировал такие подключения, но разработчики устранили эту проблему. Теперь вы можете подключаться к управляемым базам данных, включая Neon, Supabase, AWS RDS, Nile и Prisma Postgres, без каких-либо изменений в коде или конфигурации. Это важный шаг для тех, кто использует Vercel для serverless-функций или edge-вычислений и нуждается в безопасном доступе к внешним базам данных.

Как работает новое правило файрвола

Vercel Sandbox — это изолированная среда для выполнения кода, которая по умолчанию ограничивает исходящий сетевой трафик. Файрвол использует фильтрацию на основе SNI (Server Name Indication) — он проверяет доменное имя во время TLS-рукопожатия. Это отлично работает для HTTPS, где домен виден с самого начала соединения. Однако Postgres работает иначе: клиент сначала открывает обычное TCP-соединение, а затем обновляет его до TLS. Поскольку домен недоступен в момент первого запроса, файрвол блокировал такие подключения.

Теперь Sandbox Firewall адаптирован к протоколу TLS в Postgres. Он детектирует стартовую последовательность протокола, ожидает обновления до TLS и только затем применяет политику доменов перед тем, как направить соединение к базе данных. Это означает, что разработчикам не нужно вносить изменения в код или настройки базы — всё работает "из коробки".

Почему раньше Postgres-соединения блокировались?

Основная причина — в различии протоколов. HTTPS сразу передает домен в SNI, поэтому файрвол может мгновенно принять решение. Postgres же сначала устанавливает TCP-соединение, и только потом клиент и сервер договариваются о переходе на TLS. На этапе TCP домен еще не известен, и файрвол, не видя его, блокировал соединение. Теперь же он умеет ждать завершения TLS-рукопожатия, чтобы получить домен и применить политику.

Важные технические детали

Для корректной работы необходимо, чтобы клиент подключался с использованием TLS, то есть с параметром sslmode=require или выше (например, verify-ca или verify-full). Если база данных не поддерживает TLS, её можно разрешить по IP-диапазону, но большинство управляемых Postgres-провайдеров требуют TLS по умолчанию. Также стоит учитывать, что GSSAPI-шифрование не поддерживается — клиенты с gssencmode=prefer будут автоматически переключаться на TLS, а с gssencmode=require не смогут подключиться. Если клиент использует sslmode=prefer и база не поддерживает TLS, соединение завершится ошибкой, а не молча переключится на открытый текст.

Кого затронет обновление

Нововведение в первую очередь полезно разработчикам, использующим Vercel Sandbox для serverless-функций или edge-вычислений. Теперь они могут безопасно подключаться к внешним Postgres-базам, не жертвуя безопасностью. Это особенно актуально для стартапов и команд, которые используют такие сервисы, как Neon, Supabase или AWS RDS. В контексте СНГ и России, где популярны облачные решения, это упрощает интеграцию с управляемыми базами данных, включая те, что работают на Postgres.

Как это повлияет на производительность serverless-функций?

Поскольку файрвол теперь ожидает TLS-рукопожатие, время установки соединения может незначительно увеличиться. Однако это увеличение обычно составляет миллисекунды и не влияет на общую производительность. Более того, безопасность соединения повышается, так как все данные передаются в зашифрованном виде. Для большинства сценариев это незаметно.

Что будет дальше

Vercel продолжает улучшать Sandbox, делая его более гибким для разработчиков. Ожидается, что в будущем могут появиться аналогичные решения для других протоколов, где SNI-фильтрация не работает напрямую. Пока же обновление доступно всем пользователям Vercel Sandbox, и для его активации достаточно просто создать новый Sandbox или обновить существующий.

Итог

Обновление Sandbox Firewall устраняет ключевое ограничение при работе с Postgres, делая Vercel ещё более привлекательным для разработчиков, использующих облачные базы данных. Теперь можно безопасно подключаться к управляемым Postgres-сервисам без дополнительных настроек, что экономит время и снижает риск ошибок конфигурации.