Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/geekcell/terraform-aws-waf

Terraform module to provision an AWS Web Application Firewall.
https://github.com/geekcell/terraform-aws-waf

aws firewall security terraform terraform-module waf web-application-firewall

Last synced: 17 days ago
JSON representation

Terraform module to provision an AWS Web Application Firewall.

Awesome Lists containing this project

README

        

[![Geek Cell GmbH](https://raw.githubusercontent.com/geekcell/.github/main/geekcell-github-banner.png)](https://www.geekcell.io/)

### Code Quality
[![License](https://img.shields.io/github/license/geekcell/terraform-aws-waf)](https://github.com/geekcell/terraform-aws-waf/blob/master/LICENSE)
[![GitHub release (latest tag)](https://img.shields.io/github/v/release/geekcell/terraform-aws-waf?logo=github&sort=semver)](https://github.com/geekcell/terraform-aws-waf/releases)
[![Release](https://github.com/geekcell/terraform-aws-waf/actions/workflows/release.yaml/badge.svg)](https://github.com/geekcell/terraform-aws-waf/actions/workflows/release.yaml)
[![Validate](https://github.com/geekcell/terraform-aws-waf/actions/workflows/validate.yaml/badge.svg)](https://github.com/geekcell/terraform-aws-waf/actions/workflows/validate.yaml)
[![Lint](https://github.com/geekcell/terraform-aws-waf/actions/workflows/linter.yaml/badge.svg)](https://github.com/geekcell/terraform-aws-waf/actions/workflows/linter.yaml)

# Terraform AWS WAF

This Terraform module provides a preconfigured solution for setting up
AWS WAF in your AWS account. AWS WAF is a web application firewall that
helps protect your web applications from common web exploits that could
affect application availability, compromise security, or consume excessive
resources. With this Terraform module, you can easily and efficiently set
up and manage AWS WAF for your Load Balancer, API Gateway, or Cognito
User Pool.

## Inputs

| Name | Description | Type | Default | Required |
|------|-------------|------|---------|:--------:|
| [name](#input\_name) | Friendly name of the rule. | `string` | n/a | yes |
| [rate\_limit\_positional\_constraint](#input\_rate\_limit\_positional\_constraint) | The area within the portion of a web request that you want AWS WAF to search for rate limiting headers. Valid values: EXACTLY, STARTS\_WITH, ENDS\_WITH, CONTAINS, and CONTAINS\_WORD. The default value is EXACTLY. | `string` | `"STARTS_WITH"` | no |
| [rate\_limit\_search\_string](#input\_rate\_limit\_search\_string) | String value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in field\_to\_match. The maximum length of the value is 50 bytes. | `string` | `"/api"` | no |
| [resource\_arn](#input\_resource\_arn) | The Amazon Resource Name (ARN) of the resource to associate with the web ACL. This must be an ARN of an Application Load Balancer, an Amazon API Gateway stage, or an Amazon Cognito User Pool. | `string` | n/a | yes |
| [tags](#input\_tags) | Tags to add to the Resources. | `map(any)` | `{}` | no |

## Outputs

No outputs.

## Providers

| Name | Version |
|------|---------|
| [aws](#provider\_aws) | >= 5.0, < 6.0 |

## Resources

- resource.aws_wafv2_ip_set.ip_blocking (main.tf#291)
- resource.aws_wafv2_web_acl.main (main.tf#12)
- resource.aws_wafv2_web_acl_association.main (main.tf#309)

# Examples
### Basic Example
```hcl
module "example" {
source = "../../"
name = "waf"
resource_arn = "arn:aws:elasticloadbalancing:eu-central-1:123456789012:loadbalancer/app/my-load-balancer/1234567890123456"
}
```