INTEGRITY Документация

Использование Cloudflare для ваших SaaS-приложений

Введение

При создании SaaS-приложения принято создавать уникальные имена хостов для каждой учётной записи клиента (или арендатора), например app.customer.com. Важно обеспечить, чтобы весь обмен данными с этим hostname приложения выполнялся по SSL/TLS, для чего на вашем приложении нужно создать сертификат для hostname клиента. Управление сертификатами является непростой задачей, поэтому архитекторы и разработчики приложений часто используют мультидоменный сертификат ↗ (MDC), поэтому можно приобрести и добавить всего один сертификат, в который включены сотни доменов. Однако такой подход плохо масштабируется, когда число обращений к приложению достигает тысяч и миллионов.

Кроме того, заказчик вашего приложения может захотеть разместить домен своего основного веб-сайта непосредственно в вашем приложении. Например, чтобы www.customer.com действительно доставляет контент напрямую из вашего SaaS-приложения.

Многие SaaS-приложения используют перед собой решения для кэширования и безопасности, такие как Cloudflare, и поэтому им необходимо подключать эти хосты. Часто это делается по модели «Zone»: внутри Cloudflare или у другого поставщика, например AWS Cloudfront, для app.customer.com. Это означает, что при подключении каждого нового клиента нужно создавать новую "Zone": для десятков и сотен клиентов это еще управляемо, но когда речь идет о тысячах и миллионах, управление всеми этими зонами и их конфигурациями становится сложной задачей.

Cloudflare for Platforms выходит далеко за рамки традиционной модели большинства edge-провайдеров: он управляет трафиком множества имен хостов и доменов в рамках одной "Zone". Теперь вы можете управлять www.customer1.com и www.customer2.net, а также ещё миллионы имен хостов, используя ту же конфигурацию и при необходимости настраивая функции индивидуально.

Этот документ содержит справочные сведения и рекомендации по использованию Cloudflare for Platforms. Документ разделен на три основных раздела.

Для кого предназначен этот документ и чему вы из него узнаете?

Эта эталонная архитектура предназначена для владельцев, инженеров и архитекторов SaaS-приложений, которые хотят узнать, как с помощью Cloudflare сделать своё приложение более масштабируемым и защищённым.

Чтобы лучше разобраться в Cloudflare, рекомендуем следующие материалы:

Прочитав эту эталонную архитектуру, вы узнаете:

Почему Cloudflare for Platforms?

Модель SaaS

Software as a Service (SaaS) стала одной из ключевых инноваций эпохи облачных вычислений. Раньше для устаревшего корпоративного ПО, размещённого локально (например, бухгалтерских систем, HR-решений и CRM), ИТ-персоналу приходилось уделять отдельное внимание созданию платформы для каждого приложения в компании, будь то выделенное оборудование, виртуальные машины или облачные инстансы. Модель SaaS позволяет таким поставщикам, как Shopify и Salesforce, вместо этого предоставлять клиентам доступ к собственной платформе. Теперь клиенту не нужно закупать оборудование или решать другие инфраструктурные вопросы: он просто оформляет подписку на платформу SaaS, которая всегда обновлена, защищена и доступна.

Проблемы со сторонними именами хостов

Для многих SaaS-приложений важно предоставлять сервис под собственным доменом клиента. Домен клиента важен для брендинга, безопасности и организации работы, и многие клиенты вкладывают немало средств в правильный .com для представления своего бизнеса. Многие клиенты, чьи домены связаны с их брендом, не хотят размещать свои приложения на домене провайдера.

Это особенно актуально для приложений, обращённых к клиентам, таких как решения для электронной коммерции. Такое приложение стоит опубликовать как shop.example.com, а не example.shop.com. Для защиты трафика к SaaS-приложению провайдеру ("shop") нужен сертификат для своего клиента, example.com.

Рисунок 1: поток электронной коммерции через SaaS-платформу.
Рисунок 1: поток электронной коммерции через SaaS-платформу.

Это создаёт сложность для SaaS-решений, поскольку выпуск сертификатов строго контролируется через Процесс проверки DCV. Владелец домена должен авторизовать любые сертификаты, поэтому традиционные методы валидации исходят от владельца домена и выдают сертификат только ему.

Рисунок 2: на устаревших платформах сертификаты нельзя продлить автоматически. Без ручных действий срок их действия истечёт, и трафик будет нарушен.
Рисунок 2: на устаревших платформах сертификаты нельзя продлить автоматически. Без ручных действий срок их действия истечёт, и трафик будет нарушен.

Это создаёт дилемму: модель SaaS даёт очевидные преимущества, но одновременно порождает собственную проблему. Новое решение позволило бы и поставщикам, и конечным клиентам получать максимум от модели SaaS.

Выпуск SSL-сертификатов через Cloudflare for Platforms

Управляйте сертификатами для любого хоста в интернете

Cloudflare for SaaS предлагает уникальное решение этих типичных проблем SaaS-провайдеров. Благодаря глобальной сети Cloudflare с низкими задержками мы можем прозрачно управлять выпуском сертификатов для конечных клиентов, а заодно даем SaaS-платформе ряд других преимуществ.

Надёжные и функциональные режимы проверки

У Cloudflare есть уникальная возможность управлять процессом Domain Control Validation (DCV) в сценарии SaaS. В традиционной модели удостоверяющие центры просят владельцев домена разместить определённый токен (запись DNS TXT или небольшой текстовый файл) на своём origin сервере, чтобы подтвердить права на этот домен. Это приходится повторять при каждом продлении сертификата, что стало более частым с недавними улучшениями в области безопасности.

Рисунок 3: процесс DCV.
Рисунок 3: процесс DCV.

Поскольку сеть Cloudflare без труда встраивается между клиентом и поставщиком SaaS, мы можем автоматически отвечать корректным токеном DCV от имени любого домена, который направляет трафик к поставщику SaaS через Cloudflare.

Рисунок 4: сертификаты автоматически продлеваются на платформах, работающих через Cloudflare.
Рисунок 4: сертификаты автоматически продлеваются на платформах, работающих через Cloudflare.

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

Настройте для своих клиентов работу с Cloudflare

Управляемые функции в Cloudflare for platforms

Cloudflare for Platforms дает вам гораздо больше, чем просто управление SSL-сертификатами. Мы предоставляем встроенные функции для управления безопасностью и производительностью в масштабе для каждого из ваших клиентов. Функции безопасности Cloudflare, такие как DDoS, WAF, Bot Management, а также Rate Limiting беспрепятственно распространяются на клиентов вашей платформы. Параметры безопасности можно настроить в Managed Rules для отдельных клиентов, чтобы исключать легитимный трафик или ужесточать безопасность. На производительность стороне, Кеш, Argo Smart Routing, и такие функции HTTP/2, как Early Hints обеспечивают масштабируемое и настраиваемое поведение для всех ваших клиентов. Настраиваемые правила кеширования позволяют добиваться высокого процента попаданий в кеш для всех ваших клиентов.

Если вам нужна ещё большая гибкость, чем дают наши правила, чтобы задать индивидуальное поведение для тысяч или миллионов клиентов, Custom Metadata обеспечивает полную гибкость для каждого клиента. Задавая теги вроде WAF: On или Performance: Premium для каждого клиента вы можете настраивать набор функций безопасности и производительности. Мы реализовали такие функции, как WAF for SaaS которые напрямую работают с этими метаданными, а также API в нашей бессерверной среде Workers для использования их в собственном коде.

Масштабируемые бессерверные приложения на основе Workers for Platforms

Если вам требуется больше настроек, чем может дать даже работа с метаданными, или если вы предоставляете сервис, в котором клиенты пишут или генерируют собственный код приложений, Workers for Platforms позволяет развернуть полноценное бессерверное приложение для каждого из ваших клиентов.

Мы предоставляем ряд ключевых функций, таких как Dispatch Worker, что дает практически неограниченную гибкость в выборе того, в какое клиентское приложение направить запрос. Например, можно выполнить проверки безопасности, затем декодировать HTTP-заголовок с идентификатором пользователя и загрузить нужное serverless-приложение для его запроса. Outbound Workers предоставляют дополнительную видимость и контроль над тем, к каким ресурсам интернета могут обращаться приложения ваших клиентов, обеспечивая привычную модель безопасности в распределенной среде.

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

Сценарии использования

Рассмотрим три распространённых сценария, в которых Cloudflare for Platforms помогает провайдерам без труда расширить SSL, производительность и безопасность на своих конечных клиентов.

Массовый выпуск SSL-сертификатов для вашей платформы

В этом распространённом варианте архитектуры Cloudflare позволяет вашей платформе выпускать SSL сертификаты и предоставлять функции производительности и безопасности. Функции не настраиваются под каждого клиента отдельно, а предоставляются как общие возможности всем пользователям платформы.

  1. Cloudflare защищает трафик от ваших клиентов к вашей платформе в глобальном масштабе, проверяя и распространяя SSL-сертификаты.
  2. В этом варианте архитектуры для всех ваших клиентов используется одна и та же конфигурация L7, то есть все функции, которые применяются к трафику и работают после SSL.
  3. Просто настройте Cloudflare for SaaS зоны и заказать custom hostname для каждого клиентского хоста. Система проведёт вас через простой процесс, чтобы направить трафик каждого клиента на вашу платформу и заказать для него сертификат.
    1. В большинстве случаев для этого процесса подойдут настройки по умолчанию, но возможна и индивидуальная настройка SSL.
    2. Маршрутизация трафика к источнику также выполняется в рамках процесса SSL for SaaS. Конфигурация по умолчанию обеспечивает надёжную защиту для большинства случаев.
Рисунок 5

Настройка функций для клиентов вашей платформы

Здесь мы не просто выпускаем сертификат для каждого клиента, мы предоставляем каждому из них индивидуальную конфигурацию. Например, для базового уровня доступен только основной WAF, а для расширенного уровня доступен Bot management. Также можно использовать общие функции для всех клиентов.

  1. Помимо защиты SSL-трафика используйте дополнительное поле, которое предоставляется при добавлении каждого клиента (Custom Metadata) чтобы пометить нужный набор функций.
  2. Функции Cloudflare считывают метаданные, чтобы настраивать поведение для каждого клиента. Функции WAF являются ключевым элементом настройки безопасности. Обеспечивайте разные уровни защиты вплоть до индивидуально настроенных наборов правил WAF.
  3. Что касается производительности, вы также можете добавить Argo Smart Routing, Cache и Early Hints, чтобы повысить производительность для выбранных клиентов.
Рисунок 6

Платформа приложений Serverless для ваших клиентов

В самом продвинутом варианте архитектуры для каждого из ваших клиентов настраивается полноценное serverless приложение в среде выполнения Workers. Простые Workers выполняют задачи, схожие с настройкой отдельных функций, а более сложные Workers способны запускать всю вашу платформу целиком в сети Cloudflare.

  1. Вместо развёртывания настраиваемых возможностей Cloudflare у каждого клиента есть собственное serverless приложение на JavaScript "User Worker" с уникальным кодом.
  2. Контроль остается за вами благодаря Dispatch Workers, которые определяют, какой код запускать, и Outbound Workers, которые ограничивают доступ пользовательского кода.
  3. Используйте расширенные возможности Developer Platform, такие как D1, Workers KV и Queues, чтобы построить весь свой бизнес на Cloudflare.
Рисунок 7

Сводка

С Cloudflare for SaaS вы сможете легко решать типичные проблемы, возникающие при росте платформенного бизнеса. От выпуска SSL-сертификатов и обеспечения безопасности до пользовательских serverless-приложений: Cloudflare for SaaS позволяет масштабировать всю нашу платформу для ваших клиентов, вплоть до миллионов пользователей.

Подробнее обо всех рассмотренных здесь функциях можно узнать по следующим ссылкам: