AWS::WAFv2::WebACLAssociation - Amazon CloudFormation
Services or capabilities described in Amazon Web Services documentation might vary by Region. To see the differences applicable to the China Regions, see Getting Started with Amazon Web Services in China (PDF).

AWS::WAFv2::WebACLAssociation

Note

This is the latest version of Amazon WAF, named Amazon WAFV2, released in November, 2019. For information, including how to migrate your Amazon WAF resources from the prior release, see the Amazon WAF Developer Guide.

Use a web ACL association to define an association between a web ACL and a regional application resource, to protect the resource. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an Amazon AppSync GraphQL API, an Amazon Cognito user pool, or an Amazon App Runner service.

For Amazon CloudFront, don't use this resource. Instead, use your CloudFront distribution configuration. To associate a web ACL with a distribution, provide the Amazon Resource Name (ARN) of the AWS::WAFv2::WebACL to your CloudFront distribution configuration. To disassociate a web ACL, provide an empty ARN. For information, see AWS::CloudFront::Distribution.

When you create a web ACL or make changes to a web ACL or web ACL components, like rules and rule groups, Amazon WAF propagates the changes everywhere that the web ACL and its components are stored and used. Your changes are applied within seconds, but there might be a brief period of inconsistency when the changes have arrived in some places and not in others. So, for example, if you change a rule action setting, the action might be the old action in one area and the new action in another area. Or if you add an IP address to an IP set used in a blocking rule, the new address might briefly be blocked in one area while still allowed in another. This temporary inconsistency can occur when you first associate a web ACL with an Amazon resource and when you change a web ACL that is already associated with a resource. Generally, any inconsistencies of this type last only a few seconds.

Syntax

To declare this entity in your Amazon CloudFormation template, use the following syntax:

JSON

{ "Type" : "AWS::WAFv2::WebACLAssociation", "Properties" : { "ResourceArn" : String, "WebACLArn" : String } }

YAML

Type: AWS::WAFv2::WebACLAssociation Properties: ResourceArn: String WebACLArn: String

Properties

ResourceArn

The Amazon Resource Name (ARN) of the resource to associate with the web ACL.

The ARN must be in one of the following formats:

  • For an Application Load Balancer: arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id

  • For an Amazon API Gateway REST API: arn:aws:apigateway:region::/restapis/api-id/stages/stage-name

  • For an Amazon AppSync GraphQL API: arn:aws:appsync:region:account-id:apis/GraphQLApiId

  • For an Amazon Cognito user pool: arn:aws:cognito-idp:region:account-id:userpool/user-pool-id

  • For an Amazon App Runner service: arn:aws:apprunner:region:account-id:service/apprunner-service-name/apprunner-service-id

Required: Yes

Type: String

Minimum: 20

Maximum: 2048

Pattern: .*\S.*

Update requires: Replacement

WebACLArn

The Amazon Resource Name (ARN) of the web ACL that you want to associate with the resource.

Required: Yes

Type: String

Minimum: 20

Maximum: 2048

Pattern: .*\S.*

Update requires: Replacement

Return values

Ref

The Ref for the resource, containing the resource name, physical ID, and scope, formatted as follows: name|id|scope.

For example: my-webacl-name|1234a1a-a1b1-12a1-abcd-a123b123456|REGIONAL.

Examples

Create a web ACL association

The following shows an example web ACL association specification.

YAML

SampleWebACLAssociation: Type: 'AWS::WAFv2::WebACLAssociation' Properties: WebACLArn: ExampleARNForWebACL ResourceArn: ExampleARNForRegionalResource

JSON

"SampleWebACLAssociation": { "Type": "AWS::WAFv2::WebACLAssociation", "Properties": { "WebACLArn": "WebACLArn", "ResourceArn": "APIGatewayOrALBArn" } }