Adding a WAF exclusion rule
-
In the management console
, select the folder containing the WAF profile. -
Navigate to Smart Web Security.
-
In the left-hand panel, select WAF profiles.
-
Select the profile where you want to add an exclusion rule.
-
In the left-hand menu, select
Exclusion rules and click Create exception rule. -
Name the exclusion rule.
-
Optionally, provide a description.
-
Optionally, enable Write logs to log exception rule triggering.
-
Under Excluded checks, select:
- All rules: Exclusion will apply to all rules.
Use this option if you need to completely disable WAF rules for the selected traffic. For example, use it if a certain endpoint accepts data formats that consistently trigger false positives. - Selected rules: Exclusion will apply to the specified rules. Click Add rules and select the rules that trigger false positives.
- All rules: Exclusion will apply to all rules.
-
Under Scope, select the traffic to exclude from the check:
-
Entire request: The exclusion will apply to the entire HTTP request.
-
Request part: The exclusion will apply only to selected parts of the request, thus allowing you to exclude only the particular questionable parameter. The rest of the request will be checked according to the WAF profile settings.
In the Request parts field, select one or more of the following:
HTTP body: HTTP request body. Use if you get a false positive when parsing the request body, e.g., JSON, XML, forms.Cookie:Cookievalue.HTTP header: HTTP header. Use if you get a false positive in a specific header's value, e.g.,User-Agent,Referer,Authorization, or a custom header.Query params: Query string parameters.
Set one or more values for each parameter other than
HTTP body. To add one more value for a parameter, click or. Enable Case sensitive as needed.
-
-
Under Traffic conditions, specify the traffic the rule will apply to:
-
All traffic: Rule will apply to all traffic. -
On condition: Rule will apply to the traffic defined in the Conditions field:IP: IP address, IP address range, or IP address region.HTTP header: HTTP header string.Request URI: Request path.Host: Domain receiving the request.HTTP method: Request method.Cookie: Cookie header string.Bot name: Names of legitimate bots owned by various companies and services.Bot category: Verified bot categories based on their purpose or nature of action.Verified bot: Filtering based on whether the bot is verified (yesorno).Bot score: Filtering based on request bot score, from0(the lowest, represents a human) to100(the highest, represents a bot).FingerPrint: SSL/TLS connection fingerprint.
You can set multiple conditions of the same type by selecting all the condition types you need in the Conditions field.
You can also set multiple conditions of the same type at the same time by clicking
and or or in the section with the condition you need.To delete a condition, click
.
-
-
Click Create.
With Terraform
Terraform is distributed under the Business Source License
For more information about the provider resources, see the guides on the Terraform
If you do not have Terraform yet, install it and configure the Yandex Cloud provider.
To manage infrastructure using Terraform under a service account or user accounts (a Yandex account, a federated account, or a local user), authenticate using the appropriate method.
-
Open the Terraform configuration file and edit the
yandex_sws_waf_profiledescription: add theexclusion_rulesection with a WAF exclusion rule.# WAF profile resource "yandex_sws_waf_profile" "default" { name = "waf-profile-default" core_rule_set { inbound_anomaly_score = 2 paranoia_level = local.waf_paranoia_level rule_set { name = "OWASP Core Ruleset" version = "4.0.0" } } ... # Exclusion rule exclusion_rule { name = "<exclusion_rule_name>" condition { source_ip { ip_ranges_match { ip_ranges = [ "<IP_address_range_1>", "<IP_address_range_2>", ... "<IP_address_range_n>" ] } ip_ranges_not_match { ip_ranges = [ "<IP_address_range_3>", "<IP_address_range_4>", ... "<IP_address_range_y>" ] } } } exclude_rules { exclude_all = <true_or_false> rule_ids = [ "rule_ID_1", "rule_ID_2", ... "rule_ID_n", ] } } }Where:
exclusion_rule:-
name: Exclusion rule name. -
condition: Conditions for the exception rule to trigger. The above example uses a condition based on the traffic source IP address.Under
condition, you can specify multiple different condition types at the same time. -
exclude_rules: Exclusion rule settings:exclude_all: Exclusion will apply to all rules. It can be eitherfalseortrue.rule_ids: List of IDs of rules from the basic set to which the exclusion will apply. To specify individual rules, setexclude_alltofalse.
-
For more on the properties of the
sws_waf_profileresource, see this provider guide. -
Create the resources:
-
In the terminal, navigate to the configuration file directory.
-
Make sure the configuration is correct using this command:
terraform validateIf the configuration is valid, you will get this message:
Success! The configuration is valid. -
Run this command:
terraform planYou will see a list of resources and their properties. No changes will be made at this step. Terraform will show any errors in the configuration.
-
Apply the configuration changes:
terraform apply -
Type
yesand press Enter to confirm the changes.
-
You can check the resource update in the management console
Use the update REST API method for the WafProfile resource or the WafProfile/Update gRPC API call.