Class: AWSCDK::WAFv2::CfnWebACL::ClientSideActionProperty

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
wa_fv2/cfn_web_acl.rb

Overview

This is part of the AWSManagedRulesAntiDDoSRuleSet ClientSideActionConfig configuration in ManagedRuleGroupConfig .

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(usage_of_action:, exempt_uri_regular_expressions: nil, sensitivity: nil) ⇒ ClientSideActionProperty

Returns a new instance of ClientSideActionProperty.

Parameters:

  • usage_of_action (String)

    Determines whether to use the AWSManagedRulesAntiDDoSRuleSet rules ChallengeAllDuringEvent and ChallengeDDoSRequests in the rule group evaluation and the related label awswaf:managed:aws:anti-ddos:challengeable-request .

  • exempt_uri_regular_expressions (AWSCDK::IResolvable, Array<AWSCDK::IResolvable, AWSCDK::WAFv2::CfnWebACL::RegexProperty>, nil) (defaults to: nil)

    The regular expression to match against the web request URI, used to identify requests that can't handle a silent browser challenge.

  • sensitivity (String, nil) (defaults to: nil)

    The sensitivity that the rule group rule ChallengeDDoSRequests uses when matching against the DDoS suspicion labeling on a request.



1712
1713
1714
1715
1716
1717
1718
1719
# File 'wa_fv2/cfn_web_acl.rb', line 1712

def initialize(usage_of_action:, exempt_uri_regular_expressions: nil, sensitivity: nil)
  @usage_of_action = usage_of_action
  Jsii::Type.check_type(@usage_of_action, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "usageOfAction")
  @exempt_uri_regular_expressions = exempt_uri_regular_expressions
  Jsii::Type.check_type(@exempt_uri_regular_expressions, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImNvbGxlY3Rpb24iOnsiZWxlbWVudHR5cGUiOnsidW5pb24iOnsidHlwZXMiOlt7ImZxbiI6ImF3cy1jZGstbGliLklSZXNvbHZhYmxlIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5hd3Nfd2FmdjIuQ2ZuV2ViQUNMLlJlZ2V4UHJvcGVydHkifV19fSwia2luZCI6ImFycmF5In19XX19")), "exemptUriRegularExpressions") unless @exempt_uri_regular_expressions.nil?
  @sensitivity = sensitivity
  Jsii::Type.check_type(@sensitivity, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "sensitivity") unless @sensitivity.nil?
end

Instance Attribute Details

#exempt_uri_regular_expressionsAWSCDK::IResolvable, ... (readonly)

The regular expression to match against the web request URI, used to identify requests that can't handle a silent browser challenge.

When the ClientSideAction setting UsageOfAction is enabled, the managed rule group uses this setting to determine which requests to label with awswaf:managed:aws:anti-ddos:challengeable-request . If UsageOfAction is disabled, this setting has no effect and the managed rule group doesn't add the label to any requests.

The anti-DDoS managed rule group doesn't evaluate the rules ChallengeDDoSRequests or ChallengeAllDuringEvent for web requests whose URIs match this regex. This is true regardless of whether you override the rule action for either of the rules in your web ACL configuration.

AWS recommends using a regular expression.

This setting is required if UsageOfAction is set to ENABLED . If required, you can provide between 1 and 5 regex objects in the array of settings.

AWS recommends starting with the following setting. Review and update it for your application's needs:

\/api\/|\.(acc|avi|css|gif|jpe?g|js|mp[34]|ogg|otf|pdf|png|tiff?|ttf|webm|webp|woff2?)$



1754
1755
1756
# File 'wa_fv2/cfn_web_acl.rb', line 1754

def exempt_uri_regular_expressions
  @exempt_uri_regular_expressions
end

#sensitivityString? (readonly)

The sensitivity that the rule group rule ChallengeDDoSRequests uses when matching against the DDoS suspicion labeling on a request.

The managed rule group adds the labeling during DDoS events, before the ChallengeDDoSRequests rule runs.

The higher the sensitivity, the more levels of labeling that the rule matches:

  • Low sensitivity is less sensitive, causing the rule to match only on the most likely participants in an attack, which are the requests with the high suspicion label awswaf:managed:aws:anti-ddos:high-suspicion-ddos-request .
  • Medium sensitivity causes the rule to match on the medium and high suspicion labels.
  • High sensitivity causes the rule to match on all of the suspicion labels: low, medium, and high.

Default: HIGH



1769
1770
1771
# File 'wa_fv2/cfn_web_acl.rb', line 1769

def sensitivity
  @sensitivity
end

#usage_of_actionString (readonly)

Determines whether to use the AWSManagedRulesAntiDDoSRuleSet rules ChallengeAllDuringEvent and ChallengeDDoSRequests in the rule group evaluation and the related label awswaf:managed:aws:anti-ddos:challengeable-request .

  • If usage is enabled:
  • The managed rule group adds the label awswaf:managed:aws:anti-ddos:challengeable-request to any web request whose URL does NOT match the regular expressions provided in the ClientSideAction setting ExemptUriRegularExpressions .
  • The two rules are evaluated against web requests for protected resources that are experiencing a DDoS attack. The two rules only apply their action to matching requests that have the label awswaf:managed:aws:anti-ddos:challengeable-request .
  • If usage is disabled:
  • The managed rule group doesn't add the label awswaf:managed:aws:anti-ddos:challengeable-request to any web requests.
  • The two rules are not evaluated.
  • None of the other ClientSideAction settings have any effect.

This setting only enables or disables the use of the two anti-DDOS rules ChallengeAllDuringEvent and ChallengeDDoSRequests in the anti-DDoS managed rule group.

This setting doesn't alter the action setting in the two rules. To override the actions used by the rules ChallengeAllDuringEvent and ChallengeDDoSRequests , enable this setting, and then override the rule actions in the usual way, in your managed rule group configuration.



1737
1738
1739
# File 'wa_fv2/cfn_web_acl.rb', line 1737

def usage_of_action
  @usage_of_action
end

Class Method Details

.jsii_propertiesObject



1771
1772
1773
1774
1775
1776
1777
# File 'wa_fv2/cfn_web_acl.rb', line 1771

def self.jsii_properties
  {
    :usage_of_action => "usageOfAction",
    :exempt_uri_regular_expressions => "exemptUriRegularExpressions",
    :sensitivity => "sensitivity",
  }
end

Instance Method Details

#to_jsiiObject



1779
1780
1781
1782
1783
1784
1785
1786
1787
# File 'wa_fv2/cfn_web_acl.rb', line 1779

def to_jsii
  result = {}
  result.merge!({
    "usageOfAction" => @usage_of_action,
    "exemptUriRegularExpressions" => @exempt_uri_regular_expressions,
    "sensitivity" => @sensitivity,
  })
  result.compact
end