Cloudflare объявила об интеграции Cloudflare Gateway и Data Loss Prevention с периферийной вычислительной платформой Cloudflare Workers. Этот шаг переводит защищённый веб-шлюз от модели фиксированных решений, таких как разрешение, блокировка и изоляция, к выполнению пользовательского кода непосредственно в процессе оценки политики безопасности.
Интеграция доступна для планов Zero Trust и предоставляет два основных способа вызова Worker из политик Gateway: новое действие под названием Forward, уже доступное в режиме публичного тестирования, и Custom Functions, выпуск которых ожидается до конца 2026 года.
Перенаправление запросов или выполнение пользовательской логики
Действие Forward работает как встроенный посредник для запросов, соответствующих политике. Worker получает заголовки и тело HTTP-запроса и может изменить их перед отправкой в исходный сервис, а затем изменить ответ перед его возвратом пользователю. Gateway при этом отвечает за TCP-соединения, завершение TLS, повторное шифрование, управление сертификатами и согласование версии HTTP, оставляя Worker только логику преобразования.
Forward также можно использовать для выполнения побочных действий без прерывания пути запроса: например, для отправки уведомления в Slack или PagerDuty, записи данных в R2, вызова webhook или обновления хранилища KV. Cloudflare заявляет, что вызов Worker выполняется на той же инфраструктуре, которая запускает Gateway, посредством локального вызова, не требующего передачи трафика через отдельную сеть.
Custom Functions вызывают Worker во время оценки политики и возвращают значение типа строка, число или логическое значение. Это значение можно использовать как selector в политиках HTTP или сетевых политиках. Worker может получать контекст, включающий исходный IP-адрес, идентификатор пользователя, состояние устройства, заголовки HTTP и сведения о соединении, в зависимости от этапа политики.
Примеры использования
Cloudflare поясняет, что пользовательская функция может прочитать утверждение JWT и извлечь роль или группу пользователя, а затем использовать результат для разрешения доступа либо добавления в запрос к исходному сервису такого заголовка, как X-App-Role. Также можно создавать страницы перехвата, запрашивающие у пользователя обоснование доступа к чувствительному ресурсу, с сохранением сессии в KV и журнала аудита в D1 или внутренней базе данных через Hyperdrive.
К другим вариантам использования относятся проверка файлов с помощью внешнего sandbox-сервиса, отправка мгновенных уведомлений при срабатывании правила DLP и выполнение расчётов рисков на основе нескольких внутренних источников. Cloudflare чётко различает эти два режима: Custom Functions подходят для быстрых, конкретных и не имеющих состояния оценок, тогда как Forward предназначен для преобразования живых запросов и обработки запроса и ответа.
Расширение возможностей DLP
Cloudflare также объявила о доступности пользовательских функций проверки для DLP. Эти функции позволяют клиентам использовать собственный источник истины для проверки результата обнаружения перед принятием решения о применении политики. Например, можно проверить, действительно ли обнаруженный ключ GitHub активен, вместо того чтобы ограничиваться сопоставлением с шаблоном, похожим на секрет или токен.
Функция проверки получает фрагмент данных и расположение совпавшей части, после чего может вызвать внешний интерфейс и вернуть результат, содержащий степень совпадения или решение veto. Благодаря этому можно отличить наличие чувствительного шаблона от ситуации, когда конкретный случай действительно представляет собой утечку или неправомерное использование.
Что меняется на практике?
Cloudflare стремится уменьшить потребность в промежуточной инфраструктуре, которой управляют команды безопасности, например в кластерах NGINX, используемых только для чтения утверждений JWT или изменения заголовков. Однако новая гибкость переносит часть ответственности на клиентский код: приложения, использующие Forward, необходимо тщательно проектировать, чтобы они не оказывали негативного влияния на пользовательский опыт. Кроме того, сбой Custom Function или истечение времени её выполнения требуют заранее определить резервное поведение.
Трафик, перенаправленный в Workers, учитывается как обычные запросы Workers. Функции работают с Workers Free, Workers Paid и Workers for Enterprise, однако бесплатный план устанавливает ограничения на время выполнения и количество запросов в день. Cloudflare заявляет, что общий доступ к обоим режимам будет предоставлен всем клиентам и для всех типов планов. Компания также планирует расширить точки интеграции внутри набора Cloudflare One, а следующим шагом станет Email Security.