Каждая организация подходит к безопасности через уникальную призму, определяемую её инструментами, требованиями и историей. Нет двух одинаковых сред, и ни одна не остается статичной надолго. Мы считаем, что платформы, которые их защищают, тоже не должны быть статичными.
Cloudflare создала нашу глобальную сеть как изначально программируемую, чтобы помочь организациям обрести эту гибкость и свободу. В этом посте мы глубже погрузимся в то, что означает программируемость, и как Cloudflare One, наша SASE-платформа, помогает клиентам проектировать свою безопасность и сеть с помощью наших строительных блоков для удовлетворения их уникальных и кастомных потребностей.
Что на самом деле означает программируемость
Термин "программируемость" был размыт индустрией. Большинство вендоров безопасности заявляют о программируемости, потому что у них есть публичные API, задокументированные провайдеры Terraform, веб-хуки и система оповещений. Это отлично, и Cloudflare тоже предлагает всё это.
Эти базовые возможности обеспечивают кастомизацию, инфраструктуру как код и автоматизацию операций безопасности, но они стали стандартным минимумом. С традиционной программируемостью вы можете настроить веб-хук для отправки оповещения в Slack при срабатывании политики.
Но истинная ценность программируемости заключается в другом. Это способность перехватить событие безопасности, обогатить его внешним контекстом и отреагировать на него в реальном времени. Допустим, пользователь пытается получить доступ к регулируемому приложению, содержащему конфиденциальные финансовые данные. Прежде чем запрос будет выполнен, вы отправляете запрос в вашу систему управления обучением, чтобы проверить, прошел ли пользователь обязательное обучение по комплаенсу. Если его сертификация истекла или он никогда её не проходил, доступ блокируется, и пользователь перенаправляется на портал обучения. Политика не просто вызвала оповещение — она приняла решение.
Создание самой программируемой SASE-платформы
Глобальная сеть Cloudflare охватывает более 330 городов по всему миру и работает в пределах примерно 50 миллисекунд от 95% интернет-населения. Эта сеть запускает каждую службу на каждом сервере в каждом центре обработки данных. Это означает, что наша передовая SASE-платформа и Developer Platform работают бок о бок, на одном железе, что делает наши сервисы Cloudflare одновременно компонуемыми и программируемыми.
Когда вы используете Cloudflare для защиты своих внешних веб-ресурсов, вы используете ту же сеть, те же инструменты и те же примитивы, что и при защите ваших пользователей, устройств и частных сетей с помощью Cloudflare One. Это те же самые примитивы, которые вы используете при создании и развертывании полнофункциональных приложений на нашей Developer Platform. Они спроектированы для совместной работы — не потому, что их интегрировали постфактум, а потому, что они изначально не были разделены.
По замыслу, это позволяет клиентам расширять решения политик с помощью кастомной логики в реальном времени. Вы можете вызвать внешний API оценки рисков, внедрить динамические заголовки или проверить атрибуты браузера. Вы можете маршрутизировать трафик на основе своей бизнес-логики, не добавляя задержек и не развертывая отдельную инфраструктуру. Автономные SASE-провайдеры без собственной платформы вычислений требуют развертывания автоматизации в отдельном облаке, ручной настройки веб-хуков и принятия задержек на обход и операционных издержек от сшивания разрозненных систем. С Cloudflare ваш Worker усиливает встроенные SASE-сервисы, такие как Access, для применения кастомных политик на граничной сети за миллисекунды.
Что открывает программируемость
В своей основе каждый шлюз безопасности работает по одной и той же фундаментальной модели. Трафик проходит от источников через политики к назначениям. Самое интересное происходит в политиках, но на большинстве платформ ваши варианты ограничены предопределенными действиями: разрешить, заблокировать, изолировать или отправить в карантин.
Мы думаем, есть лучший способ. Что, если вместо этого можно вызывать кастомную логику?
Вместо предопределенных действий вы могли бы:
-
Динамически внедрять заголовки на основе утверждений (claims) об идентичности пользователя
-
Обращаться к внешним системам оценки рисков для получения вердикта в реальном времени перед разрешением доступа
-
Применять контроль доступа на основе местоположения и рабочего времени
Сегодня клиенты уже могут делать многое из этого с помощью Cloudflare. И мы укрепляем интеграцию между нашей SASE-платформой и Developer Platform, чтобы сделать это еще проще. Расширения программируемости, подобные перечисленным выше, будут нативно интегрированы в Cloudflare One, позволяя клиентам встраивать кастомную логику в реальном времени в свои политики безопасности и сети. Анализируйте запрос и принимайте решение за миллисекунды. Или запускайте Worker по расписанию для анализа активности пользователей и соответствующего обновления политик, например, добавления пользователей в список высокого риска на основе сигналов от внешней системы.
Мы создаем это вокруг концепции действий: как управляемых, так и пользовательских. Управляемые действия будут предоставлять шаблоны для распространенных сценариев, таких как интеграции с ITSM-системами, редиректы и автоматизация комплаенса. Пользовательские действия позволяют полностью определить свою собственную логику. Когда политика HTTP в Gateway срабатывает, вместо ограничения действиями "разрешить", "заблокировать" или "изолировать", вы можете напрямую вызывать Cloudflare Worker. Ваш код выполняется на граничной сети, в реальном времени, с полным доступом к контексту запроса.
Как клиенты строят решения уже сегодня
Пока мы улучшаем этот опыт, многие клиенты уже сегодня используют Cloudflare One и Developer Platform таким образом. Вот простой пример, иллюстрирующий, что можно сделать с этой программируемостью.
Автоматизированное отзывание сессий устройств
Проблема: Клиент хотел обеспечить периодическую повторную аутентификацию для своих пользователей Cloudflare One Client, подобно тому, как традиционные VPN требуют от пользователей повторной аутентификации каждые несколько часов. Предопределенные настройки сессий Cloudflare разработаны для политик на уровне приложений, а не для глобального истечения срока действия по времени.
Решение: Запланированный Cloudflare Worker, который опрашивает Devices API, идентифицирует устройства, неактивные дольше заданного порога, и отзывает их регистрации, принуждая пользователей повторно аутентифицироваться через своего провайдера идентификации.
export default {
async scheduled(event, env, ctx) {
const API_TOKEN = env.API_TOKEN;
const ACCOUNT_ID = env.ACCOUNT_ID;
const REVOKE_INTERVAL_MINUTES = parseInt(env.REVOKE_INTERVAL_MINUTES); // Reuse for inactivity threshold
const DRY_RUN = env.DRY_RUN === 'true';
const headers = {
'Authorization': `Bearer ${API_TOKEN}`,
'Content-Type': 'application/json'
};
let cursor = '';
let allDevices = [];
// Fetch all registrations with cursor-based pagination
while (true) {
let url = `https://api.cloudflare.com/client/v4/accounts/${ACCOUNT_ID}/devices/registrations?per_page=100`;
if (cursor) {
url += `&cursor=${cursor}`;
}
const devicesResponse = await fetch(url, { headers });
const devicesData = await devicesResponse.json();
if (!devicesData.success) {
console.error('Failed to fetch registrations:', devicesData.errors);
return;
}
allDevices = allDevices.concat(devicesData.result);
// Extract next cursor (adjust if your response uses a different field, e.g., devicesData.result_info.cursor)
cursor = devicesData.cursor || '';
if (!cursor) break;
}
const now = new Date();
for (const device of allDevices) {
const lastSeen = new Date(device.last_seen_at);
const minutesInactive = (now - lastSeen) / (1000 * 60);
if (minutesInactive > REVOKE_INTERVAL_MINUTES) {
console.log(`Registration ${device.id} inactive for ${minutesInactive} minutes.`);
if (DRY_RUN) {
console.log(`Dry run: Would delete registration ${device.id}`);
} else {
const deleteResponse = await fetch(
`https://api.cloudflare.com/client/v4/accounts/${ACCOUNT_ID}/devices/registrations/${device.id}`,
{ method: 'DELETE', headers }
);
const deleteData = await deleteResponse.json();
if (deleteData.success) {
console.log(`Deleted registration ${device.id}`);
} else {
console.error(`Failed to delete ${device.id}:`, deleteData.errors);
}
}
}
}
}
};
Настройте Worker с секретами окружения (API_TOKEN, ACCOUNT_ID, REVOKE_INTERVAL_MINUTES) и cron-триггером (0 */4 * * * для запуска каждые 4 часа), и у вас будет автоматизированное управление сессиями. Только чтобы протолкнуть такую простую функцию в дорожную карту вендора, могли бы уйти месяцы, и еще больше времени на её внедрение в интерфейс управления.
Но с автоматизированным отзывом сессий устройств наш технический специалист развернул эту политику вместе с клиентом за один день. Она работает в продакшене уже несколько месяцев.
Мы наблюдали бесчисленное количество подобных реализаций в развертываниях Cloudflare One. Мы видели, как пользователи внедряют страницы с подсказками и процессы обоснования целей, используя наши существующие политики перенаправления и Workers. Другие пользователи создали собственную логику, которая оценивает атрибуты браузера перед принятием решений о политиках или маршрутизации. Каждое решение отвечает на уникальную проблему, которая в противном случае потребовала бы ожидания, пока вендор разработает специальную, узкоспециализированную интеграцию со сторонней системой. Вместо этого клиенты создают именно то, что им нужно, в свои сроки и на основе своей собственной логики.
Программируемая платформа, меняющая подход
Мы считаем, что будущее корпоративной безопасности — не в монолитной платформе, которая пытается делать всё. Это составляемая и программируемая платформа, которая даёт клиентам инструменты и гибкость для её расширения в любом направлении.
Для команд безопасности мы ожидаем, что наша платформа изменит сам подход. Вместо того чтобы подавать запрос на функцию и надеяться, что она попадёт в план разработки, вы можете уже сегодня создать индивидуальное решение, отвечающее вашим точным требованиям.
Для наших партнёров и управляемых поставщиков услуг безопасности (MSSP) наша платформа открывает возможность создавать и предоставлять решения для своей конкретной клиентской базы. Это означает отраслевые решения или возможности для клиентов в определённой регуляторной среде. Пользовательские интеграции становятся конкурентным преимуществом, а не проектом по профессиональным услугам.
А для наших клиентов это означает, что вы строите на платформе, которую легко развернуть и которая принципиально адаптируема под ваши самые сложные и меняющиеся потребности. Ваша платформа безопасности растёт вместе с вами — она не ограничивает вас.
Что дальше
Мы только начинаем. На протяжении 2026 года вы увидите, как мы продолжаем углублять интеграцию между Cloudflare One и нашей Developer Platform. Мы планируем начать с создания пользовательских действий в Cloudflare Gateway, которые поддерживают динамическое применение политик. Эти действия могут использовать вспомогательные данные, хранящиеся в существующих базах данных вашей организации, без административных проблем или проблем с соответствием требованиям, связанных с переносом этих данных в Cloudflare. Эти же пользовательские действия также будут поддерживать расширение запросов для передачи атрибутов Cloudflare вашим внутренним системам, что улучшит логирование и принятие решений о доступе в ваших последующих системах.
Тем временем, строительные блоки уже здесь. Правила внешней оценки, пользовательские проверки статуса устройства, перенаправления Gateway и вся мощь Workers уже доступны. Если вы не знаете, с чего начать, наша документация для разработчиков содержит руководства и эталонные архитектуры для расширения Cloudflare One.