# WAF Web ACL

## 리소스 유형

`AWS.WAF.WebACL`, `AWS.WAF.Regional.WebACL`

## 리소스 ID 형식

WAF Web ACL의 경우 리소스 ID는 ARN입니다.

`arn:aws:waf::123456789012:webacl/1`

`arn:aws:waf-regional:us-west-2:123456789012:webacl/1`

## 배경

웹 액세스 제어 목록(web ACL)은 Amazon API Gateway API, Amazon CloudFront 배포 또는 Application Load Balancer가 응답하는 웹 요청에 대해 세밀한 제어를 제공합니다. 글로벌 Web ACL은 CloudFront와 API Gateway에 적용됩니다. 리전 Web ACL은 로드 밸런서에 적용됩니다.

WAF 리전 ACL과 글로벌 ACL은 동일한 방식으로 표현되며, 올바른 범위에 대한 룰을 작성하는 데 도움이 되도록 구분합니다.

## 필드

[WebACL 참조](https://docs.aws.amazon.com/waf/latest/APIReference/API_waf_WebACL.html)

| 필드       | 유형    | 설명                                           |
| -------- | ----- | -------------------------------------------- |
| `룰`      | `목록`  | WebACL이 적용하는 각 룰, 우선순위(순서), 수행된 작업 등을 나열합니다. |
| `기본 작업`  | `맵`   | AWS WAF가 웹 요청을 허용할지 차단할지에 대한 기본 작업입니다.       |
| `메트릭 이름` | `문자열` | 이 WebACL의 메트릭에 대한 친숙한 이름 또는 설명입니다.           |

## 예시

```javascript
{
    "AccountId": "123456789012",
    "Arn": "arn:aws:waf-regional:us-west-2:123456789012:webacl/1",
    "DefaultAction": {
        "Type": "ALLOW"
    },
    "Id": "1",
    "MetricName": "metric-1",
    "Name": "example-web-acl",
    "Region": "us-west-2",
    "ResourceId": "arn:aws:waf-regional:us-west-2:123456789012:webacl/1",
    "ResourceType": "AWS.WAF.Regional.WebACL",
    "Rules": [
        {
            "Action": {
                "Type": "BLOCK"
            },
            "ExcludedRules": null,
            "MetricName": "metric-1",
            "Name": "룰-1",
            "OverrideAction": null,
            "Predicates": [
                {
                    "DataId": "1",
                    "Negated": false,
                    "Type": "XssMatch"
                }
            ],
            "Priority": 2,
            "RuleId": "1",
            "Type": "REGULAR"
        },
        {
            "Action": {
                "Type": "COUNT"
            },
            "ExcludedRules": null,
            "MetricName": "metric-2",
            "Name": "룰-2",
            "OverrideAction": null,
            "Predicates": [
                {
                    "DataId": "2",
                    "Negated": false,
                    "Type": "XssMatch"
                }
            ],
            "Priority": 1,
            "RuleId": "2",
            "Type": "REGULAR"
        }
    ],
    "Tags": null,
    "TimeCreated": null
}
```
