@Generated(value="jsii-pacmak/1.67.0 (build 2c027f5)", date="2022-09-19T20:26:42.653Z") @Stability(value=Stable) public class CfnRateBasedRule extends CfnResource implements IInspectable
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 WAF V2 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 RateBasedRule is identical to a regular Rule , with one addition: a RateBasedRule counts the number of requests that arrive from a specified IP address every five minutes. For example, based on recent requests that you've seen from an attacker, you might create a RateBasedRule that includes the following conditions:
BadBot in the User-Agent header.In the rule, you also define the rate limit as 15,000.
Requests that meet both of these conditions and exceed 15,000 requests every five minutes trigger the rule's action (block or count), which is defined in the web ACL.
Note you can only create rate-based rules using an AWS CloudFormation template. To add the rate-based rules created through AWS CloudFormation to a web ACL, use the AWS WAF console, API, or command line interface (CLI). For more information, see UpdateWebACL .
Example:
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import software.amazon.awscdk.services.waf.regional.*;
CfnRateBasedRule cfnRateBasedRule = CfnRateBasedRule.Builder.create(this, "MyCfnRateBasedRule")
.metricName("metricName")
.name("name")
.rateKey("rateKey")
.rateLimit(123)
// the properties below are optional
.matchPredicates(List.of(PredicateProperty.builder()
.dataId("dataId")
.negated(false)
.type("type")
.build()))
.build();
| Modifier and Type | Class and Description |
|---|---|
static class |
CfnRateBasedRule.Builder
A fluent builder for
CfnRateBasedRule. |
static interface |
CfnRateBasedRule.PredicateProperty
Specifies the `ByteMatchSet` , `IPSet` , `SqlInjectionMatchSet` , `XssMatchSet` , `RegexMatchSet` , `GeoMatchSet` , and `SizeConstraintSet` objects that you want to add to a `Rule` and, for each object, indicates whether you want to negate the settings, for example, requests that do NOT originate from the IP address 192.0.2.44.
|
software.amazon.jsii.JsiiObject.InitializationModeIInspectable.Jsii$Default, IInspectable.Jsii$Proxy| Modifier and Type | Field and Description |
|---|---|
static String |
CFN_RESOURCE_TYPE_NAME
The CloudFormation resource type name for this resource class.
|
| Modifier | Constructor and Description |
|---|---|
|
CfnRateBasedRule(software.constructs.Construct scope,
String id,
CfnRateBasedRuleProps props)
Create a new `AWS::WAFRegional::RateBasedRule`.
|
protected |
CfnRateBasedRule(software.amazon.jsii.JsiiObject.InitializationMode initializationMode) |
protected |
CfnRateBasedRule(software.amazon.jsii.JsiiObjectRef objRef) |
| Modifier and Type | Method and Description |
|---|---|
protected Map<String,Object> |
getCfnProperties() |
Object |
getMatchPredicates()
The `Predicates` object contains one `Predicate` element for each `ByteMatchSet` , `IPSet` , or `SqlInjectionMatchSet>` object that you want to include in a `RateBasedRule` .
|
String |
getMetricName()
A name for the metrics for a `RateBasedRule` .
|
String |
getName()
A friendly name or description for a `RateBasedRule` .
|
String |
getRateKey()
The field that AWS WAF uses to determine if requests are likely arriving from single source and thus subject to rate monitoring.
|
Number |
getRateLimit()
The maximum number of requests, which have an identical value in the field specified by the `RateKey` , allowed in a five-minute period.
|
void |
inspect(TreeInspector inspector)
Examines the CloudFormation resource and discloses attributes.
|
protected Map<String,Object> |
renderProperties(Map<String,Object> props) |
void |
setMatchPredicates(IResolvable value)
The `Predicates` object contains one `Predicate` element for each `ByteMatchSet` , `IPSet` , or `SqlInjectionMatchSet>` object that you want to include in a `RateBasedRule` .
|
void |
setMatchPredicates(List<Object> value)
The `Predicates` object contains one `Predicate` element for each `ByteMatchSet` , `IPSet` , or `SqlInjectionMatchSet>` object that you want to include in a `RateBasedRule` .
|
void |
setMetricName(String value)
A name for the metrics for a `RateBasedRule` .
|
void |
setName(String value)
A friendly name or description for a `RateBasedRule` .
|
void |
setRateKey(String value)
The field that AWS WAF uses to determine if requests are likely arriving from single source and thus subject to rate monitoring.
|
void |
setRateLimit(Number value)
The maximum number of requests, which have an identical value in the field specified by the `RateKey` , allowed in a five-minute period.
|
addDeletionOverride, addDependsOn, addMetadata, addOverride, addPropertyDeletionOverride, addPropertyOverride, applyRemovalPolicy, applyRemovalPolicy, applyRemovalPolicy, getAtt, getCfnOptions, getCfnResourceType, getMetadata, getUpdatedProperites, getUpdatedProperties, isCfnResource, shouldSynthesize, toString, validatePropertiesgetRefgetCreationStack, getLogicalId, getStack, isCfnElement, overrideLogicalIdjsiiAsyncCall, jsiiAsyncCall, jsiiCall, jsiiCall, jsiiGet, jsiiGet, jsiiSet, jsiiStaticCall, jsiiStaticCall, jsiiStaticGet, jsiiStaticGet, jsiiStaticSet, jsiiStaticSet@Stability(value=Stable) public static final String CFN_RESOURCE_TYPE_NAME
protected CfnRateBasedRule(software.amazon.jsii.JsiiObjectRef objRef)
protected CfnRateBasedRule(software.amazon.jsii.JsiiObject.InitializationMode initializationMode)
@Stability(value=Stable)
public CfnRateBasedRule(@NotNull
software.constructs.Construct scope,
@NotNull
String id,
@NotNull
CfnRateBasedRuleProps props)
scope - - scope in which this resource is defined. This parameter is required.id - - scoped id of the resource. This parameter is required.props - - resource properties. This parameter is required.@Stability(value=Stable)
public void inspect(@NotNull
TreeInspector inspector)
inspect in interface IInspectableinspector - - tree inspector to collect and process attributes. This parameter is required.@Stability(value=Stable) @NotNull protected Map<String,Object> renderProperties(@NotNull Map<String,Object> props)
renderProperties in class CfnResourceprops - This parameter is required.@Stability(value=Stable) @NotNull protected Map<String,Object> getCfnProperties()
getCfnProperties in class CfnResource@Stability(value=Stable) @NotNull public String getMetricName()
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 change the name of the metric after you create the RateBasedRule .
@Stability(value=Stable)
public void setMetricName(@NotNull
String value)
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 change the name of the metric after you create the RateBasedRule .
@Stability(value=Stable) @NotNull public String getName()
You can't change the name of a RateBasedRule after you create it.
@Stability(value=Stable)
public void setName(@NotNull
String value)
You can't change the name of a RateBasedRule after you create it.
@Stability(value=Stable) @NotNull public String getRateKey()
The only valid value for RateKey is IP . IP indicates that requests arriving from the same IP address are subject to the RateLimit that is specified in the RateBasedRule .
@Stability(value=Stable)
public void setRateKey(@NotNull
String value)
The only valid value for RateKey is IP . IP indicates that requests arriving from the same IP address are subject to the RateLimit that is specified in the RateBasedRule .
@Stability(value=Stable) @NotNull public Number getRateLimit()
If the number of requests exceeds the RateLimit and the other predicates specified in the rule are also met, AWS WAF triggers the action that is specified for this rule.
@Stability(value=Stable)
public void setRateLimit(@NotNull
Number value)
If the number of requests exceeds the RateLimit and the other predicates specified in the rule are also met, AWS WAF triggers the action that is specified for this rule.
@Stability(value=Stable) @Nullable public Object getMatchPredicates()
@Stability(value=Stable)
public void setMatchPredicates(@Nullable
IResolvable value)
Copyright © 2022. All rights reserved.