← Cloudflare Ruleset Engine / ruleset-engine / managed-rulesets
Переопределение управляемого набора правил
Чтобы настроить поведение управляемого набора правил через API, переопределите набор правил при развёртывании. Переопределяя набор правил, вы задаёте изменения, которые применяются поверх конфигурации по умолчанию. Эти изменения имеют приоритет над поведением набора правил по умолчанию.
Например, чтобы протестировать управляемый набор правил перед его включением, можно выполнить его, задав для всех правил значение log вместо действий по умолчанию. Для этого переопределите настроенное поведение управляемого набора правил на уровне набора правил, чтобы каждое правило использовало log действие.
Если вы используете Terraform, обратитесь к следующим страницам:
- Настройка WAF Managed Rules с помощью Terraform
- Настройка управляемых наборов правил защиты от DDoS с помощью Terraform
Сведения о том, как задать переопределения в панели управления Cloudflare, см. в следующих материалах:
- Настройка управляемого набора правил WAF в панели управления
- Настройка HTTP DDoS Attack Protection в панели управления
- Настройка Network-layer DDoS Attack Protection в панели управления
Работа с переопределениями
Переопределить набор правил можно на трёх уровнях:
- Переопределения набора правил применяются ко всем правилам в выполняемом наборе правил.
- Переопределения тегов применяются ко всем правилам с определенным тегом. Например, используйте переопределение по тегу, чтобы настроить Cloudflare Managed Ruleset так, чтобы все правила с
wordpressпереведены в состояние Block. Если переопределения заданы для нескольких тегов и данное правило помечено более чем одним из этих тегов, поведение определяется порядком переопределений тегов. Для правил с несколькими переопределенными тегами применяется переопределение последнего тега. - Переопределения правил применяются к отдельным правилам управляемого набора правил и указываются по их Rule ID.
Более специфичные переопределения имеют приоритет над более общими: переопределения правил имеют приоритет над переопределениями тегов, а те, в свою очередь, над переопределениями наборов правил.
Чтобы применить переопределение для управляемого набора правил:
- Используйте один из операции обновления набора правил чтобы обновить входной набор правил вашей фазы.
- Укажите
overridesвaction_parametersправила, которое выполняет ваш управляемый набор правил.
"action_parameters": {
"id": "<RULESET_ID>",
"overrides": {
// ruleset overrides
"property-to-modify": "value",
"property-to-modify": "value",
// tag overrides
"categories": [
{
"category": "<TAG_NAME>",
"property-to-modify": "value",
"property-to-modify": "value"
}
],
// rule overrides
"rules": [
{
"id": "<RULE_ID>",
"property-to-modify": "value",
"property-to-modify": "value"
}
]
}
}Вы можете переопределить следующие свойства правила:
"action""enabled"
Некоторые управляемые наборы правил могут иметь дополнительные требования к переопределению или позволять переопределять другие свойства правил. Подробности ищите в документации соответствующего продукта Cloudflare.
Примеры
Пример переопределения правила
Следующие PUT запрос добавляет правило, которое выполняет управляемый набор правил в http_request_firewall_managed фаза на уровне зоны. Кроме того, запрос определяет переопределение правила, включающее правило <RULE_ID> и задайте для него действие log.
Необходимые разрешения API-токена
Хотя бы одно из следующих права доступа токена требуется:Response Compression WriteConfig Settings WriteDynamic URL Redirects WriteCache Settings WriteCustom Errors WriteOrigin WriteManaged headers WriteZone Transform Rules WriteMass URL Redirects WriteMagic Firewall WriteL4 DDoS Managed Ruleset WriteHTTP DDoS Managed Ruleset WriteSanitize WriteTransform Rules WriteSelect Configuration WriteBot Management WriteZone WAF WriteAccount WAF WriteAccount Rulesets WriteLogs WriteLogs Write
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/phases/http_request_firewall_managed/entrypoint" \
--request PUT \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"description": "Deploy managed ruleset, enabling a specific rule with log action",
"rules": [
{
"action": "execute",
"expression": "true",
"action_parameters": {
"id": "<MANAGED_RULESET_ID>",
"overrides": {
"rules": [
{
"id": "<RULE_ID>",
"enabled": true,
"action": "log"
}
]
}
}
}
]
}'Пример переопределения набора правил
Следующие PUT запрос добавляет правило, которое выполняет управляемый набор правил в http_request_firewall_managed фаза на уровне аккаунта. Кроме того, запрос определяет переопределение набора правил, которое задаёт действие log для всех (включённых) правил.
Необходимые разрешения API-токена
Хотя бы одно из следующих права доступа токена требуется:Mass URL Redirects WriteMagic Firewall WriteL4 DDoS Managed Ruleset WriteTransform Rules WriteSelect Configuration WriteAccount WAF WriteAccount Rulesets WriteLogs Write
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/rulesets/phases/http_request_firewall_managed/entrypoint" \
--request PUT \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"description": "Deploy managed ruleset for example.com, overriding the rules action to log",
"rules": [
{
"action": "execute",
"expression": "(cf.zone.name eq \"example.com\") and cf.zone.plan eq \"ENT\"",
"action_parameters": {
"id": "<MANAGED_RULESET_ID>",
"overrides": {
"action": "log"
}
}
}
]
}'Дополнительные ресурсы
Дополнительные примеры настройки переопределений через API см. в Примеры переопределений.