---
id: "aws-waf"
type: "component"
kind: "waf"
provider: "aws"
category: "security"
aliases: "WAF"
docs: "https://docs.aws.amazon.com/waf/latest/developerguide/what-is-aws-waf.html"
url: "https://localhost:3000/catalogue/components/aws-waf"
---

# AWS WAF web ACL

Web application firewall that inspects HTTP and HTTPS requests to CloudFront, API Gateway, load balancers and other AWS front doors.

| | |
|---|---|
| Provider | [aws](https://localhost:3000/catalogue?provider=aws) |
| Kind | [Web application firewall](https://localhost:3000/catalogue/kinds/waf) |
| Category | Security |
| Official docs | [https://docs.aws.amazon.com/waf/latest/developerguide/what-is-aws-waf.html](https://docs.aws.amazon.com/waf/latest/developerguide/what-is-aws-waf.html) |

## Properties

| property | type | values | required | kind default | this component |
|---|---|---|---|---|---|
| `bodyInspectionLimitKb` | integer | — | no | 16 | inherited |
| `botProtection` | boolean | — | no | — | **false** |
| `customRuleCount` | integer | — | no | — | inherited |
| `defaultAction` | enum | `allow`, `block` | no | — | inherited |
| `logging` | boolean | — | no | false | inherited |
| `managed` | boolean | — | no | false | **true** |
| `managedRuleSet` | string | — | no | — | inherited |
| `mode` | enum | `detection`, `prevention`, `off` | no | — | **"prevention"** |
| `rateLimiting` | boolean | — | no | — | **false** |
| `scope` | enum | `cloudfront`, `regional` | no | — | inherited |
| `webAclCapacityUnits` | integer | — | no | 5000 | inherited |

Bold values are the ones this component pins.

## Rules that apply · 0

No rule selects this kind or its category.

## Other products of the same kind · 13

- [Web Application Firewall](https://localhost:3000/catalogue/components/alibaba-waf.md) `alibaba-waf` — alibabacloud
- [AWS WAF Classic](https://localhost:3000/catalogue/components/aws-waf-classic.md) `aws-waf-classic` — aws
- [Azure Web Application Firewall](https://localhost:3000/catalogue/components/azure-web-application-firewall.md) `azure-web-application-firewall` — azure
- [Firewall for AI](https://localhost:3000/catalogue/components/cloudflare-firewall-for-ai.md) `cloudflare-firewall-for-ai` — cloudflare
- [Cloudflare WAF](https://localhost:3000/catalogue/components/cloudflare-waf.md) `cloudflare-waf` — cloudflare
- [Coraza](https://localhost:3000/catalogue/components/coraza.md) `coraza` — default
- [Imperva Application Security](https://localhost:3000/catalogue/components/imperva.md) `imperva` — default
- [ModSecurity](https://localhost:3000/catalogue/components/modsecurity.md) `modsecurity` — default
- [NAXSI](https://localhost:3000/catalogue/components/naxsi.md) `naxsi` — default
- [Generic web application firewall](https://localhost:3000/catalogue/components/waf.md) `waf` — default
- [Google Cloud Armor](https://localhost:3000/catalogue/components/google-cloud-armor.md) `google-cloud-armor` — gcp
- [reCAPTCHA Enterprise](https://localhost:3000/catalogue/components/google-recaptcha-enterprise.md) `google-recaptcha-enterprise` — gcp
- [Web Application Firewall](https://localhost:3000/catalogue/components/oci-waf.md) `oci-waf` — oci

## Use it in a design

```yaml
nodes:
  - { id: "aws-waf", component: "aws-waf" }
```

## Source (`component` YAML, verbatim)

```yaml
# yaml-language-server: $schema=../../schema/component.schema.json
# AWS WAF web ACL: managed layer-7 firewall for HTTP/HTTPS requests to CloudFront, API Gateway,
# Application Load Balancer, AppSync, Cognito, App Runner and Verified Access; rule actions are
# terminating and the web ACL default action must be Allow or Block ("What is AWS WAF?",
# "Setting the protection pack (web ACL) default action in AWS WAF"). Bot Control and rate-based rules
# are opt-in, logging is opt-in, capacity is 5,000 WCUs and the body inspection limit is 16 KB by
# default for CloudFront and API Gateway ("AWS WAF quotas").
schemaVersion: "1"
type: "component"
id: "aws-waf"
kind: "waf"
provider: "aws"
docs: "https://docs.aws.amazon.com/waf/latest/developerguide/what-is-aws-waf.html"
aliases: ["WAF"]
defaults:
  managed: true
  mode: "prevention"
  botProtection: false
  rateLimiting: false
properties:
  defaultAction:
    type: "enum"
    values: ["allow", "block"]
  webAclCapacityUnits:
    type: "integer"
    default: 5000
  bodyInspectionLimitKb:
    type: "integer"
    default: 16
  logging:
    type: "boolean"
    default: false
  scope:
    type: "enum"
    values: ["cloudfront", "regional"]
```

Human page: https://localhost:3000/catalogue/components/aws-waf
