← Документация WAF / reference / legacy / old-rate-limiting
Обновление Rate Limiting (предыдущей версии)
Cloudflare обновил все правила rate limiting, созданные в предыдущая версия в новая версия правил rate limiting.
Панель управления Cloudflare теперь показывает все ваши правила rate limiting единым списком.
Основные различия
-
Модель тарификации: Предыдущая версия Rate Limiting тарифицировалась по использованию и была доступна как дополнение на всех планах, тогда как новая версия включена в планы Cloudflare. Для планов Enterprise цена Rate Limiting зависит от общего законтрактованного HTTP-трафика. Новые правила rate limiting предоставляют все возможности предыдущей версии rate limiting, а также несколько дополнительных функций.
-
Расширенные выражения области действия: Предыдущая версия Rate Limiting позволяла ограничивать область действия правил одним путём и методом запроса. В новой версии можно писать правила, аналогичные Пользовательские правила WAF, комбинируя несколько параметров HTTP-запроса.
-
Область счётчика: Новая версия rate limiting использует счётчики в рамках каждого дата-центра, причём
cf.colo.idвсегда включён как характеристика. Это означает, что пороги могут вести себя по-разному для трафика, распределённого между несколькими локациями Cloudflare. Дата-центры в одной географической локации используют общие счётчики. Подробнее см. Как Cloudflare определяет частоту запросов. -
Раздельные выражения подсчёта и митигации: В новой версии Rate Limiting выражения подсчёта и реагирования разделены (для клиентов Business и Enterprise). Выражение подсчёта определяет, какие запросы используются для вычисления частоты. Выражение реагирования определяет, к каким запросам применяются меры после достижения порогового значения. С помощью этих раздельных выражений вы можете отслеживать частоту запросов по определённому пути, например
/loginи, когда IP превышает порог, блокировать каждый запрос с этого же IP к вашему домену. -
Дополнительные измерения подсчёта (только Advanced Rate Limiting): Как и в предыдущей версии Rate Limiting, клиенты с новой версией Rate Limiting получают rate limiting по IP, при котором Cloudflare подсчитывает запросы по исходному IP-адресу входящих запросов. Помимо rate limiting по IP, клиенты новой версии Rate Limiting с подпиской Advanced Rate Limiting могут группировать запросы по другим характеристикам, таким как значение API-ключей, cookie, сессионных заголовков, ASN, параметров строки запроса или конкретного поля JSON-тела. См. Лучшие практики rate limiting — там приведены примеры.
-
Число правил в тарифах: Помимо точного набора функций для каждого тарифа Cloudflare, в новой версии Rate Limiting отличается число правил на тариф (об ограничениях новой версии см. Правила rate limiting):
Продукт Free Pro Business Enterprise с дополнением RL,
или эквивалентный тарифный планRate Limiting (предыдущая версия) 1 10 15 100 Rate Limiting (новая версия) 1 2 5 100 Клиенты Enterprise должны иметь application security в контракте, чтобы получить доступ к правилам rate limiting.
См. Важные замечания об обновлении о том, как Cloudflare при необходимости скорректирует вашу квоту правил после обновления.
Подробнее о различиях между старыми и новыми правилами rate limiting см. наша запись в блоге ↗.
Важные замечания об обновлении
-
После обновления вы не сможете создавать или изменять правила rate limiting, пока их число превышает новую квоту правил для вашего тарифного плана Cloudflare. Количество правил rate limiting, включённых в ваш план Cloudflare, может оказаться меньше, чем раньше. Если вы превышаете новый лимит, вам придётся либо перейти на план с большим количеством правил, либо удалять существующие правила, пока их число не станет меньше или равно новому максимуму для вашего плана.
-
Пользовательские тайм-ауты будут округлены до ближайшего поддерживаемого значения. И пользовательские периоды подсчёта, и пользовательские таймауты митигации будут округлены вверх или вниз до ближайшего периода подсчёта и таймаута митигации, поддерживаемых в новой версии (см. Доступность — подробности о доступных значениях для каждого тарифного плана).
Например, если у вас было правило rate limiting с тайм-аутом реагирования 55 секунд, этот тайм-аут будет округлён до одной минуты (ближайшее значение).
После обновления клиенты Enterprise смогут задавать собственный mitigation timeout для правила, но эта настройка доступна только через API. -
Клиентам на плане Business (или выше) доступно IP с поддержкой NAT (характеристика). Эта характеристика используется для обработки ситуаций, когда, например, запросы за NAT используют один и тот же IP-адрес.
-
Существующие пользовательские правила, пропускающие старый Rate Limiting, не будут обновлены для пропуска новой версии. Cloudflare не будет обновлять существующие пользовательские правила, пропускающие предыдущую версию Rate Limiting (правила skip с опцией More components to skip > Правила rate limiting (предыдущая версия)) чтобы пропустить новую версию.
Для существующих правил пропуска (пользовательских правил с Skip ), вам придётся вручную обновить их, если требуется, чтобы они пропускали новую версию правил rate limiting (Компоненты WAF для пропуска > Все правила rate limiting) вместо старой реализации.
Важные изменения в панели управления
Если у вас был доступ к предыдущей версии Cloudflare Rate Limiting, теперь все правила rate limiting находятся в одном списке в Security > WAF > Правила rate limiting.
Правила rate limiting, созданные в предыдущей версии, помечены тегом Previous version в панели управления Cloudflare.
Если вы используете новую панель управления безопасностью приложений, только правила rate limiting, обновлённые до новой версии, будут показаны в Security > Правила безопасности.
Если вы отредактируете правило с этим тегом в панели управления, вы больше не сможете изменять его через API и ресурс Terraform предыдущей версии правил rate limiting. В этом случае придётся начать использовать Rulesets API или cloudflare_ruleset ↗ ресурс Terraform для этой цели. Подробнее см. Значимые изменения для пользователей API и Значимые изменения для пользователей Terraform для получения дополнительной информации.
Значимые изменения для пользователей API
Предыдущий Rate Limiting API считается устаревшим. API больше не поддерживается с 2025-06-15. Вы должны обновить любую автоматизацию, основанную на предыдущий Rate Limiting API в Rulesets API , чтобы избежать проблем.
Новые правила rate limiting основаны на Ruleset Engine. Чтобы настроить эти правила rate limiting через API, необходимо использовать Rulesets API. Поскольку правила rate limiting, созданные в предыдущей версии, были обновлены до новой версии, этот API также вернёт такие правила, созданные в новой версии.
Rulesets API — единственный API, позволяющий создавать, редактировать и удалять любое правило rate limiting независимо от версии реализации, в которой правило было создано. предыдущий Rate Limiting API будет работать только с правилами rate limiting, созданными в предыдущей версии, которые вы не редактировали в панели управления и не изменяли через новый API/ресурс Terraform после их обновления до новой версии.
До даты вывода API из эксплуатации вы можете использовать предыдущий Rate Limiting API для создания, изменения и удаления правил rate limiting, созданных в предыдущей версии (которые Cloudflare обновил до новой версии). Однако если вы отредактируете правило, созданное в предыдущей версии, через Rulesets API или измените такое правило в панели управления Cloudflare — включая изменение порядка правил, — вы больше не сможете управлять этим правилом (обновлённым с предыдущей версии и затем изменённым через Rulesets API) с помощью старых операций API. В этом случае придётся полностью перейти на Rulesets API для управления этим конкретным правилом.
Значимые изменения для пользователей Terraform
cloudflare_rate_limit (ресурс Terraform) устарел. Ресурс больше не поддерживается с 2025-06-15. Вы должны вручную обновить конфигурацию rate limiting в Terraform с cloudflare_rate_limit ↗ (ресурсы) в cloudflare_ruleset ↗ (ресурсы), чтобы избежать проблем.
Новые правила rate limiting основаны на Ruleset Engine. Чтобы настроить эти правила rate limiting в Terraform, вы должны использовать cloudflare_ruleset ресурс Terraform.
cloudflare_ruleset ↗ — единственный ресурс Terraform, позволяющий создавать, изменять и удалять любое правило rate limiting независимо от версии реализации, в которой оно создано. cloudflare_rate_limit (ресурс Terraform) будет работать только с правилами rate limiting, созданными в предыдущей версии, которые вы не редактировали в дашборде и не изменяли через новый API или новый ресурс Terraform после их обновления до новой версии.
До даты вывода из эксплуатации cloudflare_rate_limit (ресурс Terraform), вы можете использовать этот ресурс для создания, редактирования и удаления правил rate limiting, созданных в предыдущей версии (которые Cloudflare обновил до новой версии). Однако если вы начнёте использовать cloudflare_ruleset (ресурс Terraform) для управления правилом, созданным в предыдущей версии, или отредактируете такое правило в панели управления Cloudflare — в том числе изменив порядок правил, — вы больше не сможете управлять этим правилом (обновлённым с предыдущей версии и затем изменённым через новый ресурс) с помощью старого ресурса Terraform. В этом случае вам придётся полностью перейти на cloudflare_ruleset Terraform для управления этим конкретным правилом.
См. документацию Terraform по примеры настройки новых правил rate limiting с помощью Terraform.
Замена конфигурации с помощью cf-terraforming
Вы можете использовать cf-terraforming ↗ инструмент, чтобы сгенерировать новую конфигурацию Terraform для правил rate limiting, созданных в предыдущей версии. Затем вы можете импортировать новые ресурсы в состояние Terraform.
Рекомендуемые шаги замены старой конфигурации rate limiting в Terraform на новую конфигурацию на основе наборов правил приведены ниже.
-
Выполните следующую команду, чтобы сгенерировать все конфигурации наборов правил для зоны:
cf-terraforming generate --zone <ZONE_ID> --resource-type "cloudflare_ruleset"resource "cloudflare_ruleset" "terraform_managed_resource_3c0b456bc2aa443089c5f40f45f51b31" { kind = "zone" name = "default" phase = "http_ratelimit" zone_id = "<ZONE_ID>" rules { # (...) } # (...) } # (...) -
Предыдущая команда может вернуть дополнительные конфигурации наборов правил для других продуктов Cloudflare, также основанных на Ruleset Engine. Поскольку вы обновляете конфигурацию правил rate limiting, оставьте только ресурс Terraform для
http_ratelimitфазы и сохраните его в.tf(файл конфигурации). Полное имя ресурса понадобится вам на следующем шаге. -
Импортируйте
cloudflare_rulesetресурс, определённый вами ранее, в состояние Terraform с помощьюterraform import. Например:terraform import cloudflare_ruleset.terraform_managed_resource_3c0b456bc2aa443089c5f40f45f51b31 zone/<ZONE_ID>/3c0b456bc2aa443089c5f40f45f51b31cloudflare_ruleset.terraform_managed_resource_3c0b456bc2aa443089c5f40f45f51b31: Importing from ID "zone/<ZONE_ID>/3c0b456bc2aa443089c5f40f45f51b31"... cloudflare_ruleset.terraform_managed_resource_3c0b456bc2aa443089c5f40f45f51b31: Import prepared! Prepared cloudflare_ruleset for import cloudflare_ruleset.terraform_managed_resource_3c0b456bc2aa443089c5f40f45f51b31: Refreshing state... [id=3c0b456bc2aa443089c5f40f45f51b31] Import successful! The resources that were imported are shown above. These resources are now in your Terraform state and will henceforth be managed by Terraform. -
Выполните
terraform plan, чтобы убедиться, что Terraform теперь проверяет состояние новыхcloudflare_rulesetресурс в дополнение к другим существующим ресурсам, уже управляемым Terraform. Например:terraform plancloudflare_ruleset.terraform_managed_resource_3c0b456bc2aa443089c5f40f45f51b31: Refreshing state... [id=3c0b456bc2aa443089c5f40f45f51b31] [...] cloudflare_rate_limit.my_rate_limiting_rules: Refreshing state... [id=0580eb5d92e344ddb2374979f74c3ddf] [...] -
Удалите из состояния всё, что относится к правилам rate limiting, настроенным через старый
cloudflare_rate_limit(ресурс) из состояния Terraform:-
Выполните следующую команду, чтобы найти все ресурсы, относящиеся к правилам rate limiting (предыдущей версии):
terraform state list | grep -E '^cloudflare_rate_limit\.'cloudflare_rate_limit.my_rate_limiting_rules -
Запустите
terraform state rm ...в режиме dry-run, чтобы понять последствия удаления этих ресурсов без внесения каких-либо изменений:terraform state rm -dry-run cloudflare_rate_limit.my_rate_limiting_rulesWould remove cloudflare_rate_limit.my_rate_limiting_rules -
Если влияние выглядит корректно, выполните ту же команду без
-dry-run, чтобы действительно удалить ресурсы из состояния Terraform:terraform state rm cloudflare_rate_limit.my_rate_limiting_rulesRemoved cloudflare_rate_limit.my_rate_limiting_rules Successfully removed 1 resource instance(s).
-
-
После удаления
cloudflare_rate_limit(ресурсы) из состояния Terraform, удалите все эти ресурсы из.tf(файлы конфигурации). -
Выполните
terraform plan, чтобы убедиться, что удалённые из файлов конфигурации ресурсы больше не отображаются. Ожидающих изменений быть не должно.terraform plancloudflare_ruleset.terraform_managed_resource_3c0b456bc2aa443089c5f40f45f51b31: Refreshing state... [id=3c0b456bc2aa443089c5f40f45f51b31] [...] No changes. Your infrastructure matches the configuration. Terraform has compared your real infrastructure against your configuration and found no differences, so no changes are needed.
Подробности об импорте ресурсов Cloudflare в Terraform и использовании cf-terraforming , обратитесь к следующим ресурсам:
Дополнительные ресурсы
Дополнительную информацию о новой реализации rate limiting, включая доступные функции в каждом тарифе Cloudflare, см. в Правила rate limiting.
Cloudflare также предлагает версию Advanced Rate Limiting, доступную клиентам Enterprise. Дополнительную информацию см. в Представляем Advanced Rate Limiting ↗ (запись в блоге).
Чтобы узнать больше о возможностях нового rate limiting, см. Лучшие практики rate limiting.