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

Переопределение управляемого набора правил

Чтобы настроить поведение управляемого набора правил через API, переопределите набор правил при развёртывании. Переопределяя набор правил, вы задаёте изменения, которые применяются поверх конфигурации по умолчанию. Эти изменения имеют приоритет над поведением набора правил по умолчанию.

Например, чтобы протестировать управляемый набор правил перед его включением, можно выполнить его, задав для всех правил значение log вместо действий по умолчанию. Для этого переопределите настроенное поведение управляемого набора правил на уровне набора правил, чтобы каждое правило использовало log действие.

Если вы используете Terraform, обратитесь к следующим страницам:

Сведения о том, как задать переопределения в панели управления Cloudflare, см. в следующих материалах:

Работа с переопределениями

Переопределить набор правил можно на трёх уровнях:

Более специфичные переопределения имеют приоритет над более общими: переопределения правил имеют приоритет над переопределениями тегов, а те, в свою очередь, над переопределениями наборов правил.

Чтобы применить переопределение для управляемого набора правил:

  1. Используйте один из операции обновления набора правил чтобы обновить входной набор правил вашей фазы.
  2. Укажите 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"
      }
    ]
  }
}

Вы можете переопределить следующие свойства правила:

Некоторые управляемые наборы правил могут иметь дополнительные требования к переопределению или позволять переопределять другие свойства правил. Подробности ищите в документации соответствующего продукта Cloudflare.

Примеры

Пример переопределения правила

Следующие PUT запрос добавляет правило, которое выполняет управляемый набор правил в http_request_firewall_managed фаза на уровне зоны. Кроме того, запрос определяет переопределение правила, включающее правило <RULE_ID> и задайте для него действие log.

Необходимые разрешения API-токена

Хотя бы одно из следующих права доступа токена требуется:
Обновление набора правил точки входа зоны
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-токена

Хотя бы одно из следующих права доступа токена требуется:
Обновление входного набора правил аккаунта
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 см. в Примеры переопределений.