Skip to content
GitHubXDiscord

SizeConstraintSet

The SizeConstraintSet resource allows you to define a set of size constraints for AWS WAF, which can be used to filter out web requests based on the size of specific parts of the request. This is crucial for protecting your applications from various types of attacks and ensuring performance. For more information, see the AWS WAF SizeConstraintSets documentation.

Create a basic SizeConstraintSet with required properties and one optional property for adoption.

import AWS from "alchemy/aws/control";
const sizeConstraintSet = await AWS.WAF.SizeConstraintSet("basicSizeConstraintSet", {
Name: "MySizeConstraintSet",
SizeConstraints: [
{
ComparisonOperator: "GT",
Size: 1000,
FieldToMatch: {
Type: "BODY"
},
TextTransformation: "NONE"
}
],
adopt: true // Optionally adopt existing resource
});

Configure a SizeConstraintSet with multiple size constraints for different parts of the request.

const advancedSizeConstraintSet = await AWS.WAF.SizeConstraintSet("advancedSizeConstraintSet", {
Name: "AdvancedSizeConstraintSet",
SizeConstraints: [
{
ComparisonOperator: "LE",
Size: 5000,
FieldToMatch: {
Type: "HEADER",
Data: "User-Agent"
},
TextTransformation: "NONE"
},
{
ComparisonOperator: "EQ",
Size: 300,
FieldToMatch: {
Type: "QUERY_STRING"
},
TextTransformation: "LOWERCASE"
}
]
});

Create a SizeConstraintSet to enforce size limits on both headers and body.

const multiConditionSizeConstraintSet = await AWS.WAF.SizeConstraintSet("multiConditionSizeConstraintSet", {
Name: "MultiConditionSizeConstraintSet",
SizeConstraints: [
{
ComparisonOperator: "GT",
Size: 2000,
FieldToMatch: {
Type: "BODY"
},
TextTransformation: "NONE"
},
{
ComparisonOperator: "EQ",
Size: 150,
FieldToMatch: {
Type: "HEADER",
Data: "Content-Length"
},
TextTransformation: "NONE"
}
]
});