← Cloudflare Ruleset Engine / ruleset-engine / managed-rulesets
Создание исключения
Используйте исключения чтобы пропустить выполнение управляемого набора правил или некоторых его правил.
Конфигурация исключения включает выражение который определяет условия пропуска, а также правила или управляемые наборы правил, которые нужно пропустить при выполнении этих условий.
Если вы используете Terraform, см. Настройка исключений в документации Terraform.
Если вы используете панель управления Cloudflare, обратитесь к Добавьте исключение в дашборде.
Типы исключений
Исключение может иметь одно из следующих поведений (в порядке убывания приоритета):
- Пропустить все оставшиеся правила входного набора правил
- Пропустить один или несколько управляемых наборов правил
- Пропустить одно или несколько правил управляемых наборов правил
Вы задаёте исключения в определённом контексте (на уровне зоны или на уровне аккаунта), и они действуют только в этом контексте. Например, если вы задали исключение, которое пропускает все оставшиеся правила на уровне аккаунта, правила, заданные в наборе правил точки входа на уровне зоны, всё равно будут выполнены.
Если условиям соответствуют выражения нескольких исключений, Cloudflare учитывает исключение с наивысшим приоритетом.
Исключения применяются только к правилам, выполняющим управляемый набор правил, указанным после них. Если добавить исключение в конец списка правил набора правил точки входа, ничего не будет пропущено.
Пропустить все оставшиеся правила
Чтобы пропустить все оставшиеся правила в ruleset точки входа, создайте правило с skip действие и включить "ruleset": "current" в action_parameters объект.
Пример определения правила:
{
"expression": "<RULE_EXPRESSION>",
"action": "skip",
"action_parameters": {
"ruleset": "current"
}
}Пропуск всех оставшихся правил затрагивает только правила текущего контекста (аккаунт или зона). Например, при добавлении правила с skip действие к входному набору правил фазы уровня аккаунта не влияет на правила, определенные во входном наборе правил фазы уровня зоны: эти правила уровня зоны всё равно будут выполнены.
Полный пример см. в Документация по WAF.
Пропустить один или несколько управляемых наборов правил
Чтобы пропустить один или несколько управляемых наборов правил, создайте правило с skip действие, содержащее rulesets поле в action_parameters объект. rulesets поле должно содержать список идентификаторов управляемых наборов правил, которые нужно пропустить.
Пример определения правила:
{
"expression": "<RULE_EXPRESSION>",
"action": "skip",
"action_parameters": {
"rulesets": ["<MANAGED_RULESET_1_ID>", "<MANAGED_RULESET_2_ID>"]
}
}Полный пример см. в Документация по WAF.
Пропустить одно или несколько правил управляемых наборов правил
Чтобы пропустить одно или несколько правил управляемых наборов правил, создайте правило с skip действие, содержащее rules объект в action_parameters объект. rules объект должен содержать один или несколько идентификаторов управляемых наборов правил в качестве ключей и список правил, которые нужно пропустить в этих управляемых наборах правил, в качестве значения каждого ключа.
Пример определения правила, которое пропускает правила A и B управляемого набора правил 1, и правило X управляемого набора правил 2:
{
"expression": "<RULE_EXPRESSION>",
"action": "skip",
"action_parameters": {
"rules": {
"<MANAGED_RULESET_1_ID>": ["<RULE_A_ID>", "<RULE_B_ID>"],
"<MANAGED_RULESET_2_ID>": ["<RULE_X_ID>"]
}
}
}Правила в rules объект должен относиться к указанным управляемым наборам правил, иначе вы получите ошибку.
Полный пример см. в Документация по WAF.
Дополнительные примечания
- Исключения имеют приоритет над переопределения.
- Если вы задаёте исключение, которое пропускает все оставшиеся правила, выражения этих правил не вычисляются.
- Если вы задаёте исключение, пропускающее правило управляемого набора правил, выражение правила, которое запускает этот управляемый набор, все равно вычисляется, а правила набора выполняются за исключением того самого правила, которое пропускается.