aws-cdk-lib 2.132.1__py3-none-any.whl → 2.134.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of aws-cdk-lib might be problematic. Click here for more details.
- aws_cdk/__init__.py +9 -1
- aws_cdk/_jsii/__init__.py +1 -1
- aws_cdk/_jsii/{aws-cdk-lib@2.132.1.jsii.tgz → aws-cdk-lib@2.134.0.jsii.tgz} +0 -0
- aws_cdk/aws_amplify/__init__.py +12 -10
- aws_cdk/aws_apigatewayv2/__init__.py +112 -6
- aws_cdk/aws_apigatewayv2_integrations/__init__.py +155 -3
- aws_cdk/aws_appconfig/__init__.py +186 -8
- aws_cdk/aws_appintegrations/__init__.py +551 -0
- aws_cdk/aws_applicationautoscaling/__init__.py +6 -6
- aws_cdk/aws_appsync/__init__.py +71 -0
- aws_cdk/aws_autoscaling/__init__.py +10 -14
- aws_cdk/aws_b2bi/__init__.py +2 -42
- aws_cdk/aws_backup/__init__.py +23 -12
- aws_cdk/aws_batch/__init__.py +2150 -1078
- aws_cdk/aws_bedrock/__init__.py +197 -2
- aws_cdk/aws_cloudformation/__init__.py +1 -1
- aws_cdk/aws_cloudfront/__init__.py +4 -4
- aws_cdk/aws_cloudtrail/__init__.py +44 -14
- aws_cdk/aws_cloudwatch/__init__.py +20 -4
- aws_cdk/aws_codeartifact/__init__.py +812 -2
- aws_cdk/aws_codebuild/__init__.py +32 -10
- aws_cdk/aws_codepipeline/__init__.py +33 -11
- aws_cdk/aws_cognito/__init__.py +49 -44
- aws_cdk/aws_connect/__init__.py +256 -0
- aws_cdk/aws_controltower/__init__.py +4 -4
- aws_cdk/aws_datasync/__init__.py +393 -13
- aws_cdk/aws_dlm/__init__.py +2 -2
- aws_cdk/aws_docdbelastic/__init__.py +117 -0
- aws_cdk/aws_dynamodb/__init__.py +416 -5
- aws_cdk/aws_ec2/__init__.py +590 -134
- aws_cdk/aws_ecs/__init__.py +29 -20
- aws_cdk/aws_ecs_patterns/__init__.py +52 -12
- aws_cdk/aws_eks/__init__.py +27 -25
- aws_cdk/aws_elasticloadbalancing/__init__.py +6 -9
- aws_cdk/aws_elasticloadbalancingv2/__init__.py +363 -62
- aws_cdk/aws_emr/__init__.py +7 -4
- aws_cdk/aws_entityresolution/__init__.py +91 -64
- aws_cdk/aws_fsx/__init__.py +7 -7
- aws_cdk/aws_glue/__init__.py +137 -3
- aws_cdk/aws_iam/__init__.py +9 -10
- aws_cdk/aws_internetmonitor/__init__.py +85 -0
- aws_cdk/aws_iotsitewise/__init__.py +208 -198
- aws_cdk/aws_iotwireless/__init__.py +6 -5
- aws_cdk/aws_kafkaconnect/__init__.py +1237 -162
- aws_cdk/aws_kendra/__init__.py +34 -24
- aws_cdk/aws_kinesisanalytics/__init__.py +37 -37
- aws_cdk/aws_kinesisanalyticsv2/__init__.py +37 -37
- aws_cdk/aws_kinesisfirehose/__init__.py +6 -2
- aws_cdk/aws_lambda/__init__.py +16 -16
- aws_cdk/aws_msk/__init__.py +88 -0
- aws_cdk/aws_opensearchservice/__init__.py +61 -18
- aws_cdk/aws_pinpoint/__init__.py +42 -0
- aws_cdk/aws_rds/__init__.py +1292 -216
- aws_cdk/aws_redshift/__init__.py +6 -3
- aws_cdk/aws_redshiftserverless/__init__.py +0 -157
- aws_cdk/aws_sagemaker/__init__.py +29 -9
- aws_cdk/aws_shield/__init__.py +7 -8
- aws_cdk/aws_ssm/__init__.py +15 -12
- aws_cdk/aws_stepfunctions_tasks/__init__.py +476 -0
- aws_cdk/aws_synthetics/__init__.py +74 -14
- aws_cdk/aws_transfer/__init__.py +4 -3
- aws_cdk/aws_wafv2/__init__.py +516 -42
- aws_cdk/cx_api/__init__.py +34 -0
- {aws_cdk_lib-2.132.1.dist-info → aws_cdk_lib-2.134.0.dist-info}/METADATA +2 -2
- {aws_cdk_lib-2.132.1.dist-info → aws_cdk_lib-2.134.0.dist-info}/RECORD +69 -69
- {aws_cdk_lib-2.132.1.dist-info → aws_cdk_lib-2.134.0.dist-info}/LICENSE +0 -0
- {aws_cdk_lib-2.132.1.dist-info → aws_cdk_lib-2.134.0.dist-info}/NOTICE +0 -0
- {aws_cdk_lib-2.132.1.dist-info → aws_cdk_lib-2.134.0.dist-info}/WHEEL +0 -0
- {aws_cdk_lib-2.132.1.dist-info → aws_cdk_lib-2.134.0.dist-info}/top_level.txt +0 -0
aws_cdk/aws_wafv2/__init__.py
CHANGED
|
@@ -517,7 +517,7 @@ class CfnLoggingConfiguration(
|
|
|
517
517
|
:param log_destination_configs: The logging destination configuration that you want to associate with the web ACL. .. epigraph:: You can associate one logging destination to a web ACL.
|
|
518
518
|
:param resource_arn: The Amazon Resource Name (ARN) of the web ACL that you want to associate with ``LogDestinationConfigs`` .
|
|
519
519
|
:param logging_filter: Filtering that specifies which web requests are kept in the logs and which are dropped. You can filter on the rule action and on the web request labels that were applied by matching rules during web ACL evaluation.
|
|
520
|
-
:param redacted_fields: The parts of the request that you want to keep out of the logs. For example, if you redact the ``SingleHeader`` field, the ``HEADER`` field in the logs will be ``REDACTED`` for all rules that use the ``SingleHeader`` ``FieldToMatch`` setting. Redaction applies only to the component that's specified in the rule's ``FieldToMatch`` setting, so the ``SingleHeader`` redaction doesn't apply to rules that use the ``Headers`` ``FieldToMatch`` . .. epigraph:: You can specify only the following fields for redaction: ``UriPath`` , ``QueryString`` , ``SingleHeader`` , and ``Method`` .
|
|
520
|
+
:param redacted_fields: The parts of the request that you want to keep out of the logs. For example, if you redact the ``SingleHeader`` field, the ``HEADER`` field in the logs will be ``REDACTED`` for all rules that use the ``SingleHeader`` ``FieldToMatch`` setting. Redaction applies only to the component that's specified in the rule's ``FieldToMatch`` setting, so the ``SingleHeader`` redaction doesn't apply to rules that use the ``Headers`` ``FieldToMatch`` . .. epigraph:: You can specify only the following fields for redaction: ``UriPath`` , ``QueryString`` , ``SingleHeader`` , and ``Method`` . > This setting has no impact on request sampling. With request sampling, the only way to exclude fields is by disabling sampling in the web ACL visibility configuration.
|
|
521
521
|
'''
|
|
522
522
|
if __debug__:
|
|
523
523
|
type_hints = typing.get_type_hints(_typecheckingstub__8a8c4ba5ee1b98a4ed1dd5001182ec8712406026687793bcb17c7a78771fa41c)
|
|
@@ -1412,7 +1412,7 @@ class CfnLoggingConfigurationProps:
|
|
|
1412
1412
|
:param log_destination_configs: The logging destination configuration that you want to associate with the web ACL. .. epigraph:: You can associate one logging destination to a web ACL.
|
|
1413
1413
|
:param resource_arn: The Amazon Resource Name (ARN) of the web ACL that you want to associate with ``LogDestinationConfigs`` .
|
|
1414
1414
|
:param logging_filter: Filtering that specifies which web requests are kept in the logs and which are dropped. You can filter on the rule action and on the web request labels that were applied by matching rules during web ACL evaluation.
|
|
1415
|
-
:param redacted_fields: The parts of the request that you want to keep out of the logs. For example, if you redact the ``SingleHeader`` field, the ``HEADER`` field in the logs will be ``REDACTED`` for all rules that use the ``SingleHeader`` ``FieldToMatch`` setting. Redaction applies only to the component that's specified in the rule's ``FieldToMatch`` setting, so the ``SingleHeader`` redaction doesn't apply to rules that use the ``Headers`` ``FieldToMatch`` . .. epigraph:: You can specify only the following fields for redaction: ``UriPath`` , ``QueryString`` , ``SingleHeader`` , and ``Method`` .
|
|
1415
|
+
:param redacted_fields: The parts of the request that you want to keep out of the logs. For example, if you redact the ``SingleHeader`` field, the ``HEADER`` field in the logs will be ``REDACTED`` for all rules that use the ``SingleHeader`` ``FieldToMatch`` setting. Redaction applies only to the component that's specified in the rule's ``FieldToMatch`` setting, so the ``SingleHeader`` redaction doesn't apply to rules that use the ``Headers`` ``FieldToMatch`` . .. epigraph:: You can specify only the following fields for redaction: ``UriPath`` , ``QueryString`` , ``SingleHeader`` , and ``Method`` . > This setting has no impact on request sampling. With request sampling, the only way to exclude fields is by disabling sampling in the web ACL visibility configuration.
|
|
1416
1416
|
|
|
1417
1417
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-loggingconfiguration.html
|
|
1418
1418
|
:exampleMetadata: fixture=_generated
|
|
@@ -1506,7 +1506,7 @@ class CfnLoggingConfigurationProps:
|
|
|
1506
1506
|
Redaction applies only to the component that's specified in the rule's ``FieldToMatch`` setting, so the ``SingleHeader`` redaction doesn't apply to rules that use the ``Headers`` ``FieldToMatch`` .
|
|
1507
1507
|
.. epigraph::
|
|
1508
1508
|
|
|
1509
|
-
You can specify only the following fields for redaction: ``UriPath`` , ``QueryString`` , ``SingleHeader`` , and ``Method`` .
|
|
1509
|
+
You can specify only the following fields for redaction: ``UriPath`` , ``QueryString`` , ``SingleHeader`` , and ``Method`` . > This setting has no impact on request sampling. With request sampling, the only way to exclude fields is by disabling sampling in the web ACL visibility configuration.
|
|
1510
1510
|
|
|
1511
1511
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-loggingconfiguration.html#cfn-wafv2-loggingconfiguration-redactedfields
|
|
1512
1512
|
'''
|
|
@@ -1962,6 +1962,9 @@ class CfnRuleGroup(
|
|
|
1962
1962
|
match_scope="matchScope",
|
|
1963
1963
|
oversize_handling="oversizeHandling"
|
|
1964
1964
|
),
|
|
1965
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
1966
|
+
fallback_behavior="fallbackBehavior"
|
|
1967
|
+
),
|
|
1965
1968
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
1966
1969
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
1967
1970
|
all=all,
|
|
@@ -2062,6 +2065,7 @@ class CfnRuleGroup(
|
|
|
2062
2065
|
)]
|
|
2063
2066
|
)
|
|
2064
2067
|
)],
|
|
2068
|
+
evaluation_window_sec=123,
|
|
2065
2069
|
forwarded_ip_config=wafv2.CfnRuleGroup.ForwardedIPConfigurationProperty(
|
|
2066
2070
|
fallback_behavior="fallbackBehavior",
|
|
2067
2071
|
header_name="headerName"
|
|
@@ -2092,6 +2096,9 @@ class CfnRuleGroup(
|
|
|
2092
2096
|
match_scope="matchScope",
|
|
2093
2097
|
oversize_handling="oversizeHandling"
|
|
2094
2098
|
),
|
|
2099
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
2100
|
+
fallback_behavior="fallbackBehavior"
|
|
2101
|
+
),
|
|
2095
2102
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
2096
2103
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
2097
2104
|
all=all,
|
|
@@ -2140,6 +2147,9 @@ class CfnRuleGroup(
|
|
|
2140
2147
|
match_scope="matchScope",
|
|
2141
2148
|
oversize_handling="oversizeHandling"
|
|
2142
2149
|
),
|
|
2150
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
2151
|
+
fallback_behavior="fallbackBehavior"
|
|
2152
|
+
),
|
|
2143
2153
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
2144
2154
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
2145
2155
|
all=all,
|
|
@@ -2187,6 +2197,9 @@ class CfnRuleGroup(
|
|
|
2187
2197
|
match_scope="matchScope",
|
|
2188
2198
|
oversize_handling="oversizeHandling"
|
|
2189
2199
|
),
|
|
2200
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
2201
|
+
fallback_behavior="fallbackBehavior"
|
|
2202
|
+
),
|
|
2190
2203
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
2191
2204
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
2192
2205
|
all=all,
|
|
@@ -2234,6 +2247,9 @@ class CfnRuleGroup(
|
|
|
2234
2247
|
match_scope="matchScope",
|
|
2235
2248
|
oversize_handling="oversizeHandling"
|
|
2236
2249
|
),
|
|
2250
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
2251
|
+
fallback_behavior="fallbackBehavior"
|
|
2252
|
+
),
|
|
2237
2253
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
2238
2254
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
2239
2255
|
all=all,
|
|
@@ -2283,6 +2299,9 @@ class CfnRuleGroup(
|
|
|
2283
2299
|
match_scope="matchScope",
|
|
2284
2300
|
oversize_handling="oversizeHandling"
|
|
2285
2301
|
),
|
|
2302
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
2303
|
+
fallback_behavior="fallbackBehavior"
|
|
2304
|
+
),
|
|
2286
2305
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
2287
2306
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
2288
2307
|
all=all,
|
|
@@ -2747,6 +2766,9 @@ class CfnRuleGroup(
|
|
|
2747
2766
|
match_scope="matchScope",
|
|
2748
2767
|
oversize_handling="oversizeHandling"
|
|
2749
2768
|
),
|
|
2769
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
2770
|
+
fallback_behavior="fallbackBehavior"
|
|
2771
|
+
),
|
|
2750
2772
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
2751
2773
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
2752
2774
|
all=all,
|
|
@@ -2847,6 +2869,7 @@ class CfnRuleGroup(
|
|
|
2847
2869
|
)]
|
|
2848
2870
|
)
|
|
2849
2871
|
)],
|
|
2872
|
+
evaluation_window_sec=123,
|
|
2850
2873
|
forwarded_ip_config=wafv2.CfnRuleGroup.ForwardedIPConfigurationProperty(
|
|
2851
2874
|
fallback_behavior="fallbackBehavior",
|
|
2852
2875
|
header_name="headerName"
|
|
@@ -2877,6 +2900,9 @@ class CfnRuleGroup(
|
|
|
2877
2900
|
match_scope="matchScope",
|
|
2878
2901
|
oversize_handling="oversizeHandling"
|
|
2879
2902
|
),
|
|
2903
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
2904
|
+
fallback_behavior="fallbackBehavior"
|
|
2905
|
+
),
|
|
2880
2906
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
2881
2907
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
2882
2908
|
all=all,
|
|
@@ -2925,6 +2951,9 @@ class CfnRuleGroup(
|
|
|
2925
2951
|
match_scope="matchScope",
|
|
2926
2952
|
oversize_handling="oversizeHandling"
|
|
2927
2953
|
),
|
|
2954
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
2955
|
+
fallback_behavior="fallbackBehavior"
|
|
2956
|
+
),
|
|
2928
2957
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
2929
2958
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
2930
2959
|
all=all,
|
|
@@ -2972,6 +3001,9 @@ class CfnRuleGroup(
|
|
|
2972
3001
|
match_scope="matchScope",
|
|
2973
3002
|
oversize_handling="oversizeHandling"
|
|
2974
3003
|
),
|
|
3004
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
3005
|
+
fallback_behavior="fallbackBehavior"
|
|
3006
|
+
),
|
|
2975
3007
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
2976
3008
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
2977
3009
|
all=all,
|
|
@@ -3019,6 +3051,9 @@ class CfnRuleGroup(
|
|
|
3019
3051
|
match_scope="matchScope",
|
|
3020
3052
|
oversize_handling="oversizeHandling"
|
|
3021
3053
|
),
|
|
3054
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
3055
|
+
fallback_behavior="fallbackBehavior"
|
|
3056
|
+
),
|
|
3022
3057
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
3023
3058
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
3024
3059
|
all=all,
|
|
@@ -3068,6 +3103,9 @@ class CfnRuleGroup(
|
|
|
3068
3103
|
match_scope="matchScope",
|
|
3069
3104
|
oversize_handling="oversizeHandling"
|
|
3070
3105
|
),
|
|
3106
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
3107
|
+
fallback_behavior="fallbackBehavior"
|
|
3108
|
+
),
|
|
3071
3109
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
3072
3110
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
3073
3111
|
all=all,
|
|
@@ -3206,7 +3244,7 @@ class CfnRuleGroup(
|
|
|
3206
3244
|
|
|
3207
3245
|
This is used to indicate the web request component to inspect, in the ``FieldToMatch`` specification.
|
|
3208
3246
|
|
|
3209
|
-
:param oversize_handling: What AWS WAF should do if the body is larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of the web request body if the body exceeds the limit for the resource type.
|
|
3247
|
+
:param oversize_handling: What AWS WAF should do if the body is larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of the web request body if the body exceeds the limit for the resource type. When a web request body is larger than the limit, the underlying host service only forwards the contents that are within the limit to AWS WAF for inspection. - For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). - For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the web ACL ``AssociationConfig`` , for additional processing fees. The options for oversize handling are the following: - ``CONTINUE`` - Inspect the available body contents normally, according to the rule inspection criteria. - ``MATCH`` - Treat the web request as matching the rule statement. AWS WAF applies the rule action to the request. - ``NO_MATCH`` - Treat the web request as not matching the rule statement. You can combine the ``MATCH`` or ``NO_MATCH`` settings for oversize handling with your rule and web ACL action settings, so that you block any request whose body is over the limit. Default: ``CONTINUE``
|
|
3210
3248
|
|
|
3211
3249
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-body.html
|
|
3212
3250
|
:exampleMetadata: fixture=_generated
|
|
@@ -3232,9 +3270,10 @@ class CfnRuleGroup(
|
|
|
3232
3270
|
def oversize_handling(self) -> typing.Optional[builtins.str]:
|
|
3233
3271
|
'''What AWS WAF should do if the body is larger than AWS WAF can inspect.
|
|
3234
3272
|
|
|
3235
|
-
AWS WAF does not support inspecting the entire contents of the web request body if the body exceeds the limit for the resource type.
|
|
3273
|
+
AWS WAF does not support inspecting the entire contents of the web request body if the body exceeds the limit for the resource type. When a web request body is larger than the limit, the underlying host service only forwards the contents that are within the limit to AWS WAF for inspection.
|
|
3236
3274
|
|
|
3237
|
-
|
|
3275
|
+
- For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes).
|
|
3276
|
+
- For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the web ACL ``AssociationConfig`` , for additional processing fees.
|
|
3238
3277
|
|
|
3239
3278
|
The options for oversize handling are the following:
|
|
3240
3279
|
|
|
@@ -3334,6 +3373,9 @@ class CfnRuleGroup(
|
|
|
3334
3373
|
match_scope="matchScope",
|
|
3335
3374
|
oversize_handling="oversizeHandling"
|
|
3336
3375
|
),
|
|
3376
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
3377
|
+
fallback_behavior="fallbackBehavior"
|
|
3378
|
+
),
|
|
3337
3379
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
3338
3380
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
3339
3381
|
all=all,
|
|
@@ -4335,6 +4377,7 @@ class CfnRuleGroup(
|
|
|
4335
4377
|
"body": "body",
|
|
4336
4378
|
"cookies": "cookies",
|
|
4337
4379
|
"headers": "headers",
|
|
4380
|
+
"ja3_fingerprint": "ja3Fingerprint",
|
|
4338
4381
|
"json_body": "jsonBody",
|
|
4339
4382
|
"method": "method",
|
|
4340
4383
|
"query_string": "queryString",
|
|
@@ -4351,6 +4394,7 @@ class CfnRuleGroup(
|
|
|
4351
4394
|
body: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnRuleGroup.BodyProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
4352
4395
|
cookies: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnRuleGroup.CookiesProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
4353
4396
|
headers: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnRuleGroup.HeadersProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
4397
|
+
ja3_fingerprint: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnRuleGroup.JA3FingerprintProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
4354
4398
|
json_body: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnRuleGroup.JsonBodyProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
4355
4399
|
method: typing.Any = None,
|
|
4356
4400
|
query_string: typing.Any = None,
|
|
@@ -4373,12 +4417,14 @@ class CfnRuleGroup(
|
|
|
4373
4417
|
- In a logging configuration, this is used in the ``RedactedFields`` property to specify a field to redact from the logging records. For this use case, note the following:
|
|
4374
4418
|
- Even though all ``FieldToMatch`` settings are available, the only valid settings for field redaction are ``UriPath`` , ``QueryString`` , ``SingleHeader`` , and ``Method`` .
|
|
4375
4419
|
- In this documentation, the descriptions of the individual fields talk about specifying the web request component to inspect, but for field redaction, you are specifying the component type to redact from the logs.
|
|
4420
|
+
- If you have request sampling enabled, the redacted fields configuration for logging has no impact on sampling. The only way to exclude fields from request sampling is by disabling sampling in the web ACL visibility configuration.
|
|
4376
4421
|
|
|
4377
4422
|
:param all_query_arguments: Inspect all query arguments.
|
|
4378
|
-
:param body: Inspect the request body as plain text. The request body immediately follows the request headers. This is the part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form.
|
|
4423
|
+
:param body: Inspect the request body as plain text. The request body immediately follows the request headers. This is the part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form. AWS WAF does not support inspecting the entire contents of the web request body if the body exceeds the limit for the resource type. When a web request body is larger than the limit, the underlying host service only forwards the contents that are within the limit to AWS WAF for inspection. - For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). - For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the web ACL ``AssociationConfig`` , for additional processing fees. For information about how to handle oversized request bodies, see the ``Body`` object configuration.
|
|
4379
4424
|
:param cookies: Inspect the request cookies. You must configure scope and pattern matching filters in the ``Cookies`` object, to define the set of cookies and the parts of the cookies that AWS WAF inspects. Only the first 8 KB (8192 bytes) of a request's cookies and only the first 200 cookies are forwarded to AWS WAF for inspection by the underlying host service. You must configure how to handle any oversize cookie content in the ``Cookies`` object. AWS WAF applies the pattern matching filters to the cookies that it receives from the underlying host service.
|
|
4380
4425
|
:param headers: Inspect the request headers. You must configure scope and pattern matching filters in the ``Headers`` object, to define the set of headers to and the parts of the headers that AWS WAF inspects. Only the first 8 KB (8192 bytes) of a request's headers and only the first 200 headers are forwarded to AWS WAF for inspection by the underlying host service. You must configure how to handle any oversize header content in the ``Headers`` object. AWS WAF applies the pattern matching filters to the headers that it receives from the underlying host service.
|
|
4381
|
-
:param
|
|
4426
|
+
:param ja3_fingerprint: Match against the request's JA3 fingerprint. The JA3 fingerprint is a 32-character hash derived from the TLS Client Hello of an incoming request. This fingerprint serves as a unique identifier for the client's TLS configuration. AWS WAF calculates and logs this fingerprint for each request that has enough TLS Client Hello information for the calculation. Almost all web requests include this information. .. epigraph:: You can use this choice only with a string match ``ByteMatchStatement`` with the ``PositionalConstraint`` set to ``EXACTLY`` . You can obtain the JA3 fingerprint for client requests from the web ACL logs. If AWS WAF is able to calculate the fingerprint, it includes it in the logs. For information about the logging fields, see `Log fields <https://docs.aws.amazon.com/waf/latest/developerguide/logging-fields.html>`_ in the *AWS WAF Developer Guide* . Provide the JA3 fingerprint string from the logs in your string match statement specification, to match with any future requests that have the same TLS configuration.
|
|
4427
|
+
:param json_body: Inspect the request body as JSON. The request body immediately follows the request headers. This is the part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form. AWS WAF does not support inspecting the entire contents of the web request body if the body exceeds the limit for the resource type. When a web request body is larger than the limit, the underlying host service only forwards the contents that are within the limit to AWS WAF for inspection. - For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). - For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the web ACL ``AssociationConfig`` , for additional processing fees. For information about how to handle oversized request bodies, see the ``JsonBody`` object configuration.
|
|
4382
4428
|
:param method: Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
|
|
4383
4429
|
:param query_string: Inspect the query string. This is the part of a URL that appears after a ``?`` character, if any.
|
|
4384
4430
|
:param single_header: Inspect a single header. Provide the name of the header to inspect, for example, ``User-Agent`` or ``Referer`` . This setting isn't case sensitive. Example JSON: ``"SingleHeader": { "Name": "haystack" }`` Alternately, you can filter and inspect all headers with the ``Headers`` ``FieldToMatch`` setting.
|
|
@@ -4425,6 +4471,9 @@ class CfnRuleGroup(
|
|
|
4425
4471
|
match_scope="matchScope",
|
|
4426
4472
|
oversize_handling="oversizeHandling"
|
|
4427
4473
|
),
|
|
4474
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
4475
|
+
fallback_behavior="fallbackBehavior"
|
|
4476
|
+
),
|
|
4428
4477
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
4429
4478
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
4430
4479
|
all=all,
|
|
@@ -4449,6 +4498,7 @@ class CfnRuleGroup(
|
|
|
4449
4498
|
check_type(argname="argument body", value=body, expected_type=type_hints["body"])
|
|
4450
4499
|
check_type(argname="argument cookies", value=cookies, expected_type=type_hints["cookies"])
|
|
4451
4500
|
check_type(argname="argument headers", value=headers, expected_type=type_hints["headers"])
|
|
4501
|
+
check_type(argname="argument ja3_fingerprint", value=ja3_fingerprint, expected_type=type_hints["ja3_fingerprint"])
|
|
4452
4502
|
check_type(argname="argument json_body", value=json_body, expected_type=type_hints["json_body"])
|
|
4453
4503
|
check_type(argname="argument method", value=method, expected_type=type_hints["method"])
|
|
4454
4504
|
check_type(argname="argument query_string", value=query_string, expected_type=type_hints["query_string"])
|
|
@@ -4464,6 +4514,8 @@ class CfnRuleGroup(
|
|
|
4464
4514
|
self._values["cookies"] = cookies
|
|
4465
4515
|
if headers is not None:
|
|
4466
4516
|
self._values["headers"] = headers
|
|
4517
|
+
if ja3_fingerprint is not None:
|
|
4518
|
+
self._values["ja3_fingerprint"] = ja3_fingerprint
|
|
4467
4519
|
if json_body is not None:
|
|
4468
4520
|
self._values["json_body"] = json_body
|
|
4469
4521
|
if method is not None:
|
|
@@ -4494,7 +4546,10 @@ class CfnRuleGroup(
|
|
|
4494
4546
|
|
|
4495
4547
|
The request body immediately follows the request headers. This is the part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form.
|
|
4496
4548
|
|
|
4497
|
-
|
|
4549
|
+
AWS WAF does not support inspecting the entire contents of the web request body if the body exceeds the limit for the resource type. When a web request body is larger than the limit, the underlying host service only forwards the contents that are within the limit to AWS WAF for inspection.
|
|
4550
|
+
|
|
4551
|
+
- For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes).
|
|
4552
|
+
- For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the web ACL ``AssociationConfig`` , for additional processing fees.
|
|
4498
4553
|
|
|
4499
4554
|
For information about how to handle oversized request bodies, see the ``Body`` object configuration.
|
|
4500
4555
|
|
|
@@ -4533,6 +4588,26 @@ class CfnRuleGroup(
|
|
|
4533
4588
|
result = self._values.get("headers")
|
|
4534
4589
|
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnRuleGroup.HeadersProperty"]], result)
|
|
4535
4590
|
|
|
4591
|
+
@builtins.property
|
|
4592
|
+
def ja3_fingerprint(
|
|
4593
|
+
self,
|
|
4594
|
+
) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnRuleGroup.JA3FingerprintProperty"]]:
|
|
4595
|
+
'''Match against the request's JA3 fingerprint.
|
|
4596
|
+
|
|
4597
|
+
The JA3 fingerprint is a 32-character hash derived from the TLS Client Hello of an incoming request. This fingerprint serves as a unique identifier for the client's TLS configuration. AWS WAF calculates and logs this fingerprint for each request that has enough TLS Client Hello information for the calculation. Almost all web requests include this information.
|
|
4598
|
+
.. epigraph::
|
|
4599
|
+
|
|
4600
|
+
You can use this choice only with a string match ``ByteMatchStatement`` with the ``PositionalConstraint`` set to ``EXACTLY`` .
|
|
4601
|
+
|
|
4602
|
+
You can obtain the JA3 fingerprint for client requests from the web ACL logs. If AWS WAF is able to calculate the fingerprint, it includes it in the logs. For information about the logging fields, see `Log fields <https://docs.aws.amazon.com/waf/latest/developerguide/logging-fields.html>`_ in the *AWS WAF Developer Guide* .
|
|
4603
|
+
|
|
4604
|
+
Provide the JA3 fingerprint string from the logs in your string match statement specification, to match with any future requests that have the same TLS configuration.
|
|
4605
|
+
|
|
4606
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-fieldtomatch.html#cfn-wafv2-rulegroup-fieldtomatch-ja3fingerprint
|
|
4607
|
+
'''
|
|
4608
|
+
result = self._values.get("ja3_fingerprint")
|
|
4609
|
+
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnRuleGroup.JA3FingerprintProperty"]], result)
|
|
4610
|
+
|
|
4536
4611
|
@builtins.property
|
|
4537
4612
|
def json_body(
|
|
4538
4613
|
self,
|
|
@@ -4541,7 +4616,10 @@ class CfnRuleGroup(
|
|
|
4541
4616
|
|
|
4542
4617
|
The request body immediately follows the request headers. This is the part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form.
|
|
4543
4618
|
|
|
4544
|
-
|
|
4619
|
+
AWS WAF does not support inspecting the entire contents of the web request body if the body exceeds the limit for the resource type. When a web request body is larger than the limit, the underlying host service only forwards the contents that are within the limit to AWS WAF for inspection.
|
|
4620
|
+
|
|
4621
|
+
- For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes).
|
|
4622
|
+
- For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the web ACL ``AssociationConfig`` , for additional processing fees.
|
|
4545
4623
|
|
|
4546
4624
|
For information about how to handle oversized request bodies, see the ``JsonBody`` object configuration.
|
|
4547
4625
|
|
|
@@ -5302,6 +5380,72 @@ class CfnRuleGroup(
|
|
|
5302
5380
|
k + "=" + repr(v) for k, v in self._values.items()
|
|
5303
5381
|
)
|
|
5304
5382
|
|
|
5383
|
+
@jsii.data_type(
|
|
5384
|
+
jsii_type="aws-cdk-lib.aws_wafv2.CfnRuleGroup.JA3FingerprintProperty",
|
|
5385
|
+
jsii_struct_bases=[],
|
|
5386
|
+
name_mapping={"fallback_behavior": "fallbackBehavior"},
|
|
5387
|
+
)
|
|
5388
|
+
class JA3FingerprintProperty:
|
|
5389
|
+
def __init__(self, *, fallback_behavior: builtins.str) -> None:
|
|
5390
|
+
'''Match against the request's JA3 fingerprint.
|
|
5391
|
+
|
|
5392
|
+
The JA3 fingerprint is a 32-character hash derived from the TLS Client Hello of an incoming request. This fingerprint serves as a unique identifier for the client's TLS configuration. AWS WAF calculates and logs this fingerprint for each request that has enough TLS Client Hello information for the calculation. Almost all web requests include this information.
|
|
5393
|
+
.. epigraph::
|
|
5394
|
+
|
|
5395
|
+
You can use this choice only with a string match ``ByteMatchStatement`` with the ``PositionalConstraint`` set to ``EXACTLY`` .
|
|
5396
|
+
|
|
5397
|
+
You can obtain the JA3 fingerprint for client requests from the web ACL logs. If AWS WAF is able to calculate the fingerprint, it includes it in the logs. For information about the logging fields, see `Log fields <https://docs.aws.amazon.com/waf/latest/developerguide/logging-fields.html>`_ in the *AWS WAF Developer Guide* .
|
|
5398
|
+
|
|
5399
|
+
Provide the JA3 fingerprint string from the logs in your string match statement specification, to match with any future requests that have the same TLS configuration.
|
|
5400
|
+
|
|
5401
|
+
:param fallback_behavior: The match status to assign to the web request if the request doesn't have a JA3 fingerprint. You can specify the following fallback behaviors: - ``MATCH`` - Treat the web request as matching the rule statement. AWS WAF applies the rule action to the request. - ``NO_MATCH`` - Treat the web request as not matching the rule statement.
|
|
5402
|
+
|
|
5403
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-ja3fingerprint.html
|
|
5404
|
+
:exampleMetadata: fixture=_generated
|
|
5405
|
+
|
|
5406
|
+
Example::
|
|
5407
|
+
|
|
5408
|
+
# The code below shows an example of how to instantiate this type.
|
|
5409
|
+
# The values are placeholders you should change.
|
|
5410
|
+
from aws_cdk import aws_wafv2 as wafv2
|
|
5411
|
+
|
|
5412
|
+
j_a3_fingerprint_property = wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
5413
|
+
fallback_behavior="fallbackBehavior"
|
|
5414
|
+
)
|
|
5415
|
+
'''
|
|
5416
|
+
if __debug__:
|
|
5417
|
+
type_hints = typing.get_type_hints(_typecheckingstub__1cba50229767598d7603bfa317a8bd11cfc2b12ca28d38737119d57d5d04667d)
|
|
5418
|
+
check_type(argname="argument fallback_behavior", value=fallback_behavior, expected_type=type_hints["fallback_behavior"])
|
|
5419
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
5420
|
+
"fallback_behavior": fallback_behavior,
|
|
5421
|
+
}
|
|
5422
|
+
|
|
5423
|
+
@builtins.property
|
|
5424
|
+
def fallback_behavior(self) -> builtins.str:
|
|
5425
|
+
'''The match status to assign to the web request if the request doesn't have a JA3 fingerprint.
|
|
5426
|
+
|
|
5427
|
+
You can specify the following fallback behaviors:
|
|
5428
|
+
|
|
5429
|
+
- ``MATCH`` - Treat the web request as matching the rule statement. AWS WAF applies the rule action to the request.
|
|
5430
|
+
- ``NO_MATCH`` - Treat the web request as not matching the rule statement.
|
|
5431
|
+
|
|
5432
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-ja3fingerprint.html#cfn-wafv2-rulegroup-ja3fingerprint-fallbackbehavior
|
|
5433
|
+
'''
|
|
5434
|
+
result = self._values.get("fallback_behavior")
|
|
5435
|
+
assert result is not None, "Required property 'fallback_behavior' is missing"
|
|
5436
|
+
return typing.cast(builtins.str, result)
|
|
5437
|
+
|
|
5438
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
5439
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
5440
|
+
|
|
5441
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
5442
|
+
return not (rhs == self)
|
|
5443
|
+
|
|
5444
|
+
def __repr__(self) -> str:
|
|
5445
|
+
return "JA3FingerprintProperty(%s)" % ", ".join(
|
|
5446
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
5447
|
+
)
|
|
5448
|
+
|
|
5305
5449
|
@jsii.data_type(
|
|
5306
5450
|
jsii_type="aws-cdk-lib.aws_wafv2.CfnRuleGroup.JsonBodyProperty",
|
|
5307
5451
|
jsii_struct_bases=[],
|
|
@@ -5332,7 +5476,7 @@ class CfnRuleGroup(
|
|
|
5332
5476
|
:param match_pattern: The patterns to look for in the JSON body. AWS WAF inspects the results of these pattern matches against the rule inspection criteria.
|
|
5333
5477
|
:param match_scope: The parts of the JSON to match against using the ``MatchPattern`` . If you specify ``ALL`` , AWS WAF matches against keys and values. ``All`` does not require a match to be found in the keys and a match to be found in the values. It requires a match to be found in the keys or the values or both. To require a match in the keys and in the values, use a logical ``AND`` statement to combine two match rules, one that inspects the keys and another that inspects the values.
|
|
5334
5478
|
:param invalid_fallback_behavior: What AWS WAF should do if it fails to completely parse the JSON body. The options are the following:. - ``EVALUATE_AS_STRING`` - Inspect the body as plain text. AWS WAF applies the text transformations and inspection criteria that you defined for the JSON inspection to the body text string. - ``MATCH`` - Treat the web request as matching the rule statement. AWS WAF applies the rule action to the request. - ``NO_MATCH`` - Treat the web request as not matching the rule statement. If you don't provide this setting, AWS WAF parses and evaluates the content only up to the first parsing failure that it encounters. AWS WAF does its best to parse the entire JSON body, but might be forced to stop for reasons such as invalid characters, duplicate keys, truncation, and any content whose root node isn't an object or an array. AWS WAF parses the JSON in the following examples as two valid key, value pairs: - Missing comma: ``{"key1":"value1""key2":"value2"}`` - Missing colon: ``{"key1":"value1","key2""value2"}`` - Extra colons: ``{"key1"::"value1","key2""value2"}``
|
|
5335
|
-
:param oversize_handling: What AWS WAF should do if the body is larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of the web request body if the body exceeds the limit for the resource type.
|
|
5479
|
+
:param oversize_handling: What AWS WAF should do if the body is larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of the web request body if the body exceeds the limit for the resource type. When a web request body is larger than the limit, the underlying host service only forwards the contents that are within the limit to AWS WAF for inspection. - For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). - For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the web ACL ``AssociationConfig`` , for additional processing fees. The options for oversize handling are the following: - ``CONTINUE`` - Inspect the available body contents normally, according to the rule inspection criteria. - ``MATCH`` - Treat the web request as matching the rule statement. AWS WAF applies the rule action to the request. - ``NO_MATCH`` - Treat the web request as not matching the rule statement. You can combine the ``MATCH`` or ``NO_MATCH`` settings for oversize handling with your rule and web ACL action settings, so that you block any request whose body is over the limit. Default: ``CONTINUE``
|
|
5336
5480
|
|
|
5337
5481
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-jsonbody.html
|
|
5338
5482
|
:exampleMetadata: fixture=_generated
|
|
@@ -5427,9 +5571,10 @@ class CfnRuleGroup(
|
|
|
5427
5571
|
def oversize_handling(self) -> typing.Optional[builtins.str]:
|
|
5428
5572
|
'''What AWS WAF should do if the body is larger than AWS WAF can inspect.
|
|
5429
5573
|
|
|
5430
|
-
AWS WAF does not support inspecting the entire contents of the web request body if the body exceeds the limit for the resource type.
|
|
5574
|
+
AWS WAF does not support inspecting the entire contents of the web request body if the body exceeds the limit for the resource type. When a web request body is larger than the limit, the underlying host service only forwards the contents that are within the limit to AWS WAF for inspection.
|
|
5431
5575
|
|
|
5432
|
-
|
|
5576
|
+
- For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes).
|
|
5577
|
+
- For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the web ACL ``AssociationConfig`` , for additional processing fees.
|
|
5433
5578
|
|
|
5434
5579
|
The options for oversize handling are the following:
|
|
5435
5580
|
|
|
@@ -5791,6 +5936,9 @@ class CfnRuleGroup(
|
|
|
5791
5936
|
match_scope="matchScope",
|
|
5792
5937
|
oversize_handling="oversizeHandling"
|
|
5793
5938
|
),
|
|
5939
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
5940
|
+
fallback_behavior="fallbackBehavior"
|
|
5941
|
+
),
|
|
5794
5942
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
5795
5943
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
5796
5944
|
all=all,
|
|
@@ -5889,6 +6037,7 @@ class CfnRuleGroup(
|
|
|
5889
6037
|
)]
|
|
5890
6038
|
)
|
|
5891
6039
|
)],
|
|
6040
|
+
evaluation_window_sec=123,
|
|
5892
6041
|
forwarded_ip_config=wafv2.CfnRuleGroup.ForwardedIPConfigurationProperty(
|
|
5893
6042
|
fallback_behavior="fallbackBehavior",
|
|
5894
6043
|
header_name="headerName"
|
|
@@ -5919,6 +6068,9 @@ class CfnRuleGroup(
|
|
|
5919
6068
|
match_scope="matchScope",
|
|
5920
6069
|
oversize_handling="oversizeHandling"
|
|
5921
6070
|
),
|
|
6071
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
6072
|
+
fallback_behavior="fallbackBehavior"
|
|
6073
|
+
),
|
|
5922
6074
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
5923
6075
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
5924
6076
|
all=all,
|
|
@@ -5967,6 +6119,9 @@ class CfnRuleGroup(
|
|
|
5967
6119
|
match_scope="matchScope",
|
|
5968
6120
|
oversize_handling="oversizeHandling"
|
|
5969
6121
|
),
|
|
6122
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
6123
|
+
fallback_behavior="fallbackBehavior"
|
|
6124
|
+
),
|
|
5970
6125
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
5971
6126
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
5972
6127
|
all=all,
|
|
@@ -6014,6 +6169,9 @@ class CfnRuleGroup(
|
|
|
6014
6169
|
match_scope="matchScope",
|
|
6015
6170
|
oversize_handling="oversizeHandling"
|
|
6016
6171
|
),
|
|
6172
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
6173
|
+
fallback_behavior="fallbackBehavior"
|
|
6174
|
+
),
|
|
6017
6175
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
6018
6176
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
6019
6177
|
all=all,
|
|
@@ -6061,6 +6219,9 @@ class CfnRuleGroup(
|
|
|
6061
6219
|
match_scope="matchScope",
|
|
6062
6220
|
oversize_handling="oversizeHandling"
|
|
6063
6221
|
),
|
|
6222
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
6223
|
+
fallback_behavior="fallbackBehavior"
|
|
6224
|
+
),
|
|
6064
6225
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
6065
6226
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
6066
6227
|
all=all,
|
|
@@ -6110,6 +6271,9 @@ class CfnRuleGroup(
|
|
|
6110
6271
|
match_scope="matchScope",
|
|
6111
6272
|
oversize_handling="oversizeHandling"
|
|
6112
6273
|
),
|
|
6274
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
6275
|
+
fallback_behavior="fallbackBehavior"
|
|
6276
|
+
),
|
|
6113
6277
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
6114
6278
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
6115
6279
|
all=all,
|
|
@@ -6235,6 +6399,9 @@ class CfnRuleGroup(
|
|
|
6235
6399
|
match_scope="matchScope",
|
|
6236
6400
|
oversize_handling="oversizeHandling"
|
|
6237
6401
|
),
|
|
6402
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
6403
|
+
fallback_behavior="fallbackBehavior"
|
|
6404
|
+
),
|
|
6238
6405
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
6239
6406
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
6240
6407
|
all=all,
|
|
@@ -6333,6 +6500,7 @@ class CfnRuleGroup(
|
|
|
6333
6500
|
)]
|
|
6334
6501
|
)
|
|
6335
6502
|
)],
|
|
6503
|
+
evaluation_window_sec=123,
|
|
6336
6504
|
forwarded_ip_config=wafv2.CfnRuleGroup.ForwardedIPConfigurationProperty(
|
|
6337
6505
|
fallback_behavior="fallbackBehavior",
|
|
6338
6506
|
header_name="headerName"
|
|
@@ -6363,6 +6531,9 @@ class CfnRuleGroup(
|
|
|
6363
6531
|
match_scope="matchScope",
|
|
6364
6532
|
oversize_handling="oversizeHandling"
|
|
6365
6533
|
),
|
|
6534
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
6535
|
+
fallback_behavior="fallbackBehavior"
|
|
6536
|
+
),
|
|
6366
6537
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
6367
6538
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
6368
6539
|
all=all,
|
|
@@ -6411,6 +6582,9 @@ class CfnRuleGroup(
|
|
|
6411
6582
|
match_scope="matchScope",
|
|
6412
6583
|
oversize_handling="oversizeHandling"
|
|
6413
6584
|
),
|
|
6585
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
6586
|
+
fallback_behavior="fallbackBehavior"
|
|
6587
|
+
),
|
|
6414
6588
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
6415
6589
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
6416
6590
|
all=all,
|
|
@@ -6458,6 +6632,9 @@ class CfnRuleGroup(
|
|
|
6458
6632
|
match_scope="matchScope",
|
|
6459
6633
|
oversize_handling="oversizeHandling"
|
|
6460
6634
|
),
|
|
6635
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
6636
|
+
fallback_behavior="fallbackBehavior"
|
|
6637
|
+
),
|
|
6461
6638
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
6462
6639
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
6463
6640
|
all=all,
|
|
@@ -6505,6 +6682,9 @@ class CfnRuleGroup(
|
|
|
6505
6682
|
match_scope="matchScope",
|
|
6506
6683
|
oversize_handling="oversizeHandling"
|
|
6507
6684
|
),
|
|
6685
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
6686
|
+
fallback_behavior="fallbackBehavior"
|
|
6687
|
+
),
|
|
6508
6688
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
6509
6689
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
6510
6690
|
all=all,
|
|
@@ -6554,6 +6734,9 @@ class CfnRuleGroup(
|
|
|
6554
6734
|
match_scope="matchScope",
|
|
6555
6735
|
oversize_handling="oversizeHandling"
|
|
6556
6736
|
),
|
|
6737
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
6738
|
+
fallback_behavior="fallbackBehavior"
|
|
6739
|
+
),
|
|
6557
6740
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
6558
6741
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
6559
6742
|
all=all,
|
|
@@ -6879,6 +7062,7 @@ class CfnRuleGroup(
|
|
|
6879
7062
|
"aggregate_key_type": "aggregateKeyType",
|
|
6880
7063
|
"limit": "limit",
|
|
6881
7064
|
"custom_keys": "customKeys",
|
|
7065
|
+
"evaluation_window_sec": "evaluationWindowSec",
|
|
6882
7066
|
"forwarded_ip_config": "forwardedIpConfig",
|
|
6883
7067
|
"scope_down_statement": "scopeDownStatement",
|
|
6884
7068
|
},
|
|
@@ -6890,6 +7074,7 @@ class CfnRuleGroup(
|
|
|
6890
7074
|
aggregate_key_type: builtins.str,
|
|
6891
7075
|
limit: jsii.Number,
|
|
6892
7076
|
custom_keys: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnRuleGroup.RateBasedStatementCustomKeyProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
|
|
7077
|
+
evaluation_window_sec: typing.Optional[jsii.Number] = None,
|
|
6893
7078
|
forwarded_ip_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnRuleGroup.ForwardedIPConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
6894
7079
|
scope_down_statement: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnRuleGroup.StatementProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
6895
7080
|
) -> None:
|
|
@@ -6939,6 +7124,7 @@ class CfnRuleGroup(
|
|
|
6939
7124
|
:param aggregate_key_type: Setting that indicates how to aggregate the request counts. .. epigraph:: Web requests that are missing any of the components specified in the aggregation keys are omitted from the rate-based rule evaluation and handling. - ``CONSTANT`` - Count and limit the requests that match the rate-based rule's scope-down statement. With this option, the counted requests aren't further aggregated. The scope-down statement is the only specification used. When the count of all requests that satisfy the scope-down statement goes over the limit, AWS WAF applies the rule action to all requests that satisfy the scope-down statement. With this option, you must configure the ``ScopeDownStatement`` property. - ``CUSTOM_KEYS`` - Aggregate the request counts using one or more web request components as the aggregate keys. With this option, you must specify the aggregate keys in the ``CustomKeys`` property. To aggregate on only the IP address or only the forwarded IP address, don't use custom keys. Instead, set the aggregate key type to ``IP`` or ``FORWARDED_IP`` . - ``FORWARDED_IP`` - Aggregate the request counts on the first IP address in an HTTP header. With this option, you must specify the header to use in the ``ForwardedIPConfig`` property. To aggregate on a combination of the forwarded IP address with other aggregate keys, use ``CUSTOM_KEYS`` . - ``IP`` - Aggregate the request counts on the IP address from the web request origin. To aggregate on a combination of the IP address with other aggregate keys, use ``CUSTOM_KEYS`` .
|
|
6940
7125
|
:param limit: The limit on requests per 5-minute period for a single aggregation instance for the rate-based rule. If the rate-based statement includes a ``ScopeDownStatement`` , this limit is applied only to the requests that match the statement. Examples: - If you aggregate on just the IP address, this is the limit on requests from any single IP address. - If you aggregate on the HTTP method and the query argument name "city", then this is the limit on requests for any single method, city pair.
|
|
6941
7126
|
:param custom_keys: Specifies the aggregate keys to use in a rate-base rule.
|
|
7127
|
+
:param evaluation_window_sec: The amount of time, in seconds, that AWS WAF should include in its request counts, looking back from the current time. For example, for a setting of 120, when AWS WAF checks the rate, it counts the requests for the 2 minutes immediately preceding the current time. Valid settings are 60, 120, 300, and 600. This setting doesn't determine how often AWS WAF checks the rate, but how far back it looks each time it checks. AWS WAF checks the rate about every 10 seconds. Default: ``300`` (5 minutes)
|
|
6942
7128
|
:param forwarded_ip_config: The configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin. Commonly, this is the X-Forwarded-For (XFF) header, but you can specify any header name. .. epigraph:: If the specified header isn't present in the request, AWS WAF doesn't apply the rule to the web request at all. This is required if you specify a forwarded IP in the rule's aggregate key settings.
|
|
6943
7129
|
:param scope_down_statement: An optional nested statement that narrows the scope of the web requests that are evaluated and managed by the rate-based statement. When you use a scope-down statement, the rate-based rule only tracks and rate limits requests that match the scope-down statement. You can use any nestable ``Statement`` in the scope-down statement, and you can nest statements at any level, the same as you can for a rule statement.
|
|
6944
7130
|
|
|
@@ -7010,6 +7196,7 @@ class CfnRuleGroup(
|
|
|
7010
7196
|
)]
|
|
7011
7197
|
)
|
|
7012
7198
|
)],
|
|
7199
|
+
evaluation_window_sec=123,
|
|
7013
7200
|
forwarded_ip_config=wafv2.CfnRuleGroup.ForwardedIPConfigurationProperty(
|
|
7014
7201
|
fallback_behavior="fallbackBehavior",
|
|
7015
7202
|
header_name="headerName"
|
|
@@ -7042,6 +7229,9 @@ class CfnRuleGroup(
|
|
|
7042
7229
|
match_scope="matchScope",
|
|
7043
7230
|
oversize_handling="oversizeHandling"
|
|
7044
7231
|
),
|
|
7232
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
7233
|
+
fallback_behavior="fallbackBehavior"
|
|
7234
|
+
),
|
|
7045
7235
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
7046
7236
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
7047
7237
|
all=all,
|
|
@@ -7121,6 +7311,9 @@ class CfnRuleGroup(
|
|
|
7121
7311
|
match_scope="matchScope",
|
|
7122
7312
|
oversize_handling="oversizeHandling"
|
|
7123
7313
|
),
|
|
7314
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
7315
|
+
fallback_behavior="fallbackBehavior"
|
|
7316
|
+
),
|
|
7124
7317
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
7125
7318
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
7126
7319
|
all=all,
|
|
@@ -7169,6 +7362,9 @@ class CfnRuleGroup(
|
|
|
7169
7362
|
match_scope="matchScope",
|
|
7170
7363
|
oversize_handling="oversizeHandling"
|
|
7171
7364
|
),
|
|
7365
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
7366
|
+
fallback_behavior="fallbackBehavior"
|
|
7367
|
+
),
|
|
7172
7368
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
7173
7369
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
7174
7370
|
all=all,
|
|
@@ -7216,6 +7412,9 @@ class CfnRuleGroup(
|
|
|
7216
7412
|
match_scope="matchScope",
|
|
7217
7413
|
oversize_handling="oversizeHandling"
|
|
7218
7414
|
),
|
|
7415
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
7416
|
+
fallback_behavior="fallbackBehavior"
|
|
7417
|
+
),
|
|
7219
7418
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
7220
7419
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
7221
7420
|
all=all,
|
|
@@ -7263,6 +7462,9 @@ class CfnRuleGroup(
|
|
|
7263
7462
|
match_scope="matchScope",
|
|
7264
7463
|
oversize_handling="oversizeHandling"
|
|
7265
7464
|
),
|
|
7465
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
7466
|
+
fallback_behavior="fallbackBehavior"
|
|
7467
|
+
),
|
|
7266
7468
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
7267
7469
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
7268
7470
|
all=all,
|
|
@@ -7312,6 +7514,9 @@ class CfnRuleGroup(
|
|
|
7312
7514
|
match_scope="matchScope",
|
|
7313
7515
|
oversize_handling="oversizeHandling"
|
|
7314
7516
|
),
|
|
7517
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
7518
|
+
fallback_behavior="fallbackBehavior"
|
|
7519
|
+
),
|
|
7315
7520
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
7316
7521
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
7317
7522
|
all=all,
|
|
@@ -7342,6 +7547,7 @@ class CfnRuleGroup(
|
|
|
7342
7547
|
check_type(argname="argument aggregate_key_type", value=aggregate_key_type, expected_type=type_hints["aggregate_key_type"])
|
|
7343
7548
|
check_type(argname="argument limit", value=limit, expected_type=type_hints["limit"])
|
|
7344
7549
|
check_type(argname="argument custom_keys", value=custom_keys, expected_type=type_hints["custom_keys"])
|
|
7550
|
+
check_type(argname="argument evaluation_window_sec", value=evaluation_window_sec, expected_type=type_hints["evaluation_window_sec"])
|
|
7345
7551
|
check_type(argname="argument forwarded_ip_config", value=forwarded_ip_config, expected_type=type_hints["forwarded_ip_config"])
|
|
7346
7552
|
check_type(argname="argument scope_down_statement", value=scope_down_statement, expected_type=type_hints["scope_down_statement"])
|
|
7347
7553
|
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
@@ -7350,6 +7556,8 @@ class CfnRuleGroup(
|
|
|
7350
7556
|
}
|
|
7351
7557
|
if custom_keys is not None:
|
|
7352
7558
|
self._values["custom_keys"] = custom_keys
|
|
7559
|
+
if evaluation_window_sec is not None:
|
|
7560
|
+
self._values["evaluation_window_sec"] = evaluation_window_sec
|
|
7353
7561
|
if forwarded_ip_config is not None:
|
|
7354
7562
|
self._values["forwarded_ip_config"] = forwarded_ip_config
|
|
7355
7563
|
if scope_down_statement is not None:
|
|
@@ -7417,6 +7625,21 @@ class CfnRuleGroup(
|
|
|
7417
7625
|
result = self._values.get("custom_keys")
|
|
7418
7626
|
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnRuleGroup.RateBasedStatementCustomKeyProperty"]]]], result)
|
|
7419
7627
|
|
|
7628
|
+
@builtins.property
|
|
7629
|
+
def evaluation_window_sec(self) -> typing.Optional[jsii.Number]:
|
|
7630
|
+
'''The amount of time, in seconds, that AWS WAF should include in its request counts, looking back from the current time.
|
|
7631
|
+
|
|
7632
|
+
For example, for a setting of 120, when AWS WAF checks the rate, it counts the requests for the 2 minutes immediately preceding the current time. Valid settings are 60, 120, 300, and 600.
|
|
7633
|
+
|
|
7634
|
+
This setting doesn't determine how often AWS WAF checks the rate, but how far back it looks each time it checks. AWS WAF checks the rate about every 10 seconds.
|
|
7635
|
+
|
|
7636
|
+
Default: ``300`` (5 minutes)
|
|
7637
|
+
|
|
7638
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-ratebasedstatement.html#cfn-wafv2-rulegroup-ratebasedstatement-evaluationwindowsec
|
|
7639
|
+
'''
|
|
7640
|
+
result = self._values.get("evaluation_window_sec")
|
|
7641
|
+
return typing.cast(typing.Optional[jsii.Number], result)
|
|
7642
|
+
|
|
7420
7643
|
@builtins.property
|
|
7421
7644
|
def forwarded_ip_config(
|
|
7422
7645
|
self,
|
|
@@ -7951,6 +8174,9 @@ class CfnRuleGroup(
|
|
|
7951
8174
|
match_scope="matchScope",
|
|
7952
8175
|
oversize_handling="oversizeHandling"
|
|
7953
8176
|
),
|
|
8177
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
8178
|
+
fallback_behavior="fallbackBehavior"
|
|
8179
|
+
),
|
|
7954
8180
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
7955
8181
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
7956
8182
|
all=all,
|
|
@@ -8102,6 +8328,9 @@ class CfnRuleGroup(
|
|
|
8102
8328
|
match_scope="matchScope",
|
|
8103
8329
|
oversize_handling="oversizeHandling"
|
|
8104
8330
|
),
|
|
8331
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
8332
|
+
fallback_behavior="fallbackBehavior"
|
|
8333
|
+
),
|
|
8105
8334
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
8106
8335
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
8107
8336
|
all=all,
|
|
@@ -8422,6 +8651,9 @@ class CfnRuleGroup(
|
|
|
8422
8651
|
match_scope="matchScope",
|
|
8423
8652
|
oversize_handling="oversizeHandling"
|
|
8424
8653
|
),
|
|
8654
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
8655
|
+
fallback_behavior="fallbackBehavior"
|
|
8656
|
+
),
|
|
8425
8657
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
8426
8658
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
8427
8659
|
all=all,
|
|
@@ -8522,6 +8754,7 @@ class CfnRuleGroup(
|
|
|
8522
8754
|
)]
|
|
8523
8755
|
)
|
|
8524
8756
|
)],
|
|
8757
|
+
evaluation_window_sec=123,
|
|
8525
8758
|
forwarded_ip_config=wafv2.CfnRuleGroup.ForwardedIPConfigurationProperty(
|
|
8526
8759
|
fallback_behavior="fallbackBehavior",
|
|
8527
8760
|
header_name="headerName"
|
|
@@ -8552,6 +8785,9 @@ class CfnRuleGroup(
|
|
|
8552
8785
|
match_scope="matchScope",
|
|
8553
8786
|
oversize_handling="oversizeHandling"
|
|
8554
8787
|
),
|
|
8788
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
8789
|
+
fallback_behavior="fallbackBehavior"
|
|
8790
|
+
),
|
|
8555
8791
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
8556
8792
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
8557
8793
|
all=all,
|
|
@@ -8600,6 +8836,9 @@ class CfnRuleGroup(
|
|
|
8600
8836
|
match_scope="matchScope",
|
|
8601
8837
|
oversize_handling="oversizeHandling"
|
|
8602
8838
|
),
|
|
8839
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
8840
|
+
fallback_behavior="fallbackBehavior"
|
|
8841
|
+
),
|
|
8603
8842
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
8604
8843
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
8605
8844
|
all=all,
|
|
@@ -8647,6 +8886,9 @@ class CfnRuleGroup(
|
|
|
8647
8886
|
match_scope="matchScope",
|
|
8648
8887
|
oversize_handling="oversizeHandling"
|
|
8649
8888
|
),
|
|
8889
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
8890
|
+
fallback_behavior="fallbackBehavior"
|
|
8891
|
+
),
|
|
8650
8892
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
8651
8893
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
8652
8894
|
all=all,
|
|
@@ -8694,6 +8936,9 @@ class CfnRuleGroup(
|
|
|
8694
8936
|
match_scope="matchScope",
|
|
8695
8937
|
oversize_handling="oversizeHandling"
|
|
8696
8938
|
),
|
|
8939
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
8940
|
+
fallback_behavior="fallbackBehavior"
|
|
8941
|
+
),
|
|
8697
8942
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
8698
8943
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
8699
8944
|
all=all,
|
|
@@ -8743,6 +8988,9 @@ class CfnRuleGroup(
|
|
|
8743
8988
|
match_scope="matchScope",
|
|
8744
8989
|
oversize_handling="oversizeHandling"
|
|
8745
8990
|
),
|
|
8991
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
8992
|
+
fallback_behavior="fallbackBehavior"
|
|
8993
|
+
),
|
|
8746
8994
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
8747
8995
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
8748
8996
|
all=all,
|
|
@@ -9085,7 +9333,7 @@ class CfnRuleGroup(
|
|
|
9085
9333
|
|
|
9086
9334
|
For example, you can use a size constraint statement to look for query strings that are longer than 100 bytes.
|
|
9087
9335
|
|
|
9088
|
-
If you configure AWS WAF to inspect the request body, AWS WAF inspects only the number of bytes
|
|
9336
|
+
If you configure AWS WAF to inspect the request body, AWS WAF inspects only the number of bytes in the body up to the limit for the web ACL and protected resource type. If you know that the request body for your web requests should never exceed the inspection limit, you can use a size constraint statement to block requests that have a larger request body size. For more information about the inspection limits, see ``Body`` and ``JsonBody`` settings for the ``FieldToMatch`` data type.
|
|
9089
9337
|
|
|
9090
9338
|
If you choose URI for the value of Part of the request to filter on, the slash (/) in the URI counts as one character. For example, the URI ``/logo.jpg`` is nine characters long.
|
|
9091
9339
|
|
|
@@ -9136,6 +9384,9 @@ class CfnRuleGroup(
|
|
|
9136
9384
|
match_scope="matchScope",
|
|
9137
9385
|
oversize_handling="oversizeHandling"
|
|
9138
9386
|
),
|
|
9387
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
9388
|
+
fallback_behavior="fallbackBehavior"
|
|
9389
|
+
),
|
|
9139
9390
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
9140
9391
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
9141
9392
|
all=all,
|
|
@@ -9296,6 +9547,9 @@ class CfnRuleGroup(
|
|
|
9296
9547
|
match_scope="matchScope",
|
|
9297
9548
|
oversize_handling="oversizeHandling"
|
|
9298
9549
|
),
|
|
9550
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
9551
|
+
fallback_behavior="fallbackBehavior"
|
|
9552
|
+
),
|
|
9299
9553
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
9300
9554
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
9301
9555
|
all=all,
|
|
@@ -9435,7 +9689,7 @@ class CfnRuleGroup(
|
|
|
9435
9689
|
:param rate_based_statement: A rate-based rule counts incoming requests and rate limits requests when they are coming at too fast a rate. The rule categorizes requests according to your aggregation criteria, collects them into aggregation instances, and counts and rate limits the requests for each instance. .. epigraph:: If you change any of these settings in a rule that's currently in use, the change resets the rule's rate limiting counts. This can pause the rule's rate limiting activities for up to a minute. You can specify individual aggregation keys, like IP address or HTTP method. You can also specify aggregation key combinations, like IP address and HTTP method, or HTTP method, query argument, and cookie. Each unique set of values for the aggregation keys that you specify is a separate aggregation instance, with the value from each key contributing to the aggregation instance definition. For example, assume the rule evaluates web requests with the following IP address and HTTP method values: - IP address 10.1.1.1, HTTP method POST - IP address 10.1.1.1, HTTP method GET - IP address 127.0.0.0, HTTP method POST - IP address 10.1.1.1, HTTP method GET The rule would create different aggregation instances according to your aggregation criteria, for example: - If the aggregation criteria is just the IP address, then each individual address is an aggregation instance, and AWS WAF counts requests separately for each. The aggregation instances and request counts for our example would be the following: - IP address 10.1.1.1: count 3 - IP address 127.0.0.0: count 1 - If the aggregation criteria is HTTP method, then each individual HTTP method is an aggregation instance. The aggregation instances and request counts for our example would be the following: - HTTP method POST: count 2 - HTTP method GET: count 2 - If the aggregation criteria is IP address and HTTP method, then each IP address and each HTTP method would contribute to the combined aggregation instance. The aggregation instances and request counts for our example would be the following: - IP address 10.1.1.1, HTTP method POST: count 1 - IP address 10.1.1.1, HTTP method GET: count 2 - IP address 127.0.0.0, HTTP method POST: count 1 For any n-tuple of aggregation keys, each unique combination of values for the keys defines a separate aggregation instance, which AWS WAF counts and rate-limits individually. You can optionally nest another statement inside the rate-based statement, to narrow the scope of the rule so that it only counts and rate limits requests that match the nested statement. You can use this nested scope-down statement in conjunction with your aggregation key specifications or you can just count and rate limit all requests that match the scope-down statement, without additional aggregation. When you choose to just manage all requests that match a scope-down statement, the aggregation instance is singular for the rule. You cannot nest a ``RateBasedStatement`` inside another statement, for example inside a ``NotStatement`` or ``OrStatement`` . You can define a ``RateBasedStatement`` inside a web ACL and inside a rule group. For additional information about the options, see `Rate limiting web requests using rate-based rules <https://docs.aws.amazon.com/waf/latest/developerguide/waf-rate-based-rules.html>`_ in the *AWS WAF Developer Guide* . If you only aggregate on the individual IP address or forwarded IP address, you can retrieve the list of IP addresses that AWS WAF is currently rate limiting for a rule through the API call ``GetRateBasedStatementManagedKeys`` . This option is not available for other aggregation configurations. AWS WAF tracks and manages web requests separately for each instance of a rate-based rule that you use. For example, if you provide the same rate-based rule settings in two web ACLs, each of the two rule statements represents a separate instance of the rate-based rule and gets its own tracking and management by AWS WAF . If you define a rate-based rule inside a rule group, and then use that rule group in multiple places, each use creates a separate instance of the rate-based rule that gets its own tracking and management by AWS WAF .
|
|
9436
9690
|
:param regex_match_statement: A rule statement used to search web request components for a match against a single regular expression.
|
|
9437
9691
|
:param regex_pattern_set_reference_statement: A rule statement used to search web request components for matches with regular expressions. To use this, create a ``RegexPatternSet`` that specifies the expressions that you want to detect, then use the ARN of that set in this statement. A web request matches the pattern set rule statement if the request component matches any of the patterns in the set. Each regex pattern set rule statement references a regex pattern set. You create and maintain the set independent of your rules. This allows you to use the single set in multiple rules. When you update the referenced set, AWS WAF automatically updates all rules that reference it.
|
|
9438
|
-
:param size_constraint_statement: A rule statement that compares a number of bytes against the size of a request component, using a comparison operator, such as greater than (>) or less than (<). For example, you can use a size constraint statement to look for query strings that are longer than 100 bytes. If you configure AWS WAF to inspect the request body, AWS WAF inspects only the number of bytes
|
|
9692
|
+
:param size_constraint_statement: A rule statement that compares a number of bytes against the size of a request component, using a comparison operator, such as greater than (>) or less than (<). For example, you can use a size constraint statement to look for query strings that are longer than 100 bytes. If you configure AWS WAF to inspect the request body, AWS WAF inspects only the number of bytes in the body up to the limit for the web ACL and protected resource type. If you know that the request body for your web requests should never exceed the inspection limit, you can use a size constraint statement to block requests that have a larger request body size. For more information about the inspection limits, see ``Body`` and ``JsonBody`` settings for the ``FieldToMatch`` data type. If you choose URI for the value of Part of the request to filter on, the slash (/) in the URI counts as one character. For example, the URI ``/logo.jpg`` is nine characters long.
|
|
9439
9693
|
:param sqli_match_statement: A rule statement that inspects for malicious SQL code. Attackers insert malicious SQL code into web requests to do things like modify your database or extract data from it.
|
|
9440
9694
|
:param xss_match_statement: A rule statement that inspects for cross-site scripting (XSS) attacks. In XSS attacks, the attacker uses vulnerabilities in a benign website as a vehicle to inject malicious client-site scripts into other legitimate web browsers.
|
|
9441
9695
|
|
|
@@ -9488,6 +9742,9 @@ class CfnRuleGroup(
|
|
|
9488
9742
|
match_scope="matchScope",
|
|
9489
9743
|
oversize_handling="oversizeHandling"
|
|
9490
9744
|
),
|
|
9745
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
9746
|
+
fallback_behavior="fallbackBehavior"
|
|
9747
|
+
),
|
|
9491
9748
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
9492
9749
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
9493
9750
|
all=all,
|
|
@@ -9588,6 +9845,7 @@ class CfnRuleGroup(
|
|
|
9588
9845
|
)]
|
|
9589
9846
|
)
|
|
9590
9847
|
)],
|
|
9848
|
+
evaluation_window_sec=123,
|
|
9591
9849
|
forwarded_ip_config=wafv2.CfnRuleGroup.ForwardedIPConfigurationProperty(
|
|
9592
9850
|
fallback_behavior="fallbackBehavior",
|
|
9593
9851
|
header_name="headerName"
|
|
@@ -9618,6 +9876,9 @@ class CfnRuleGroup(
|
|
|
9618
9876
|
match_scope="matchScope",
|
|
9619
9877
|
oversize_handling="oversizeHandling"
|
|
9620
9878
|
),
|
|
9879
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
9880
|
+
fallback_behavior="fallbackBehavior"
|
|
9881
|
+
),
|
|
9621
9882
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
9622
9883
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
9623
9884
|
all=all,
|
|
@@ -9666,6 +9927,9 @@ class CfnRuleGroup(
|
|
|
9666
9927
|
match_scope="matchScope",
|
|
9667
9928
|
oversize_handling="oversizeHandling"
|
|
9668
9929
|
),
|
|
9930
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
9931
|
+
fallback_behavior="fallbackBehavior"
|
|
9932
|
+
),
|
|
9669
9933
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
9670
9934
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
9671
9935
|
all=all,
|
|
@@ -9713,6 +9977,9 @@ class CfnRuleGroup(
|
|
|
9713
9977
|
match_scope="matchScope",
|
|
9714
9978
|
oversize_handling="oversizeHandling"
|
|
9715
9979
|
),
|
|
9980
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
9981
|
+
fallback_behavior="fallbackBehavior"
|
|
9982
|
+
),
|
|
9716
9983
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
9717
9984
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
9718
9985
|
all=all,
|
|
@@ -9760,6 +10027,9 @@ class CfnRuleGroup(
|
|
|
9760
10027
|
match_scope="matchScope",
|
|
9761
10028
|
oversize_handling="oversizeHandling"
|
|
9762
10029
|
),
|
|
10030
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
10031
|
+
fallback_behavior="fallbackBehavior"
|
|
10032
|
+
),
|
|
9763
10033
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
9764
10034
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
9765
10035
|
all=all,
|
|
@@ -9809,6 +10079,9 @@ class CfnRuleGroup(
|
|
|
9809
10079
|
match_scope="matchScope",
|
|
9810
10080
|
oversize_handling="oversizeHandling"
|
|
9811
10081
|
),
|
|
10082
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
10083
|
+
fallback_behavior="fallbackBehavior"
|
|
10084
|
+
),
|
|
9812
10085
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
9813
10086
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
9814
10087
|
all=all,
|
|
@@ -10066,7 +10339,7 @@ class CfnRuleGroup(
|
|
|
10066
10339
|
|
|
10067
10340
|
For example, you can use a size constraint statement to look for query strings that are longer than 100 bytes.
|
|
10068
10341
|
|
|
10069
|
-
If you configure AWS WAF to inspect the request body, AWS WAF inspects only the number of bytes
|
|
10342
|
+
If you configure AWS WAF to inspect the request body, AWS WAF inspects only the number of bytes in the body up to the limit for the web ACL and protected resource type. If you know that the request body for your web requests should never exceed the inspection limit, you can use a size constraint statement to block requests that have a larger request body size. For more information about the inspection limits, see ``Body`` and ``JsonBody`` settings for the ``FieldToMatch`` data type.
|
|
10070
10343
|
|
|
10071
10344
|
If you choose URI for the value of Part of the request to filter on, the slash (/) in the URI counts as one character. For example, the URI ``/logo.jpg`` is nine characters long.
|
|
10072
10345
|
|
|
@@ -10201,7 +10474,7 @@ class CfnRuleGroup(
|
|
|
10201
10474
|
|
|
10202
10475
|
:param cloud_watch_metrics_enabled: Indicates whether the associated resource sends metrics to Amazon CloudWatch. For the list of available metrics, see `AWS WAF Metrics <https://docs.aws.amazon.com/waf/latest/developerguide/monitoring-cloudwatch.html#waf-metrics>`_ in the *AWS WAF Developer Guide* . For web ACLs, the metrics are for web requests that have the web ACL default action applied. AWS WAF applies the default action to web requests that pass the inspection of all rules in the web ACL without being either allowed or blocked. For more information, see `The web ACL default action <https://docs.aws.amazon.com/waf/latest/developerguide/web-acl-default-action.html>`_ in the *AWS WAF Developer Guide* .
|
|
10203
10476
|
:param metric_name: A name of the Amazon CloudWatch metric dimension. The name can contain only the characters: A-Z, a-z, 0-9, - (hyphen), and _ (underscore). The name can be from one to 128 characters long. It can't contain whitespace or metric names that are reserved for AWS WAF , for example ``All`` and ``Default_Action`` .
|
|
10204
|
-
:param sampled_requests_enabled: Indicates whether AWS WAF should store a sampling of the web requests that match the rules. You can view the sampled requests through the AWS WAF console.
|
|
10477
|
+
:param sampled_requests_enabled: Indicates whether AWS WAF should store a sampling of the web requests that match the rules. You can view the sampled requests through the AWS WAF console. .. epigraph:: Request sampling doesn't provide a field redaction option, and any field redaction that you specify in your logging configuration doesn't affect sampling. The only way to exclude fields from request sampling is by disabling sampling in the web ACL visibility configuration.
|
|
10205
10478
|
|
|
10206
10479
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-visibilityconfig.html
|
|
10207
10480
|
:exampleMetadata: fixture=_generated
|
|
@@ -10265,6 +10538,9 @@ class CfnRuleGroup(
|
|
|
10265
10538
|
'''Indicates whether AWS WAF should store a sampling of the web requests that match the rules.
|
|
10266
10539
|
|
|
10267
10540
|
You can view the sampled requests through the AWS WAF console.
|
|
10541
|
+
.. epigraph::
|
|
10542
|
+
|
|
10543
|
+
Request sampling doesn't provide a field redaction option, and any field redaction that you specify in your logging configuration doesn't affect sampling. The only way to exclude fields from request sampling is by disabling sampling in the web ACL visibility configuration.
|
|
10268
10544
|
|
|
10269
10545
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-visibilityconfig.html#cfn-wafv2-rulegroup-visibilityconfig-sampledrequestsenabled
|
|
10270
10546
|
'''
|
|
@@ -10346,6 +10622,9 @@ class CfnRuleGroup(
|
|
|
10346
10622
|
match_scope="matchScope",
|
|
10347
10623
|
oversize_handling="oversizeHandling"
|
|
10348
10624
|
),
|
|
10625
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
10626
|
+
fallback_behavior="fallbackBehavior"
|
|
10627
|
+
),
|
|
10349
10628
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
10350
10629
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
10351
10630
|
all=all,
|
|
@@ -10541,6 +10820,9 @@ class CfnRuleGroupProps:
|
|
|
10541
10820
|
match_scope="matchScope",
|
|
10542
10821
|
oversize_handling="oversizeHandling"
|
|
10543
10822
|
),
|
|
10823
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
10824
|
+
fallback_behavior="fallbackBehavior"
|
|
10825
|
+
),
|
|
10544
10826
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
10545
10827
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
10546
10828
|
all=all,
|
|
@@ -10641,6 +10923,7 @@ class CfnRuleGroupProps:
|
|
|
10641
10923
|
)]
|
|
10642
10924
|
)
|
|
10643
10925
|
)],
|
|
10926
|
+
evaluation_window_sec=123,
|
|
10644
10927
|
forwarded_ip_config=wafv2.CfnRuleGroup.ForwardedIPConfigurationProperty(
|
|
10645
10928
|
fallback_behavior="fallbackBehavior",
|
|
10646
10929
|
header_name="headerName"
|
|
@@ -10671,6 +10954,9 @@ class CfnRuleGroupProps:
|
|
|
10671
10954
|
match_scope="matchScope",
|
|
10672
10955
|
oversize_handling="oversizeHandling"
|
|
10673
10956
|
),
|
|
10957
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
10958
|
+
fallback_behavior="fallbackBehavior"
|
|
10959
|
+
),
|
|
10674
10960
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
10675
10961
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
10676
10962
|
all=all,
|
|
@@ -10719,6 +11005,9 @@ class CfnRuleGroupProps:
|
|
|
10719
11005
|
match_scope="matchScope",
|
|
10720
11006
|
oversize_handling="oversizeHandling"
|
|
10721
11007
|
),
|
|
11008
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
11009
|
+
fallback_behavior="fallbackBehavior"
|
|
11010
|
+
),
|
|
10722
11011
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
10723
11012
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
10724
11013
|
all=all,
|
|
@@ -10766,6 +11055,9 @@ class CfnRuleGroupProps:
|
|
|
10766
11055
|
match_scope="matchScope",
|
|
10767
11056
|
oversize_handling="oversizeHandling"
|
|
10768
11057
|
),
|
|
11058
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
11059
|
+
fallback_behavior="fallbackBehavior"
|
|
11060
|
+
),
|
|
10769
11061
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
10770
11062
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
10771
11063
|
all=all,
|
|
@@ -10813,6 +11105,9 @@ class CfnRuleGroupProps:
|
|
|
10813
11105
|
match_scope="matchScope",
|
|
10814
11106
|
oversize_handling="oversizeHandling"
|
|
10815
11107
|
),
|
|
11108
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
11109
|
+
fallback_behavior="fallbackBehavior"
|
|
11110
|
+
),
|
|
10816
11111
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
10817
11112
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
10818
11113
|
all=all,
|
|
@@ -10862,6 +11157,9 @@ class CfnRuleGroupProps:
|
|
|
10862
11157
|
match_scope="matchScope",
|
|
10863
11158
|
oversize_handling="oversizeHandling"
|
|
10864
11159
|
),
|
|
11160
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
11161
|
+
fallback_behavior="fallbackBehavior"
|
|
11162
|
+
),
|
|
10865
11163
|
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
10866
11164
|
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
10867
11165
|
all=all,
|
|
@@ -11157,7 +11455,7 @@ class CfnWebACL(
|
|
|
11157
11455
|
:param default_action: The action to perform if none of the ``Rules`` contained in the ``WebACL`` match.
|
|
11158
11456
|
:param scope: Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AWS AppSync GraphQL API, an Amazon Cognito user pool, an AWS App Runner service, or an AWS Verified Access instance. Valid Values are ``CLOUDFRONT`` and ``REGIONAL`` . .. epigraph:: For ``CLOUDFRONT`` , you must create your WAFv2 resources in the US East (N. Virginia) Region, ``us-east-1`` . For information about how to define the association of the web ACL with your resource, see ``WebACLAssociation`` .
|
|
11159
11457
|
:param visibility_config: Defines and enables Amazon CloudWatch metrics and web request sample collection.
|
|
11160
|
-
:param association_config: Specifies custom configurations for the associations between the web ACL and protected resources. Use this to customize the maximum size of the request body that your protected
|
|
11458
|
+
:param association_config: Specifies custom configurations for the associations between the web ACL and protected resources. Use this to customize the maximum size of the request body that your protected resources forward to AWS WAF for inspection. You can customize this setting for CloudFront, API Gateway, Amazon Cognito, App Runner, or Verified Access resources. The default setting is 16 KB (16,384 bytes). .. epigraph:: You are charged additional fees when your protected resources forward body sizes that are larger than the default. For more information, see `AWS WAF Pricing <https://docs.aws.amazon.com/waf/pricing/>`_ . For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes).
|
|
11161
11459
|
:param captcha_config: Specifies how AWS WAF should handle ``CAPTCHA`` evaluations for rules that don't have their own ``CaptchaConfig`` settings. If you don't specify this, AWS WAF uses its default settings for ``CaptchaConfig`` .
|
|
11162
11460
|
:param challenge_config: Specifies how AWS WAF should handle challenge evaluations for rules that don't have their own ``ChallengeConfig`` settings. If you don't specify this, AWS WAF uses its default settings for ``ChallengeConfig`` .
|
|
11163
11461
|
:param custom_response_bodies: A map of custom response keys and content bodies. When you create a rule with a block action, you can send a custom response to the web request. You define these for the web ACL, and then use them in the rules and default actions that you define in the web ACL. For information about customizing web requests and responses, see `Customizing web requests and responses in AWS WAF <https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html>`_ in the *AWS WAF Developer Guide* . For information about the limits on count and size for custom request and response settings, see `AWS WAF quotas <https://docs.aws.amazon.com/waf/latest/developerguide/limits.html>`_ in the *AWS WAF Developer Guide* .
|
|
@@ -12028,12 +12326,14 @@ class CfnWebACL(
|
|
|
12028
12326
|
) -> None:
|
|
12029
12327
|
'''Specifies custom configurations for the associations between the web ACL and protected resources.
|
|
12030
12328
|
|
|
12031
|
-
Use this to customize the maximum size of the request body that your protected
|
|
12329
|
+
Use this to customize the maximum size of the request body that your protected resources forward to AWS WAF for inspection. You can customize this setting for CloudFront, API Gateway, Amazon Cognito, App Runner, or Verified Access resources. The default setting is 16 KB (16,384 bytes).
|
|
12032
12330
|
.. epigraph::
|
|
12033
12331
|
|
|
12034
12332
|
You are charged additional fees when your protected resources forward body sizes that are larger than the default. For more information, see `AWS WAF Pricing <https://docs.aws.amazon.com/waf/pricing/>`_ .
|
|
12035
12333
|
|
|
12036
|
-
|
|
12334
|
+
For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes).
|
|
12335
|
+
|
|
12336
|
+
:param request_body: Customizes the maximum size of the request body that your protected CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access resources forward to AWS WAF for inspection. The default size is 16 KB (16,384 bytes). You can change the setting for any of the available resource types. .. epigraph:: You are charged additional fees when your protected resources forward body sizes that are larger than the default. For more information, see `AWS WAF Pricing <https://docs.aws.amazon.com/waf/pricing/>`_ . Example JSON: ``{ "API_GATEWAY": "KB_48", "APP_RUNNER_SERVICE": "KB_32" }`` For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes).
|
|
12037
12337
|
|
|
12038
12338
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-associationconfig.html
|
|
12039
12339
|
:exampleMetadata: fixture=_generated
|
|
@@ -12063,13 +12363,17 @@ class CfnWebACL(
|
|
|
12063
12363
|
def request_body(
|
|
12064
12364
|
self,
|
|
12065
12365
|
) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Mapping[builtins.str, typing.Union[_IResolvable_da3f097b, "CfnWebACL.RequestBodyAssociatedResourceTypeConfigProperty"]]]]:
|
|
12066
|
-
'''Customizes the maximum size of the request body that your protected CloudFront
|
|
12366
|
+
'''Customizes the maximum size of the request body that your protected CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access resources forward to AWS WAF for inspection.
|
|
12067
12367
|
|
|
12068
|
-
The default size is 16 KB (16,384 bytes).
|
|
12368
|
+
The default size is 16 KB (16,384 bytes). You can change the setting for any of the available resource types.
|
|
12069
12369
|
.. epigraph::
|
|
12070
12370
|
|
|
12071
12371
|
You are charged additional fees when your protected resources forward body sizes that are larger than the default. For more information, see `AWS WAF Pricing <https://docs.aws.amazon.com/waf/pricing/>`_ .
|
|
12072
12372
|
|
|
12373
|
+
Example JSON: ``{ "API_GATEWAY": "KB_48", "APP_RUNNER_SERVICE": "KB_32" }``
|
|
12374
|
+
|
|
12375
|
+
For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes).
|
|
12376
|
+
|
|
12073
12377
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-associationconfig.html#cfn-wafv2-webacl-associationconfig-requestbody
|
|
12074
12378
|
'''
|
|
12075
12379
|
result = self._values.get("request_body")
|
|
@@ -12171,7 +12475,7 @@ class CfnWebACL(
|
|
|
12171
12475
|
|
|
12172
12476
|
This is used to indicate the web request component to inspect, in the ``FieldToMatch`` specification.
|
|
12173
12477
|
|
|
12174
|
-
:param oversize_handling: What AWS WAF should do if the body is larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of the web request body if the body exceeds the limit for the resource type.
|
|
12478
|
+
:param oversize_handling: What AWS WAF should do if the body is larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of the web request body if the body exceeds the limit for the resource type. When a web request body is larger than the limit, the underlying host service only forwards the contents that are within the limit to AWS WAF for inspection. - For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). - For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the web ACL ``AssociationConfig`` , for additional processing fees. The options for oversize handling are the following: - ``CONTINUE`` - Inspect the available body contents normally, according to the rule inspection criteria. - ``MATCH`` - Treat the web request as matching the rule statement. AWS WAF applies the rule action to the request. - ``NO_MATCH`` - Treat the web request as not matching the rule statement. You can combine the ``MATCH`` or ``NO_MATCH`` settings for oversize handling with your rule and web ACL action settings, so that you block any request whose body is over the limit. Default: ``CONTINUE``
|
|
12175
12479
|
|
|
12176
12480
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-body.html
|
|
12177
12481
|
:exampleMetadata: fixture=_generated
|
|
@@ -12197,9 +12501,10 @@ class CfnWebACL(
|
|
|
12197
12501
|
def oversize_handling(self) -> typing.Optional[builtins.str]:
|
|
12198
12502
|
'''What AWS WAF should do if the body is larger than AWS WAF can inspect.
|
|
12199
12503
|
|
|
12200
|
-
AWS WAF does not support inspecting the entire contents of the web request body if the body exceeds the limit for the resource type.
|
|
12504
|
+
AWS WAF does not support inspecting the entire contents of the web request body if the body exceeds the limit for the resource type. When a web request body is larger than the limit, the underlying host service only forwards the contents that are within the limit to AWS WAF for inspection.
|
|
12201
12505
|
|
|
12202
|
-
|
|
12506
|
+
- For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes).
|
|
12507
|
+
- For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the web ACL ``AssociationConfig`` , for additional processing fees.
|
|
12203
12508
|
|
|
12204
12509
|
The options for oversize handling are the following:
|
|
12205
12510
|
|
|
@@ -12299,6 +12604,9 @@ class CfnWebACL(
|
|
|
12299
12604
|
match_scope="matchScope",
|
|
12300
12605
|
oversize_handling="oversizeHandling"
|
|
12301
12606
|
),
|
|
12607
|
+
ja3_fingerprint=wafv2.CfnWebACL.JA3FingerprintProperty(
|
|
12608
|
+
fallback_behavior="fallbackBehavior"
|
|
12609
|
+
),
|
|
12302
12610
|
json_body=wafv2.CfnWebACL.JsonBodyProperty(
|
|
12303
12611
|
match_pattern=wafv2.CfnWebACL.JsonMatchPatternProperty(
|
|
12304
12612
|
all=all,
|
|
@@ -13549,6 +13857,7 @@ class CfnWebACL(
|
|
|
13549
13857
|
"body": "body",
|
|
13550
13858
|
"cookies": "cookies",
|
|
13551
13859
|
"headers": "headers",
|
|
13860
|
+
"ja3_fingerprint": "ja3Fingerprint",
|
|
13552
13861
|
"json_body": "jsonBody",
|
|
13553
13862
|
"method": "method",
|
|
13554
13863
|
"query_string": "queryString",
|
|
@@ -13565,6 +13874,7 @@ class CfnWebACL(
|
|
|
13565
13874
|
body: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.BodyProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
13566
13875
|
cookies: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.CookiesProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
13567
13876
|
headers: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.HeadersProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
13877
|
+
ja3_fingerprint: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.JA3FingerprintProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
13568
13878
|
json_body: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.JsonBodyProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
13569
13879
|
method: typing.Any = None,
|
|
13570
13880
|
query_string: typing.Any = None,
|
|
@@ -13587,12 +13897,14 @@ class CfnWebACL(
|
|
|
13587
13897
|
- In a logging configuration, this is used in the ``RedactedFields`` property to specify a field to redact from the logging records. For this use case, note the following:
|
|
13588
13898
|
- Even though all ``FieldToMatch`` settings are available, the only valid settings for field redaction are ``UriPath`` , ``QueryString`` , ``SingleHeader`` , and ``Method`` .
|
|
13589
13899
|
- In this documentation, the descriptions of the individual fields talk about specifying the web request component to inspect, but for field redaction, you are specifying the component type to redact from the logs.
|
|
13900
|
+
- If you have request sampling enabled, the redacted fields configuration for logging has no impact on sampling. The only way to exclude fields from request sampling is by disabling sampling in the web ACL visibility configuration.
|
|
13590
13901
|
|
|
13591
13902
|
:param all_query_arguments: Inspect all query arguments.
|
|
13592
|
-
:param body: Inspect the request body as plain text. The request body immediately follows the request headers. This is the part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form.
|
|
13903
|
+
:param body: Inspect the request body as plain text. The request body immediately follows the request headers. This is the part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form. AWS WAF does not support inspecting the entire contents of the web request body if the body exceeds the limit for the resource type. When a web request body is larger than the limit, the underlying host service only forwards the contents that are within the limit to AWS WAF for inspection. - For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). - For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the web ACL ``AssociationConfig`` , for additional processing fees. For information about how to handle oversized request bodies, see the ``Body`` object configuration.
|
|
13593
13904
|
:param cookies: Inspect the request cookies. You must configure scope and pattern matching filters in the ``Cookies`` object, to define the set of cookies and the parts of the cookies that AWS WAF inspects. Only the first 8 KB (8192 bytes) of a request's cookies and only the first 200 cookies are forwarded to AWS WAF for inspection by the underlying host service. You must configure how to handle any oversize cookie content in the ``Cookies`` object. AWS WAF applies the pattern matching filters to the cookies that it receives from the underlying host service.
|
|
13594
13905
|
:param headers: Inspect the request headers. You must configure scope and pattern matching filters in the ``Headers`` object, to define the set of headers to and the parts of the headers that AWS WAF inspects. Only the first 8 KB (8192 bytes) of a request's headers and only the first 200 headers are forwarded to AWS WAF for inspection by the underlying host service. You must configure how to handle any oversize header content in the ``Headers`` object. AWS WAF applies the pattern matching filters to the headers that it receives from the underlying host service.
|
|
13595
|
-
:param
|
|
13906
|
+
:param ja3_fingerprint: Match against the request's JA3 fingerprint. The JA3 fingerprint is a 32-character hash derived from the TLS Client Hello of an incoming request. This fingerprint serves as a unique identifier for the client's TLS configuration. AWS WAF calculates and logs this fingerprint for each request that has enough TLS Client Hello information for the calculation. Almost all web requests include this information. .. epigraph:: You can use this choice only with a string match ``ByteMatchStatement`` with the ``PositionalConstraint`` set to ``EXACTLY`` . You can obtain the JA3 fingerprint for client requests from the web ACL logs. If AWS WAF is able to calculate the fingerprint, it includes it in the logs. For information about the logging fields, see `Log fields <https://docs.aws.amazon.com/waf/latest/developerguide/logging-fields.html>`_ in the *AWS WAF Developer Guide* . Provide the JA3 fingerprint string from the logs in your string match statement specification, to match with any future requests that have the same TLS configuration.
|
|
13907
|
+
:param json_body: Inspect the request body as JSON. The request body immediately follows the request headers. This is the part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form. AWS WAF does not support inspecting the entire contents of the web request body if the body exceeds the limit for the resource type. When a web request body is larger than the limit, the underlying host service only forwards the contents that are within the limit to AWS WAF for inspection. - For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). - For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the web ACL ``AssociationConfig`` , for additional processing fees. For information about how to handle oversized request bodies, see the ``JsonBody`` object configuration.
|
|
13596
13908
|
:param method: Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform.
|
|
13597
13909
|
:param query_string: Inspect the query string. This is the part of a URL that appears after a ``?`` character, if any.
|
|
13598
13910
|
:param single_header: Inspect a single header. Provide the name of the header to inspect, for example, ``User-Agent`` or ``Referer`` . This setting isn't case sensitive. Example JSON: ``"SingleHeader": { "Name": "haystack" }`` Alternately, you can filter and inspect all headers with the ``Headers`` ``FieldToMatch`` setting.
|
|
@@ -13639,6 +13951,9 @@ class CfnWebACL(
|
|
|
13639
13951
|
match_scope="matchScope",
|
|
13640
13952
|
oversize_handling="oversizeHandling"
|
|
13641
13953
|
),
|
|
13954
|
+
ja3_fingerprint=wafv2.CfnWebACL.JA3FingerprintProperty(
|
|
13955
|
+
fallback_behavior="fallbackBehavior"
|
|
13956
|
+
),
|
|
13642
13957
|
json_body=wafv2.CfnWebACL.JsonBodyProperty(
|
|
13643
13958
|
match_pattern=wafv2.CfnWebACL.JsonMatchPatternProperty(
|
|
13644
13959
|
all=all,
|
|
@@ -13663,6 +13978,7 @@ class CfnWebACL(
|
|
|
13663
13978
|
check_type(argname="argument body", value=body, expected_type=type_hints["body"])
|
|
13664
13979
|
check_type(argname="argument cookies", value=cookies, expected_type=type_hints["cookies"])
|
|
13665
13980
|
check_type(argname="argument headers", value=headers, expected_type=type_hints["headers"])
|
|
13981
|
+
check_type(argname="argument ja3_fingerprint", value=ja3_fingerprint, expected_type=type_hints["ja3_fingerprint"])
|
|
13666
13982
|
check_type(argname="argument json_body", value=json_body, expected_type=type_hints["json_body"])
|
|
13667
13983
|
check_type(argname="argument method", value=method, expected_type=type_hints["method"])
|
|
13668
13984
|
check_type(argname="argument query_string", value=query_string, expected_type=type_hints["query_string"])
|
|
@@ -13678,6 +13994,8 @@ class CfnWebACL(
|
|
|
13678
13994
|
self._values["cookies"] = cookies
|
|
13679
13995
|
if headers is not None:
|
|
13680
13996
|
self._values["headers"] = headers
|
|
13997
|
+
if ja3_fingerprint is not None:
|
|
13998
|
+
self._values["ja3_fingerprint"] = ja3_fingerprint
|
|
13681
13999
|
if json_body is not None:
|
|
13682
14000
|
self._values["json_body"] = json_body
|
|
13683
14001
|
if method is not None:
|
|
@@ -13708,7 +14026,10 @@ class CfnWebACL(
|
|
|
13708
14026
|
|
|
13709
14027
|
The request body immediately follows the request headers. This is the part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form.
|
|
13710
14028
|
|
|
13711
|
-
|
|
14029
|
+
AWS WAF does not support inspecting the entire contents of the web request body if the body exceeds the limit for the resource type. When a web request body is larger than the limit, the underlying host service only forwards the contents that are within the limit to AWS WAF for inspection.
|
|
14030
|
+
|
|
14031
|
+
- For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes).
|
|
14032
|
+
- For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the web ACL ``AssociationConfig`` , for additional processing fees.
|
|
13712
14033
|
|
|
13713
14034
|
For information about how to handle oversized request bodies, see the ``Body`` object configuration.
|
|
13714
14035
|
|
|
@@ -13747,6 +14068,26 @@ class CfnWebACL(
|
|
|
13747
14068
|
result = self._values.get("headers")
|
|
13748
14069
|
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnWebACL.HeadersProperty"]], result)
|
|
13749
14070
|
|
|
14071
|
+
@builtins.property
|
|
14072
|
+
def ja3_fingerprint(
|
|
14073
|
+
self,
|
|
14074
|
+
) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnWebACL.JA3FingerprintProperty"]]:
|
|
14075
|
+
'''Match against the request's JA3 fingerprint.
|
|
14076
|
+
|
|
14077
|
+
The JA3 fingerprint is a 32-character hash derived from the TLS Client Hello of an incoming request. This fingerprint serves as a unique identifier for the client's TLS configuration. AWS WAF calculates and logs this fingerprint for each request that has enough TLS Client Hello information for the calculation. Almost all web requests include this information.
|
|
14078
|
+
.. epigraph::
|
|
14079
|
+
|
|
14080
|
+
You can use this choice only with a string match ``ByteMatchStatement`` with the ``PositionalConstraint`` set to ``EXACTLY`` .
|
|
14081
|
+
|
|
14082
|
+
You can obtain the JA3 fingerprint for client requests from the web ACL logs. If AWS WAF is able to calculate the fingerprint, it includes it in the logs. For information about the logging fields, see `Log fields <https://docs.aws.amazon.com/waf/latest/developerguide/logging-fields.html>`_ in the *AWS WAF Developer Guide* .
|
|
14083
|
+
|
|
14084
|
+
Provide the JA3 fingerprint string from the logs in your string match statement specification, to match with any future requests that have the same TLS configuration.
|
|
14085
|
+
|
|
14086
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-fieldtomatch.html#cfn-wafv2-webacl-fieldtomatch-ja3fingerprint
|
|
14087
|
+
'''
|
|
14088
|
+
result = self._values.get("ja3_fingerprint")
|
|
14089
|
+
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnWebACL.JA3FingerprintProperty"]], result)
|
|
14090
|
+
|
|
13750
14091
|
@builtins.property
|
|
13751
14092
|
def json_body(
|
|
13752
14093
|
self,
|
|
@@ -13755,7 +14096,10 @@ class CfnWebACL(
|
|
|
13755
14096
|
|
|
13756
14097
|
The request body immediately follows the request headers. This is the part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form.
|
|
13757
14098
|
|
|
13758
|
-
|
|
14099
|
+
AWS WAF does not support inspecting the entire contents of the web request body if the body exceeds the limit for the resource type. When a web request body is larger than the limit, the underlying host service only forwards the contents that are within the limit to AWS WAF for inspection.
|
|
14100
|
+
|
|
14101
|
+
- For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes).
|
|
14102
|
+
- For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the web ACL ``AssociationConfig`` , for additional processing fees.
|
|
13759
14103
|
|
|
13760
14104
|
For information about how to handle oversized request bodies, see the ``JsonBody`` object configuration.
|
|
13761
14105
|
|
|
@@ -14516,6 +14860,72 @@ class CfnWebACL(
|
|
|
14516
14860
|
k + "=" + repr(v) for k, v in self._values.items()
|
|
14517
14861
|
)
|
|
14518
14862
|
|
|
14863
|
+
@jsii.data_type(
|
|
14864
|
+
jsii_type="aws-cdk-lib.aws_wafv2.CfnWebACL.JA3FingerprintProperty",
|
|
14865
|
+
jsii_struct_bases=[],
|
|
14866
|
+
name_mapping={"fallback_behavior": "fallbackBehavior"},
|
|
14867
|
+
)
|
|
14868
|
+
class JA3FingerprintProperty:
|
|
14869
|
+
def __init__(self, *, fallback_behavior: builtins.str) -> None:
|
|
14870
|
+
'''Match against the request's JA3 fingerprint.
|
|
14871
|
+
|
|
14872
|
+
The JA3 fingerprint is a 32-character hash derived from the TLS Client Hello of an incoming request. This fingerprint serves as a unique identifier for the client's TLS configuration. AWS WAF calculates and logs this fingerprint for each request that has enough TLS Client Hello information for the calculation. Almost all web requests include this information.
|
|
14873
|
+
.. epigraph::
|
|
14874
|
+
|
|
14875
|
+
You can use this choice only with a string match ``ByteMatchStatement`` with the ``PositionalConstraint`` set to ``EXACTLY`` .
|
|
14876
|
+
|
|
14877
|
+
You can obtain the JA3 fingerprint for client requests from the web ACL logs. If AWS WAF is able to calculate the fingerprint, it includes it in the logs. For information about the logging fields, see `Log fields <https://docs.aws.amazon.com/waf/latest/developerguide/logging-fields.html>`_ in the *AWS WAF Developer Guide* .
|
|
14878
|
+
|
|
14879
|
+
Provide the JA3 fingerprint string from the logs in your string match statement specification, to match with any future requests that have the same TLS configuration.
|
|
14880
|
+
|
|
14881
|
+
:param fallback_behavior: The match status to assign to the web request if the request doesn't have a JA3 fingerprint. You can specify the following fallback behaviors: - ``MATCH`` - Treat the web request as matching the rule statement. AWS WAF applies the rule action to the request. - ``NO_MATCH`` - Treat the web request as not matching the rule statement.
|
|
14882
|
+
|
|
14883
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-ja3fingerprint.html
|
|
14884
|
+
:exampleMetadata: fixture=_generated
|
|
14885
|
+
|
|
14886
|
+
Example::
|
|
14887
|
+
|
|
14888
|
+
# The code below shows an example of how to instantiate this type.
|
|
14889
|
+
# The values are placeholders you should change.
|
|
14890
|
+
from aws_cdk import aws_wafv2 as wafv2
|
|
14891
|
+
|
|
14892
|
+
j_a3_fingerprint_property = wafv2.CfnWebACL.JA3FingerprintProperty(
|
|
14893
|
+
fallback_behavior="fallbackBehavior"
|
|
14894
|
+
)
|
|
14895
|
+
'''
|
|
14896
|
+
if __debug__:
|
|
14897
|
+
type_hints = typing.get_type_hints(_typecheckingstub__129b51143b193ce4679091a559f9a4073c03a2bccc1ccb884fe1b4dd3856119e)
|
|
14898
|
+
check_type(argname="argument fallback_behavior", value=fallback_behavior, expected_type=type_hints["fallback_behavior"])
|
|
14899
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
14900
|
+
"fallback_behavior": fallback_behavior,
|
|
14901
|
+
}
|
|
14902
|
+
|
|
14903
|
+
@builtins.property
|
|
14904
|
+
def fallback_behavior(self) -> builtins.str:
|
|
14905
|
+
'''The match status to assign to the web request if the request doesn't have a JA3 fingerprint.
|
|
14906
|
+
|
|
14907
|
+
You can specify the following fallback behaviors:
|
|
14908
|
+
|
|
14909
|
+
- ``MATCH`` - Treat the web request as matching the rule statement. AWS WAF applies the rule action to the request.
|
|
14910
|
+
- ``NO_MATCH`` - Treat the web request as not matching the rule statement.
|
|
14911
|
+
|
|
14912
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-ja3fingerprint.html#cfn-wafv2-webacl-ja3fingerprint-fallbackbehavior
|
|
14913
|
+
'''
|
|
14914
|
+
result = self._values.get("fallback_behavior")
|
|
14915
|
+
assert result is not None, "Required property 'fallback_behavior' is missing"
|
|
14916
|
+
return typing.cast(builtins.str, result)
|
|
14917
|
+
|
|
14918
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
14919
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
14920
|
+
|
|
14921
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
14922
|
+
return not (rhs == self)
|
|
14923
|
+
|
|
14924
|
+
def __repr__(self) -> str:
|
|
14925
|
+
return "JA3FingerprintProperty(%s)" % ", ".join(
|
|
14926
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
14927
|
+
)
|
|
14928
|
+
|
|
14519
14929
|
@jsii.data_type(
|
|
14520
14930
|
jsii_type="aws-cdk-lib.aws_wafv2.CfnWebACL.JsonBodyProperty",
|
|
14521
14931
|
jsii_struct_bases=[],
|
|
@@ -14546,7 +14956,7 @@ class CfnWebACL(
|
|
|
14546
14956
|
:param match_pattern: The patterns to look for in the JSON body. AWS WAF inspects the results of these pattern matches against the rule inspection criteria.
|
|
14547
14957
|
:param match_scope: The parts of the JSON to match against using the ``MatchPattern`` . If you specify ``ALL`` , AWS WAF matches against keys and values. ``All`` does not require a match to be found in the keys and a match to be found in the values. It requires a match to be found in the keys or the values or both. To require a match in the keys and in the values, use a logical ``AND`` statement to combine two match rules, one that inspects the keys and another that inspects the values.
|
|
14548
14958
|
:param invalid_fallback_behavior: What AWS WAF should do if it fails to completely parse the JSON body. The options are the following:. - ``EVALUATE_AS_STRING`` - Inspect the body as plain text. AWS WAF applies the text transformations and inspection criteria that you defined for the JSON inspection to the body text string. - ``MATCH`` - Treat the web request as matching the rule statement. AWS WAF applies the rule action to the request. - ``NO_MATCH`` - Treat the web request as not matching the rule statement. If you don't provide this setting, AWS WAF parses and evaluates the content only up to the first parsing failure that it encounters. AWS WAF does its best to parse the entire JSON body, but might be forced to stop for reasons such as invalid characters, duplicate keys, truncation, and any content whose root node isn't an object or an array. AWS WAF parses the JSON in the following examples as two valid key, value pairs: - Missing comma: ``{"key1":"value1""key2":"value2"}`` - Missing colon: ``{"key1":"value1","key2""value2"}`` - Extra colons: ``{"key1"::"value1","key2""value2"}``
|
|
14549
|
-
:param oversize_handling: What AWS WAF should do if the body is larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of the web request body if the body exceeds the limit for the resource type.
|
|
14959
|
+
:param oversize_handling: What AWS WAF should do if the body is larger than AWS WAF can inspect. AWS WAF does not support inspecting the entire contents of the web request body if the body exceeds the limit for the resource type. When a web request body is larger than the limit, the underlying host service only forwards the contents that are within the limit to AWS WAF for inspection. - For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes). - For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the web ACL ``AssociationConfig`` , for additional processing fees. The options for oversize handling are the following: - ``CONTINUE`` - Inspect the available body contents normally, according to the rule inspection criteria. - ``MATCH`` - Treat the web request as matching the rule statement. AWS WAF applies the rule action to the request. - ``NO_MATCH`` - Treat the web request as not matching the rule statement. You can combine the ``MATCH`` or ``NO_MATCH`` settings for oversize handling with your rule and web ACL action settings, so that you block any request whose body is over the limit. Default: ``CONTINUE``
|
|
14550
14960
|
|
|
14551
14961
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-jsonbody.html
|
|
14552
14962
|
:exampleMetadata: fixture=_generated
|
|
@@ -14641,9 +15051,10 @@ class CfnWebACL(
|
|
|
14641
15051
|
def oversize_handling(self) -> typing.Optional[builtins.str]:
|
|
14642
15052
|
'''What AWS WAF should do if the body is larger than AWS WAF can inspect.
|
|
14643
15053
|
|
|
14644
|
-
AWS WAF does not support inspecting the entire contents of the web request body if the body exceeds the limit for the resource type.
|
|
15054
|
+
AWS WAF does not support inspecting the entire contents of the web request body if the body exceeds the limit for the resource type. When a web request body is larger than the limit, the underlying host service only forwards the contents that are within the limit to AWS WAF for inspection.
|
|
14645
15055
|
|
|
14646
|
-
|
|
15056
|
+
- For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes).
|
|
15057
|
+
- For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default limit is 16 KB (16,384 bytes), and you can increase the limit for each resource type in the web ACL ``AssociationConfig`` , for additional processing fees.
|
|
14647
15058
|
|
|
14648
15059
|
The options for oversize handling are the following:
|
|
14649
15060
|
|
|
@@ -15804,6 +16215,7 @@ class CfnWebACL(
|
|
|
15804
16215
|
"aggregate_key_type": "aggregateKeyType",
|
|
15805
16216
|
"limit": "limit",
|
|
15806
16217
|
"custom_keys": "customKeys",
|
|
16218
|
+
"evaluation_window_sec": "evaluationWindowSec",
|
|
15807
16219
|
"forwarded_ip_config": "forwardedIpConfig",
|
|
15808
16220
|
"scope_down_statement": "scopeDownStatement",
|
|
15809
16221
|
},
|
|
@@ -15815,6 +16227,7 @@ class CfnWebACL(
|
|
|
15815
16227
|
aggregate_key_type: builtins.str,
|
|
15816
16228
|
limit: jsii.Number,
|
|
15817
16229
|
custom_keys: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.RateBasedStatementCustomKeyProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
|
|
16230
|
+
evaluation_window_sec: typing.Optional[jsii.Number] = None,
|
|
15818
16231
|
forwarded_ip_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.ForwardedIPConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
15819
16232
|
scope_down_statement: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.StatementProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
15820
16233
|
) -> None:
|
|
@@ -15864,6 +16277,7 @@ class CfnWebACL(
|
|
|
15864
16277
|
:param aggregate_key_type: Setting that indicates how to aggregate the request counts. .. epigraph:: Web requests that are missing any of the components specified in the aggregation keys are omitted from the rate-based rule evaluation and handling. - ``CONSTANT`` - Count and limit the requests that match the rate-based rule's scope-down statement. With this option, the counted requests aren't further aggregated. The scope-down statement is the only specification used. When the count of all requests that satisfy the scope-down statement goes over the limit, AWS WAF applies the rule action to all requests that satisfy the scope-down statement. With this option, you must configure the ``ScopeDownStatement`` property. - ``CUSTOM_KEYS`` - Aggregate the request counts using one or more web request components as the aggregate keys. With this option, you must specify the aggregate keys in the ``CustomKeys`` property. To aggregate on only the IP address or only the forwarded IP address, don't use custom keys. Instead, set the aggregate key type to ``IP`` or ``FORWARDED_IP`` . - ``FORWARDED_IP`` - Aggregate the request counts on the first IP address in an HTTP header. With this option, you must specify the header to use in the ``ForwardedIPConfig`` property. To aggregate on a combination of the forwarded IP address with other aggregate keys, use ``CUSTOM_KEYS`` . - ``IP`` - Aggregate the request counts on the IP address from the web request origin. To aggregate on a combination of the IP address with other aggregate keys, use ``CUSTOM_KEYS`` .
|
|
15865
16278
|
:param limit: The limit on requests per 5-minute period for a single aggregation instance for the rate-based rule. If the rate-based statement includes a ``ScopeDownStatement`` , this limit is applied only to the requests that match the statement. Examples: - If you aggregate on just the IP address, this is the limit on requests from any single IP address. - If you aggregate on the HTTP method and the query argument name "city", then this is the limit on requests for any single method, city pair.
|
|
15866
16279
|
:param custom_keys: Specifies the aggregate keys to use in a rate-base rule.
|
|
16280
|
+
:param evaluation_window_sec: The amount of time, in seconds, that AWS WAF should include in its request counts, looking back from the current time. For example, for a setting of 120, when AWS WAF checks the rate, it counts the requests for the 2 minutes immediately preceding the current time. Valid settings are 60, 120, 300, and 600. This setting doesn't determine how often AWS WAF checks the rate, but how far back it looks each time it checks. AWS WAF checks the rate about every 10 seconds. Default: ``300`` (5 minutes)
|
|
15867
16281
|
:param forwarded_ip_config: The configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin. Commonly, this is the X-Forwarded-For (XFF) header, but you can specify any header name. .. epigraph:: If the specified header isn't present in the request, AWS WAF doesn't apply the rule to the web request at all. This is required if you specify a forwarded IP in the rule's aggregate key settings.
|
|
15868
16282
|
:param scope_down_statement: An optional nested statement that narrows the scope of the web requests that are evaluated and managed by the rate-based statement. When you use a scope-down statement, the rate-based rule only tracks and rate limits requests that match the scope-down statement. You can use any nestable ``Statement`` in the scope-down statement, and you can nest statements at any level, the same as you can for a rule statement.
|
|
15869
16283
|
|
|
@@ -15879,6 +16293,7 @@ class CfnWebACL(
|
|
|
15879
16293
|
check_type(argname="argument aggregate_key_type", value=aggregate_key_type, expected_type=type_hints["aggregate_key_type"])
|
|
15880
16294
|
check_type(argname="argument limit", value=limit, expected_type=type_hints["limit"])
|
|
15881
16295
|
check_type(argname="argument custom_keys", value=custom_keys, expected_type=type_hints["custom_keys"])
|
|
16296
|
+
check_type(argname="argument evaluation_window_sec", value=evaluation_window_sec, expected_type=type_hints["evaluation_window_sec"])
|
|
15882
16297
|
check_type(argname="argument forwarded_ip_config", value=forwarded_ip_config, expected_type=type_hints["forwarded_ip_config"])
|
|
15883
16298
|
check_type(argname="argument scope_down_statement", value=scope_down_statement, expected_type=type_hints["scope_down_statement"])
|
|
15884
16299
|
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
@@ -15887,6 +16302,8 @@ class CfnWebACL(
|
|
|
15887
16302
|
}
|
|
15888
16303
|
if custom_keys is not None:
|
|
15889
16304
|
self._values["custom_keys"] = custom_keys
|
|
16305
|
+
if evaluation_window_sec is not None:
|
|
16306
|
+
self._values["evaluation_window_sec"] = evaluation_window_sec
|
|
15890
16307
|
if forwarded_ip_config is not None:
|
|
15891
16308
|
self._values["forwarded_ip_config"] = forwarded_ip_config
|
|
15892
16309
|
if scope_down_statement is not None:
|
|
@@ -15954,6 +16371,21 @@ class CfnWebACL(
|
|
|
15954
16371
|
result = self._values.get("custom_keys")
|
|
15955
16372
|
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnWebACL.RateBasedStatementCustomKeyProperty"]]]], result)
|
|
15956
16373
|
|
|
16374
|
+
@builtins.property
|
|
16375
|
+
def evaluation_window_sec(self) -> typing.Optional[jsii.Number]:
|
|
16376
|
+
'''The amount of time, in seconds, that AWS WAF should include in its request counts, looking back from the current time.
|
|
16377
|
+
|
|
16378
|
+
For example, for a setting of 120, when AWS WAF checks the rate, it counts the requests for the 2 minutes immediately preceding the current time. Valid settings are 60, 120, 300, and 600.
|
|
16379
|
+
|
|
16380
|
+
This setting doesn't determine how often AWS WAF checks the rate, but how far back it looks each time it checks. AWS WAF checks the rate about every 10 seconds.
|
|
16381
|
+
|
|
16382
|
+
Default: ``300`` (5 minutes)
|
|
16383
|
+
|
|
16384
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-ratebasedstatement.html#cfn-wafv2-webacl-ratebasedstatement-evaluationwindowsec
|
|
16385
|
+
'''
|
|
16386
|
+
result = self._values.get("evaluation_window_sec")
|
|
16387
|
+
return typing.cast(typing.Optional[jsii.Number], result)
|
|
16388
|
+
|
|
15957
16389
|
@builtins.property
|
|
15958
16390
|
def forwarded_ip_config(
|
|
15959
16391
|
self,
|
|
@@ -16488,6 +16920,9 @@ class CfnWebACL(
|
|
|
16488
16920
|
match_scope="matchScope",
|
|
16489
16921
|
oversize_handling="oversizeHandling"
|
|
16490
16922
|
),
|
|
16923
|
+
ja3_fingerprint=wafv2.CfnWebACL.JA3FingerprintProperty(
|
|
16924
|
+
fallback_behavior="fallbackBehavior"
|
|
16925
|
+
),
|
|
16491
16926
|
json_body=wafv2.CfnWebACL.JsonBodyProperty(
|
|
16492
16927
|
match_pattern=wafv2.CfnWebACL.JsonMatchPatternProperty(
|
|
16493
16928
|
all=all,
|
|
@@ -16639,6 +17074,9 @@ class CfnWebACL(
|
|
|
16639
17074
|
match_scope="matchScope",
|
|
16640
17075
|
oversize_handling="oversizeHandling"
|
|
16641
17076
|
),
|
|
17077
|
+
ja3_fingerprint=wafv2.CfnWebACL.JA3FingerprintProperty(
|
|
17078
|
+
fallback_behavior="fallbackBehavior"
|
|
17079
|
+
),
|
|
16642
17080
|
json_body=wafv2.CfnWebACL.JsonBodyProperty(
|
|
16643
17081
|
match_pattern=wafv2.CfnWebACL.JsonMatchPatternProperty(
|
|
16644
17082
|
all=all,
|
|
@@ -16727,16 +17165,20 @@ class CfnWebACL(
|
|
|
16727
17165
|
)
|
|
16728
17166
|
class RequestBodyAssociatedResourceTypeConfigProperty:
|
|
16729
17167
|
def __init__(self, *, default_size_inspection_limit: builtins.str) -> None:
|
|
16730
|
-
'''Customizes the maximum size of the request body that your protected CloudFront
|
|
17168
|
+
'''Customizes the maximum size of the request body that your protected CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access resources forward to AWS WAF for inspection.
|
|
16731
17169
|
|
|
16732
|
-
The default size is 16 KB (16,384 bytes).
|
|
17170
|
+
The default size is 16 KB (16,384 bytes). You can change the setting for any of the available resource types.
|
|
16733
17171
|
.. epigraph::
|
|
16734
17172
|
|
|
16735
17173
|
You are charged additional fees when your protected resources forward body sizes that are larger than the default. For more information, see `AWS WAF Pricing <https://docs.aws.amazon.com/waf/pricing/>`_ .
|
|
16736
17174
|
|
|
17175
|
+
Example JSON: ``{ "API_GATEWAY": "KB_48", "APP_RUNNER_SERVICE": "KB_32" }``
|
|
17176
|
+
|
|
17177
|
+
For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes).
|
|
17178
|
+
|
|
16737
17179
|
This is used in the ``AssociationConfig`` of the web ACL.
|
|
16738
17180
|
|
|
16739
|
-
:param default_size_inspection_limit: Specifies the maximum size of the web request body component that an associated CloudFront
|
|
17181
|
+
:param default_size_inspection_limit: Specifies the maximum size of the web request body component that an associated CloudFront, API Gateway, Amazon Cognito, App Runner, or Verified Access resource should send to AWS WAF for inspection. This applies to statements in the web ACL that inspect the body or JSON body. Default: ``16 KB (16,384 bytes)``
|
|
16740
17182
|
|
|
16741
17183
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-requestbodyassociatedresourcetypeconfig.html
|
|
16742
17184
|
:exampleMetadata: fixture=_generated
|
|
@@ -16760,7 +17202,7 @@ class CfnWebACL(
|
|
|
16760
17202
|
|
|
16761
17203
|
@builtins.property
|
|
16762
17204
|
def default_size_inspection_limit(self) -> builtins.str:
|
|
16763
|
-
'''Specifies the maximum size of the web request body component that an associated CloudFront
|
|
17205
|
+
'''Specifies the maximum size of the web request body component that an associated CloudFront, API Gateway, Amazon Cognito, App Runner, or Verified Access resource should send to AWS WAF for inspection.
|
|
16764
17206
|
|
|
16765
17207
|
This applies to statements in the web ACL that inspect the body or JSON body.
|
|
16766
17208
|
|
|
@@ -18487,7 +18929,7 @@ class CfnWebACL(
|
|
|
18487
18929
|
|
|
18488
18930
|
For example, you can use a size constraint statement to look for query strings that are longer than 100 bytes.
|
|
18489
18931
|
|
|
18490
|
-
If you configure AWS WAF to inspect the request body, AWS WAF inspects only the number of bytes
|
|
18932
|
+
If you configure AWS WAF to inspect the request body, AWS WAF inspects only the number of bytes in the body up to the limit for the web ACL and protected resource type. If you know that the request body for your web requests should never exceed the inspection limit, you can use a size constraint statement to block requests that have a larger request body size. For more information about the inspection limits, see ``Body`` and ``JsonBody`` settings for the ``FieldToMatch`` data type.
|
|
18491
18933
|
|
|
18492
18934
|
If you choose URI for the value of Part of the request to filter on, the slash (/) in the URI counts as one character. For example, the URI ``/logo.jpg`` is nine characters long.
|
|
18493
18935
|
|
|
@@ -18538,6 +18980,9 @@ class CfnWebACL(
|
|
|
18538
18980
|
match_scope="matchScope",
|
|
18539
18981
|
oversize_handling="oversizeHandling"
|
|
18540
18982
|
),
|
|
18983
|
+
ja3_fingerprint=wafv2.CfnWebACL.JA3FingerprintProperty(
|
|
18984
|
+
fallback_behavior="fallbackBehavior"
|
|
18985
|
+
),
|
|
18541
18986
|
json_body=wafv2.CfnWebACL.JsonBodyProperty(
|
|
18542
18987
|
match_pattern=wafv2.CfnWebACL.JsonMatchPatternProperty(
|
|
18543
18988
|
all=all,
|
|
@@ -18698,6 +19143,9 @@ class CfnWebACL(
|
|
|
18698
19143
|
match_scope="matchScope",
|
|
18699
19144
|
oversize_handling="oversizeHandling"
|
|
18700
19145
|
),
|
|
19146
|
+
ja3_fingerprint=wafv2.CfnWebACL.JA3FingerprintProperty(
|
|
19147
|
+
fallback_behavior="fallbackBehavior"
|
|
19148
|
+
),
|
|
18701
19149
|
json_body=wafv2.CfnWebACL.JsonBodyProperty(
|
|
18702
19150
|
match_pattern=wafv2.CfnWebACL.JsonMatchPatternProperty(
|
|
18703
19151
|
all=all,
|
|
@@ -18843,7 +19291,7 @@ class CfnWebACL(
|
|
|
18843
19291
|
:param regex_match_statement: A rule statement used to search web request components for a match against a single regular expression.
|
|
18844
19292
|
:param regex_pattern_set_reference_statement: A rule statement used to search web request components for matches with regular expressions. To use this, create a ``RegexPatternSet`` that specifies the expressions that you want to detect, then use the ARN of that set in this statement. A web request matches the pattern set rule statement if the request component matches any of the patterns in the set. Each regex pattern set rule statement references a regex pattern set. You create and maintain the set independent of your rules. This allows you to use the single set in multiple rules. When you update the referenced set, AWS WAF automatically updates all rules that reference it.
|
|
18845
19293
|
:param rule_group_reference_statement: A rule statement used to run the rules that are defined in a ``RuleGroup`` . To use this, create a rule group with your rules, then provide the ARN of the rule group in this statement. You cannot nest a ``RuleGroupReferenceStatement`` , for example for use inside a ``NotStatement`` or ``OrStatement`` . You cannot use a rule group reference statement inside another rule group. You can only reference a rule group as a top-level statement within a rule that you define in a web ACL.
|
|
18846
|
-
:param size_constraint_statement: A rule statement that compares a number of bytes against the size of a request component, using a comparison operator, such as greater than (>) or less than (<). For example, you can use a size constraint statement to look for query strings that are longer than 100 bytes. If you configure AWS WAF to inspect the request body, AWS WAF inspects only the number of bytes
|
|
19294
|
+
:param size_constraint_statement: A rule statement that compares a number of bytes against the size of a request component, using a comparison operator, such as greater than (>) or less than (<). For example, you can use a size constraint statement to look for query strings that are longer than 100 bytes. If you configure AWS WAF to inspect the request body, AWS WAF inspects only the number of bytes in the body up to the limit for the web ACL and protected resource type. If you know that the request body for your web requests should never exceed the inspection limit, you can use a size constraint statement to block requests that have a larger request body size. For more information about the inspection limits, see ``Body`` and ``JsonBody`` settings for the ``FieldToMatch`` data type. If you choose URI for the value of Part of the request to filter on, the slash (/) in the URI counts as one character. For example, the URI ``/logo.jpg`` is nine characters long.
|
|
18847
19295
|
:param sqli_match_statement: A rule statement that inspects for malicious SQL code. Attackers insert malicious SQL code into web requests to do things like modify your database or extract data from it.
|
|
18848
19296
|
:param xss_match_statement: A rule statement that inspects for cross-site scripting (XSS) attacks. In XSS attacks, the attacker uses vulnerabilities in a benign website as a vehicle to inject malicious client-site scripts into other legitimate web browsers.
|
|
18849
19297
|
|
|
@@ -19126,7 +19574,7 @@ class CfnWebACL(
|
|
|
19126
19574
|
|
|
19127
19575
|
For example, you can use a size constraint statement to look for query strings that are longer than 100 bytes.
|
|
19128
19576
|
|
|
19129
|
-
If you configure AWS WAF to inspect the request body, AWS WAF inspects only the number of bytes
|
|
19577
|
+
If you configure AWS WAF to inspect the request body, AWS WAF inspects only the number of bytes in the body up to the limit for the web ACL and protected resource type. If you know that the request body for your web requests should never exceed the inspection limit, you can use a size constraint statement to block requests that have a larger request body size. For more information about the inspection limits, see ``Body`` and ``JsonBody`` settings for the ``FieldToMatch`` data type.
|
|
19130
19578
|
|
|
19131
19579
|
If you choose URI for the value of Part of the request to filter on, the slash (/) in the URI counts as one character. For example, the URI ``/logo.jpg`` is nine characters long.
|
|
19132
19580
|
|
|
@@ -19261,7 +19709,7 @@ class CfnWebACL(
|
|
|
19261
19709
|
|
|
19262
19710
|
:param cloud_watch_metrics_enabled: Indicates whether the associated resource sends metrics to Amazon CloudWatch. For the list of available metrics, see `AWS WAF Metrics <https://docs.aws.amazon.com/waf/latest/developerguide/monitoring-cloudwatch.html#waf-metrics>`_ in the *AWS WAF Developer Guide* . For web ACLs, the metrics are for web requests that have the web ACL default action applied. AWS WAF applies the default action to web requests that pass the inspection of all rules in the web ACL without being either allowed or blocked. For more information, see `The web ACL default action <https://docs.aws.amazon.com/waf/latest/developerguide/web-acl-default-action.html>`_ in the *AWS WAF Developer Guide* .
|
|
19263
19711
|
:param metric_name: A name of the Amazon CloudWatch metric dimension. The name can contain only the characters: A-Z, a-z, 0-9, - (hyphen), and _ (underscore). The name can be from one to 128 characters long. It can't contain whitespace or metric names that are reserved for AWS WAF , for example ``All`` and ``Default_Action`` .
|
|
19264
|
-
:param sampled_requests_enabled: Indicates whether AWS WAF should store a sampling of the web requests that match the rules. You can view the sampled requests through the AWS WAF console.
|
|
19712
|
+
:param sampled_requests_enabled: Indicates whether AWS WAF should store a sampling of the web requests that match the rules. You can view the sampled requests through the AWS WAF console. .. epigraph:: Request sampling doesn't provide a field redaction option, and any field redaction that you specify in your logging configuration doesn't affect sampling. The only way to exclude fields from request sampling is by disabling sampling in the web ACL visibility configuration.
|
|
19265
19713
|
|
|
19266
19714
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-visibilityconfig.html
|
|
19267
19715
|
:exampleMetadata: fixture=_generated
|
|
@@ -19325,6 +19773,9 @@ class CfnWebACL(
|
|
|
19325
19773
|
'''Indicates whether AWS WAF should store a sampling of the web requests that match the rules.
|
|
19326
19774
|
|
|
19327
19775
|
You can view the sampled requests through the AWS WAF console.
|
|
19776
|
+
.. epigraph::
|
|
19777
|
+
|
|
19778
|
+
Request sampling doesn't provide a field redaction option, and any field redaction that you specify in your logging configuration doesn't affect sampling. The only way to exclude fields from request sampling is by disabling sampling in the web ACL visibility configuration.
|
|
19328
19779
|
|
|
19329
19780
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-visibilityconfig.html#cfn-wafv2-webacl-visibilityconfig-sampledrequestsenabled
|
|
19330
19781
|
'''
|
|
@@ -19406,6 +19857,9 @@ class CfnWebACL(
|
|
|
19406
19857
|
match_scope="matchScope",
|
|
19407
19858
|
oversize_handling="oversizeHandling"
|
|
19408
19859
|
),
|
|
19860
|
+
ja3_fingerprint=wafv2.CfnWebACL.JA3FingerprintProperty(
|
|
19861
|
+
fallback_behavior="fallbackBehavior"
|
|
19862
|
+
),
|
|
19409
19863
|
json_body=wafv2.CfnWebACL.JsonBodyProperty(
|
|
19410
19864
|
match_pattern=wafv2.CfnWebACL.JsonMatchPatternProperty(
|
|
19411
19865
|
all=all,
|
|
@@ -19730,7 +20184,7 @@ class CfnWebACLProps:
|
|
|
19730
20184
|
:param default_action: The action to perform if none of the ``Rules`` contained in the ``WebACL`` match.
|
|
19731
20185
|
:param scope: Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AWS AppSync GraphQL API, an Amazon Cognito user pool, an AWS App Runner service, or an AWS Verified Access instance. Valid Values are ``CLOUDFRONT`` and ``REGIONAL`` . .. epigraph:: For ``CLOUDFRONT`` , you must create your WAFv2 resources in the US East (N. Virginia) Region, ``us-east-1`` . For information about how to define the association of the web ACL with your resource, see ``WebACLAssociation`` .
|
|
19732
20186
|
:param visibility_config: Defines and enables Amazon CloudWatch metrics and web request sample collection.
|
|
19733
|
-
:param association_config: Specifies custom configurations for the associations between the web ACL and protected resources. Use this to customize the maximum size of the request body that your protected
|
|
20187
|
+
:param association_config: Specifies custom configurations for the associations between the web ACL and protected resources. Use this to customize the maximum size of the request body that your protected resources forward to AWS WAF for inspection. You can customize this setting for CloudFront, API Gateway, Amazon Cognito, App Runner, or Verified Access resources. The default setting is 16 KB (16,384 bytes). .. epigraph:: You are charged additional fees when your protected resources forward body sizes that are larger than the default. For more information, see `AWS WAF Pricing <https://docs.aws.amazon.com/waf/pricing/>`_ . For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes).
|
|
19734
20188
|
:param captcha_config: Specifies how AWS WAF should handle ``CAPTCHA`` evaluations for rules that don't have their own ``CaptchaConfig`` settings. If you don't specify this, AWS WAF uses its default settings for ``CaptchaConfig`` .
|
|
19735
20189
|
:param challenge_config: Specifies how AWS WAF should handle challenge evaluations for rules that don't have their own ``ChallengeConfig`` settings. If you don't specify this, AWS WAF uses its default settings for ``ChallengeConfig`` .
|
|
19736
20190
|
:param custom_response_bodies: A map of custom response keys and content bodies. When you create a rule with a block action, you can send a custom response to the web request. You define these for the web ACL, and then use them in the rules and default actions that you define in the web ACL. For information about customizing web requests and responses, see `Customizing web requests and responses in AWS WAF <https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html>`_ in the *AWS WAF Developer Guide* . For information about the limits on count and size for custom request and response settings, see `AWS WAF quotas <https://docs.aws.amazon.com/waf/latest/developerguide/limits.html>`_ in the *AWS WAF Developer Guide* .
|
|
@@ -19832,11 +20286,13 @@ class CfnWebACLProps:
|
|
|
19832
20286
|
) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnWebACL.AssociationConfigProperty]]:
|
|
19833
20287
|
'''Specifies custom configurations for the associations between the web ACL and protected resources.
|
|
19834
20288
|
|
|
19835
|
-
Use this to customize the maximum size of the request body that your protected
|
|
20289
|
+
Use this to customize the maximum size of the request body that your protected resources forward to AWS WAF for inspection. You can customize this setting for CloudFront, API Gateway, Amazon Cognito, App Runner, or Verified Access resources. The default setting is 16 KB (16,384 bytes).
|
|
19836
20290
|
.. epigraph::
|
|
19837
20291
|
|
|
19838
20292
|
You are charged additional fees when your protected resources forward body sizes that are larger than the default. For more information, see `AWS WAF Pricing <https://docs.aws.amazon.com/waf/pricing/>`_ .
|
|
19839
20293
|
|
|
20294
|
+
For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes).
|
|
20295
|
+
|
|
19840
20296
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-webacl.html#cfn-wafv2-webacl-associationconfig
|
|
19841
20297
|
'''
|
|
19842
20298
|
result = self._values.get("association_config")
|
|
@@ -20464,6 +20920,7 @@ def _typecheckingstub__dcb790c3130e52c64e6b7cf00db86b37d1b54427689c46b6c9e6a7122
|
|
|
20464
20920
|
body: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRuleGroup.BodyProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
20465
20921
|
cookies: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRuleGroup.CookiesProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
20466
20922
|
headers: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRuleGroup.HeadersProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
20923
|
+
ja3_fingerprint: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRuleGroup.JA3FingerprintProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
20467
20924
|
json_body: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRuleGroup.JsonBodyProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
20468
20925
|
method: typing.Any = None,
|
|
20469
20926
|
query_string: typing.Any = None,
|
|
@@ -20532,6 +20989,13 @@ def _typecheckingstub__f31a0b3f57889411d82cd445b651ca6964104416a165d4f1341a7386e
|
|
|
20532
20989
|
"""Type checking stubs"""
|
|
20533
20990
|
pass
|
|
20534
20991
|
|
|
20992
|
+
def _typecheckingstub__1cba50229767598d7603bfa317a8bd11cfc2b12ca28d38737119d57d5d04667d(
|
|
20993
|
+
*,
|
|
20994
|
+
fallback_behavior: builtins.str,
|
|
20995
|
+
) -> None:
|
|
20996
|
+
"""Type checking stubs"""
|
|
20997
|
+
pass
|
|
20998
|
+
|
|
20535
20999
|
def _typecheckingstub__602ab3bf019e524b1f85e0a2cdb3225626316719b294dfa66fcfd8b7fc9e7a09(
|
|
20536
21000
|
*,
|
|
20537
21001
|
match_pattern: typing.Union[_IResolvable_da3f097b, typing.Union[CfnRuleGroup.JsonMatchPatternProperty, typing.Dict[builtins.str, typing.Any]]],
|
|
@@ -20606,6 +21070,7 @@ def _typecheckingstub__39e60064f8f4286866d2fa7f3c5494f2a2f33a4179f5370836b825ab3
|
|
|
20606
21070
|
aggregate_key_type: builtins.str,
|
|
20607
21071
|
limit: jsii.Number,
|
|
20608
21072
|
custom_keys: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRuleGroup.RateBasedStatementCustomKeyProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
|
|
21073
|
+
evaluation_window_sec: typing.Optional[jsii.Number] = None,
|
|
20609
21074
|
forwarded_ip_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRuleGroup.ForwardedIPConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
20610
21075
|
scope_down_statement: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRuleGroup.StatementProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
20611
21076
|
) -> None:
|
|
@@ -21085,6 +21550,7 @@ def _typecheckingstub__25d147c856e9a8fd64f4cc05856e4813e584f37ef787792ad3c4e0790
|
|
|
21085
21550
|
body: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.BodyProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
21086
21551
|
cookies: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.CookiesProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
21087
21552
|
headers: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.HeadersProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
21553
|
+
ja3_fingerprint: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.JA3FingerprintProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
21088
21554
|
json_body: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.JsonBodyProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
21089
21555
|
method: typing.Any = None,
|
|
21090
21556
|
query_string: typing.Any = None,
|
|
@@ -21153,6 +21619,13 @@ def _typecheckingstub__4ebec44af1e8d72b72f8c361dc8efc545a044cf914ee07c895cf4c1d1
|
|
|
21153
21619
|
"""Type checking stubs"""
|
|
21154
21620
|
pass
|
|
21155
21621
|
|
|
21622
|
+
def _typecheckingstub__129b51143b193ce4679091a559f9a4073c03a2bccc1ccb884fe1b4dd3856119e(
|
|
21623
|
+
*,
|
|
21624
|
+
fallback_behavior: builtins.str,
|
|
21625
|
+
) -> None:
|
|
21626
|
+
"""Type checking stubs"""
|
|
21627
|
+
pass
|
|
21628
|
+
|
|
21156
21629
|
def _typecheckingstub__b371d01e6e192e377c25d061f5a40b73b3aca7d15781a83f612151eddebe6fa2(
|
|
21157
21630
|
*,
|
|
21158
21631
|
match_pattern: typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.JsonMatchPatternProperty, typing.Dict[builtins.str, typing.Any]]],
|
|
@@ -21254,6 +21727,7 @@ def _typecheckingstub__d49b8cc0c82261f5510afab04b955c5ca035f3eea109c82126189a502
|
|
|
21254
21727
|
aggregate_key_type: builtins.str,
|
|
21255
21728
|
limit: jsii.Number,
|
|
21256
21729
|
custom_keys: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.RateBasedStatementCustomKeyProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
|
|
21730
|
+
evaluation_window_sec: typing.Optional[jsii.Number] = None,
|
|
21257
21731
|
forwarded_ip_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.ForwardedIPConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
21258
21732
|
scope_down_statement: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.StatementProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
21259
21733
|
) -> None:
|