public static interface CfnWebACL.RuleProperty
Each rule includes one top-level Statement
that AWS WAF uses to identify matching web requests, and parameters that govern how AWS WAF handles them.
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.wafv2.*; Object all; Object allQueryArguments; Object count; Object method; Object none; Object queryString; Object singleHeader; Object singleQueryArgument; StatementProperty statementProperty_; Object uriPath; RuleProperty ruleProperty = RuleProperty.builder() .name("name") .priority(123) .statement(StatementProperty.builder() .andStatement(AndStatementProperty.builder() .statements(List.of(statementProperty_)) .build()) .byteMatchStatement(ByteMatchStatementProperty.builder() .fieldToMatch(FieldToMatchProperty.builder() .allQueryArguments(allQueryArguments) .body(BodyProperty.builder() .oversizeHandling("oversizeHandling") .build()) .cookies(CookiesProperty.builder() .matchPattern(CookieMatchPatternProperty.builder() .all(all) .excludedCookies(List.of("excludedCookies")) .includedCookies(List.of("includedCookies")) .build()) .matchScope("matchScope") .oversizeHandling("oversizeHandling") .build()) .headers(HeadersProperty.builder() .matchPattern(HeaderMatchPatternProperty.builder() .all(all) .excludedHeaders(List.of("excludedHeaders")) .includedHeaders(List.of("includedHeaders")) .build()) .matchScope("matchScope") .oversizeHandling("oversizeHandling") .build()) .jsonBody(JsonBodyProperty.builder() .matchPattern(JsonMatchPatternProperty.builder() .all(all) .includedPaths(List.of("includedPaths")) .build()) .matchScope("matchScope") // the properties below are optional .invalidFallbackBehavior("invalidFallbackBehavior") .oversizeHandling("oversizeHandling") .build()) .method(method) .queryString(queryString) .singleHeader(singleHeader) .singleQueryArgument(singleQueryArgument) .uriPath(uriPath) .build()) .positionalConstraint("positionalConstraint") .textTransformations(List.of(TextTransformationProperty.builder() .priority(123) .type("type") .build())) // the properties below are optional .searchString("searchString") .searchStringBase64("searchStringBase64") .build()) .geoMatchStatement(GeoMatchStatementProperty.builder() .countryCodes(List.of("countryCodes")) .forwardedIpConfig(ForwardedIPConfigurationProperty.builder() .fallbackBehavior("fallbackBehavior") .headerName("headerName") .build()) .build()) .ipSetReferenceStatement(Map.of( "arn", "arn", // the properties below are optional "ipSetForwardedIpConfig", Map.of( "fallbackBehavior", "fallbackBehavior", "headerName", "headerName", "position", "position"))) .labelMatchStatement(LabelMatchStatementProperty.builder() .key("key") .scope("scope") .build()) .managedRuleGroupStatement(ManagedRuleGroupStatementProperty.builder() .name("name") .vendorName("vendorName") // the properties below are optional .excludedRules(List.of(ExcludedRuleProperty.builder() .name("name") .build())) .managedRuleGroupConfigs(List.of(ManagedRuleGroupConfigProperty.builder() .awsManagedRulesAtpRuleSet(AWSManagedRulesATPRuleSetProperty.builder() .loginPath("loginPath") // the properties below are optional .requestInspection(RequestInspectionProperty.builder() .passwordField(FieldIdentifierProperty.builder() .identifier("identifier") .build()) .payloadType("payloadType") .usernameField(FieldIdentifierProperty.builder() .identifier("identifier") .build()) .build()) .responseInspection(ResponseInspectionProperty.builder() .bodyContains(ResponseInspectionBodyContainsProperty.builder() .failureStrings(List.of("failureStrings")) .successStrings(List.of("successStrings")) .build()) .header(ResponseInspectionHeaderProperty.builder() .failureValues(List.of("failureValues")) .name("name") .successValues(List.of("successValues")) .build()) .json(ResponseInspectionJsonProperty.builder() .failureValues(List.of("failureValues")) .identifier("identifier") .successValues(List.of("successValues")) .build()) .statusCode(ResponseInspectionStatusCodeProperty.builder() .failureCodes(List.of(123)) .successCodes(List.of(123)) .build()) .build()) .build()) .awsManagedRulesBotControlRuleSet(AWSManagedRulesBotControlRuleSetProperty.builder() .inspectionLevel("inspectionLevel") .build()) .loginPath("loginPath") .passwordField(FieldIdentifierProperty.builder() .identifier("identifier") .build()) .payloadType("payloadType") .usernameField(FieldIdentifierProperty.builder() .identifier("identifier") .build()) .build())) .ruleActionOverrides(List.of(RuleActionOverrideProperty.builder() .actionToUse(RuleActionProperty.builder() .allow(AllowActionProperty.builder() .customRequestHandling(CustomRequestHandlingProperty.builder() .insertHeaders(List.of(CustomHTTPHeaderProperty.builder() .name("name") .value("value") .build())) .build()) .build()) .block(BlockActionProperty.builder() .customResponse(CustomResponseProperty.builder() .responseCode(123) // the properties below are optional .customResponseBodyKey("customResponseBodyKey") .responseHeaders(List.of(CustomHTTPHeaderProperty.builder() .name("name") .value("value") .build())) .build()) .build()) .captcha(CaptchaActionProperty.builder() .customRequestHandling(CustomRequestHandlingProperty.builder() .insertHeaders(List.of(CustomHTTPHeaderProperty.builder() .name("name") .value("value") .build())) .build()) .build()) .challenge(ChallengeActionProperty.builder() .customRequestHandling(CustomRequestHandlingProperty.builder() .insertHeaders(List.of(CustomHTTPHeaderProperty.builder() .name("name") .value("value") .build())) .build()) .build()) .count(CountActionProperty.builder() .customRequestHandling(CustomRequestHandlingProperty.builder() .insertHeaders(List.of(CustomHTTPHeaderProperty.builder() .name("name") .value("value") .build())) .build()) .build()) .build()) .name("name") .build())) .scopeDownStatement(statementProperty_) .version("version") .build()) .notStatement(NotStatementProperty.builder() .statement(statementProperty_) .build()) .orStatement(OrStatementProperty.builder() .statements(List.of(statementProperty_)) .build()) .rateBasedStatement(RateBasedStatementProperty.builder() .aggregateKeyType("aggregateKeyType") .limit(123) // the properties below are optional .forwardedIpConfig(ForwardedIPConfigurationProperty.builder() .fallbackBehavior("fallbackBehavior") .headerName("headerName") .build()) .scopeDownStatement(statementProperty_) .build()) .regexMatchStatement(RegexMatchStatementProperty.builder() .fieldToMatch(FieldToMatchProperty.builder() .allQueryArguments(allQueryArguments) .body(BodyProperty.builder() .oversizeHandling("oversizeHandling") .build()) .cookies(CookiesProperty.builder() .matchPattern(CookieMatchPatternProperty.builder() .all(all) .excludedCookies(List.of("excludedCookies")) .includedCookies(List.of("includedCookies")) .build()) .matchScope("matchScope") .oversizeHandling("oversizeHandling") .build()) .headers(HeadersProperty.builder() .matchPattern(HeaderMatchPatternProperty.builder() .all(all) .excludedHeaders(List.of("excludedHeaders")) .includedHeaders(List.of("includedHeaders")) .build()) .matchScope("matchScope") .oversizeHandling("oversizeHandling") .build()) .jsonBody(JsonBodyProperty.builder() .matchPattern(JsonMatchPatternProperty.builder() .all(all) .includedPaths(List.of("includedPaths")) .build()) .matchScope("matchScope") // the properties below are optional .invalidFallbackBehavior("invalidFallbackBehavior") .oversizeHandling("oversizeHandling") .build()) .method(method) .queryString(queryString) .singleHeader(singleHeader) .singleQueryArgument(singleQueryArgument) .uriPath(uriPath) .build()) .regexString("regexString") .textTransformations(List.of(TextTransformationProperty.builder() .priority(123) .type("type") .build())) .build()) .regexPatternSetReferenceStatement(RegexPatternSetReferenceStatementProperty.builder() .arn("arn") .fieldToMatch(FieldToMatchProperty.builder() .allQueryArguments(allQueryArguments) .body(BodyProperty.builder() .oversizeHandling("oversizeHandling") .build()) .cookies(CookiesProperty.builder() .matchPattern(CookieMatchPatternProperty.builder() .all(all) .excludedCookies(List.of("excludedCookies")) .includedCookies(List.of("includedCookies")) .build()) .matchScope("matchScope") .oversizeHandling("oversizeHandling") .build()) .headers(HeadersProperty.builder() .matchPattern(HeaderMatchPatternProperty.builder() .all(all) .excludedHeaders(List.of("excludedHeaders")) .includedHeaders(List.of("includedHeaders")) .build()) .matchScope("matchScope") .oversizeHandling("oversizeHandling") .build()) .jsonBody(JsonBodyProperty.builder() .matchPattern(JsonMatchPatternProperty.builder() .all(all) .includedPaths(List.of("includedPaths")) .build()) .matchScope("matchScope") // the properties below are optional .invalidFallbackBehavior("invalidFallbackBehavior") .oversizeHandling("oversizeHandling") .build()) .method(method) .queryString(queryString) .singleHeader(singleHeader) .singleQueryArgument(singleQueryArgument) .uriPath(uriPath) .build()) .textTransformations(List.of(TextTransformationProperty.builder() .priority(123) .type("type") .build())) .build()) .ruleGroupReferenceStatement(RuleGroupReferenceStatementProperty.builder() .arn("arn") // the properties below are optional .excludedRules(List.of(ExcludedRuleProperty.builder() .name("name") .build())) .ruleActionOverrides(List.of(RuleActionOverrideProperty.builder() .actionToUse(RuleActionProperty.builder() .allow(AllowActionProperty.builder() .customRequestHandling(CustomRequestHandlingProperty.builder() .insertHeaders(List.of(CustomHTTPHeaderProperty.builder() .name("name") .value("value") .build())) .build()) .build()) .block(BlockActionProperty.builder() .customResponse(CustomResponseProperty.builder() .responseCode(123) // the properties below are optional .customResponseBodyKey("customResponseBodyKey") .responseHeaders(List.of(CustomHTTPHeaderProperty.builder() .name("name") .value("value") .build())) .build()) .build()) .captcha(CaptchaActionProperty.builder() .customRequestHandling(CustomRequestHandlingProperty.builder() .insertHeaders(List.of(CustomHTTPHeaderProperty.builder() .name("name") .value("value") .build())) .build()) .build()) .challenge(ChallengeActionProperty.builder() .customRequestHandling(CustomRequestHandlingProperty.builder() .insertHeaders(List.of(CustomHTTPHeaderProperty.builder() .name("name") .value("value") .build())) .build()) .build()) .count(CountActionProperty.builder() .customRequestHandling(CustomRequestHandlingProperty.builder() .insertHeaders(List.of(CustomHTTPHeaderProperty.builder() .name("name") .value("value") .build())) .build()) .build()) .build()) .name("name") .build())) .build()) .sizeConstraintStatement(SizeConstraintStatementProperty.builder() .comparisonOperator("comparisonOperator") .fieldToMatch(FieldToMatchProperty.builder() .allQueryArguments(allQueryArguments) .body(BodyProperty.builder() .oversizeHandling("oversizeHandling") .build()) .cookies(CookiesProperty.builder() .matchPattern(CookieMatchPatternProperty.builder() .all(all) .excludedCookies(List.of("excludedCookies")) .includedCookies(List.of("includedCookies")) .build()) .matchScope("matchScope") .oversizeHandling("oversizeHandling") .build()) .headers(HeadersProperty.builder() .matchPattern(HeaderMatchPatternProperty.builder() .all(all) .excludedHeaders(List.of("excludedHeaders")) .includedHeaders(List.of("includedHeaders")) .build()) .matchScope("matchScope") .oversizeHandling("oversizeHandling") .build()) .jsonBody(JsonBodyProperty.builder() .matchPattern(JsonMatchPatternProperty.builder() .all(all) .includedPaths(List.of("includedPaths")) .build()) .matchScope("matchScope") // the properties below are optional .invalidFallbackBehavior("invalidFallbackBehavior") .oversizeHandling("oversizeHandling") .build()) .method(method) .queryString(queryString) .singleHeader(singleHeader) .singleQueryArgument(singleQueryArgument) .uriPath(uriPath) .build()) .size(123) .textTransformations(List.of(TextTransformationProperty.builder() .priority(123) .type("type") .build())) .build()) .sqliMatchStatement(SqliMatchStatementProperty.builder() .fieldToMatch(FieldToMatchProperty.builder() .allQueryArguments(allQueryArguments) .body(BodyProperty.builder() .oversizeHandling("oversizeHandling") .build()) .cookies(CookiesProperty.builder() .matchPattern(CookieMatchPatternProperty.builder() .all(all) .excludedCookies(List.of("excludedCookies")) .includedCookies(List.of("includedCookies")) .build()) .matchScope("matchScope") .oversizeHandling("oversizeHandling") .build()) .headers(HeadersProperty.builder() .matchPattern(HeaderMatchPatternProperty.builder() .all(all) .excludedHeaders(List.of("excludedHeaders")) .includedHeaders(List.of("includedHeaders")) .build()) .matchScope("matchScope") .oversizeHandling("oversizeHandling") .build()) .jsonBody(JsonBodyProperty.builder() .matchPattern(JsonMatchPatternProperty.builder() .all(all) .includedPaths(List.of("includedPaths")) .build()) .matchScope("matchScope") // the properties below are optional .invalidFallbackBehavior("invalidFallbackBehavior") .oversizeHandling("oversizeHandling") .build()) .method(method) .queryString(queryString) .singleHeader(singleHeader) .singleQueryArgument(singleQueryArgument) .uriPath(uriPath) .build()) .textTransformations(List.of(TextTransformationProperty.builder() .priority(123) .type("type") .build())) // the properties below are optional .sensitivityLevel("sensitivityLevel") .build()) .xssMatchStatement(XssMatchStatementProperty.builder() .fieldToMatch(FieldToMatchProperty.builder() .allQueryArguments(allQueryArguments) .body(BodyProperty.builder() .oversizeHandling("oversizeHandling") .build()) .cookies(CookiesProperty.builder() .matchPattern(CookieMatchPatternProperty.builder() .all(all) .excludedCookies(List.of("excludedCookies")) .includedCookies(List.of("includedCookies")) .build()) .matchScope("matchScope") .oversizeHandling("oversizeHandling") .build()) .headers(HeadersProperty.builder() .matchPattern(HeaderMatchPatternProperty.builder() .all(all) .excludedHeaders(List.of("excludedHeaders")) .includedHeaders(List.of("includedHeaders")) .build()) .matchScope("matchScope") .oversizeHandling("oversizeHandling") .build()) .jsonBody(JsonBodyProperty.builder() .matchPattern(JsonMatchPatternProperty.builder() .all(all) .includedPaths(List.of("includedPaths")) .build()) .matchScope("matchScope") // the properties below are optional .invalidFallbackBehavior("invalidFallbackBehavior") .oversizeHandling("oversizeHandling") .build()) .method(method) .queryString(queryString) .singleHeader(singleHeader) .singleQueryArgument(singleQueryArgument) .uriPath(uriPath) .build()) .textTransformations(List.of(TextTransformationProperty.builder() .priority(123) .type("type") .build())) .build()) .build()) .visibilityConfig(VisibilityConfigProperty.builder() .cloudWatchMetricsEnabled(false) .metricName("metricName") .sampledRequestsEnabled(false) .build()) // the properties below are optional .action(RuleActionProperty.builder() .allow(AllowActionProperty.builder() .customRequestHandling(CustomRequestHandlingProperty.builder() .insertHeaders(List.of(CustomHTTPHeaderProperty.builder() .name("name") .value("value") .build())) .build()) .build()) .block(BlockActionProperty.builder() .customResponse(CustomResponseProperty.builder() .responseCode(123) // the properties below are optional .customResponseBodyKey("customResponseBodyKey") .responseHeaders(List.of(CustomHTTPHeaderProperty.builder() .name("name") .value("value") .build())) .build()) .build()) .captcha(CaptchaActionProperty.builder() .customRequestHandling(CustomRequestHandlingProperty.builder() .insertHeaders(List.of(CustomHTTPHeaderProperty.builder() .name("name") .value("value") .build())) .build()) .build()) .challenge(ChallengeActionProperty.builder() .customRequestHandling(CustomRequestHandlingProperty.builder() .insertHeaders(List.of(CustomHTTPHeaderProperty.builder() .name("name") .value("value") .build())) .build()) .build()) .count(CountActionProperty.builder() .customRequestHandling(CustomRequestHandlingProperty.builder() .insertHeaders(List.of(CustomHTTPHeaderProperty.builder() .name("name") .value("value") .build())) .build()) .build()) .build()) .captchaConfig(CaptchaConfigProperty.builder() .immunityTimeProperty(ImmunityTimePropertyProperty.builder() .immunityTime(123) .build()) .build()) .challengeConfig(ChallengeConfigProperty.builder() .immunityTimeProperty(ImmunityTimePropertyProperty.builder() .immunityTime(123) .build()) .build()) .overrideAction(OverrideActionProperty.builder() .count(count) .none(none) .build()) .ruleLabels(List.of(LabelProperty.builder() .name("name") .build())) .build();
Modifier and Type | Interface and Description |
---|---|
static class |
CfnWebACL.RuleProperty.Builder
A builder for
CfnWebACL.RuleProperty |
static class |
CfnWebACL.RuleProperty.Jsii$Proxy
An implementation for
CfnWebACL.RuleProperty |
Modifier and Type | Method and Description |
---|---|
static CfnWebACL.RuleProperty.Builder |
builder() |
default java.lang.Object |
getAction()
The action that AWS WAF should take on a web request when it matches the rule's statement.
|
default java.lang.Object |
getCaptchaConfig()
Specifies how AWS WAF should handle `CAPTCHA` evaluations.
|
default java.lang.Object |
getChallengeConfig()
Specifies how AWS WAF should handle `Challenge` evaluations.
|
java.lang.String |
getName()
The name of the rule.
|
default java.lang.Object |
getOverrideAction()
The override action to apply to the rules in a rule group, instead of the individual rule action settings.
|
java.lang.Number |
getPriority()
If you define more than one `Rule` in a `WebACL` , AWS WAF evaluates each request against the `Rules` in order based on the value of `Priority` .
|
default java.lang.Object |
getRuleLabels()
Labels to apply to web requests that match the rule match statement.
|
java.lang.Object |
getStatement()
The AWS WAF processing statement for the rule, for example `ByteMatchStatement` or `SizeConstraintStatement` .
|
java.lang.Object |
getVisibilityConfig()
Defines and enables Amazon CloudWatch metrics and web request sample collection.
|
java.lang.String getName()
You can't change the name of a Rule
after you create it.
java.lang.Number getPriority()
AWS WAF processes rules with lower priority first. The priorities don't need to be consecutive, but they must all be different.
java.lang.Object getStatement()
java.lang.Object getVisibilityConfig()
default java.lang.Object getAction()
Settings at the web ACL level can override the rule action setting.
This is used only for rules whose statements don't reference a rule group. Rule statements that reference a rule group are RuleGroupReferenceStatement
and ManagedRuleGroupStatement
.
You must set either this Action
setting or the rule's OverrideAction
, but not both:
default java.lang.Object getCaptchaConfig()
If you don't specify this, AWS WAF uses the CAPTCHA
configuration that's defined for the web ACL.
default java.lang.Object getChallengeConfig()
If you don't specify this, AWS WAF uses the challenge configuration that's defined for the web ACL.
default java.lang.Object getOverrideAction()
This is used only for rules whose statements reference a rule group. Rule statements that reference a rule group are RuleGroupReferenceStatement
and ManagedRuleGroupStatement
.
Set the override action to none to leave the rule group rule actions in effect. Set it to count to only count matches, regardless of the rule action settings.
You must set either this OverrideAction
setting or the Action
setting, but not both:
default java.lang.Object getRuleLabels()
AWS WAF applies fully qualified labels to matching web requests. A fully qualified label is the concatenation of a label namespace and a rule label. The rule's rule group or web ACL defines the label namespace.
Rules that run after this rule in the web ACL can match against these labels using a LabelMatchStatement
.
For each label, provide a case-sensitive string containing optional namespaces and a label name, according to the following guidelines:
aws
, waf
, managed
, rulegroup
, webacl
, regexpatternset
, or ipset
.
For example, myLabelName
or nameSpace1:nameSpace2:myLabelName
.
static CfnWebACL.RuleProperty.Builder builder()
CfnWebACL.RuleProperty.Builder
of CfnWebACL.RuleProperty