This is the new AWS CloudFormation Template Reference Guide. Please update your bookmarks and links. For help getting started with CloudFormation, see the AWS CloudFormation User Guide.
AWS::WAFRegional::Rule
Note
This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the developer guide.
For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS WAF Developer Guide. With the latest version, AWS WAF has a single set of endpoints for regional and global use.
A combination of ByteMatchSet, IPSet, and/or SqlInjectionMatchSet objects that identify the web requests that you
want to allow, block, or count. For example, you might create a Rule that includes the following predicates:
-
An
IPSetthat causes AWS WAF to search for web requests that originate from the IP address192.0.2.44 -
A
ByteMatchSetthat causes AWS WAF to search for web requests for which the value of theUser-Agentheader isBadBot.
To match the settings in this Rule, a request must originate from 192.0.2.44 AND include a User-Agent
header for which the value is BadBot.
Syntax
To declare this entity in your AWS CloudFormation template, use the following syntax:
JSON
{ "Type" : "AWS::WAFRegional::Rule", "Properties" : { "MetricName" :String, "Name" :String, "Predicates" :[ Predicate, ... ]} }
YAML
Type: AWS::WAFRegional::Rule Properties: MetricName:StringName:StringPredicates:- Predicate
Properties
MetricName-
A name for the metrics for this
Rule. The name can contain only alphanumeric characters (A-Z, a-z, 0-9), with maximum length 128 and minimum length one. It can't contain whitespace or metric names reserved for AWS WAF, including "All" and "Default_Action." You can't changeMetricNameafter you create theRule.Required: Yes
Type: String
Pattern:
.*\S.*Minimum:
1Maximum:
128Update requires: Replacement
Name-
The friendly name or description for the
Rule. You can't change the name of aRuleafter you create it.Required: Yes
Type: String
Pattern:
.*\S.*Minimum:
1Maximum:
128Update requires: Replacement
Predicates-
The
Predicatesobject contains onePredicateelement for eachByteMatchSet,IPSet, orSqlInjectionMatchSetobject that you want to include in aRule.Required: No
Type: Array of Predicate
Update requires: No interruption
Return values
Ref
When you pass the logical ID of this resource to the intrinsic Ref function, Ref returns the resource physical ID, such as 1234a1a-a1b1-12a1-abcd-a123b123456.
For more information about using the Ref function, see Ref.
Fn::GetAtt
Examples
Associate an IPSet with a Web ACL Rule
The following example associates the MyIPSetBlacklistIPSet object with a web ACL rule.
JSON
"MyIPSetRule" : { "Type": "AWS::WAFRegional::Rule", "Properties": { "Name": "MyIPSetRule", "MetricName" : "MyIPSetRule", "Predicates": [ { "DataId" : { "Ref" : "MyIPSetBlacklist" }, "Negated" : false, "Type" : "IPMatch" } ] } }
YAML
MyIPSetRule: Type: "AWS::WAFRegional::Rule" Properties: Name: "MyIPSetRule" MetricName: "MyIPSetRule" Predicates: - DataId: Ref: "MyIPSetBlacklist" Negated: false Type: "IPMatch"