

**에 대한 새로운 콘솔 환경 소개 AWS WAF**

이제 업데이트된 환경을 사용하여 콘솔의 모든 위치에서 AWS WAF 기능에 액세스할 수 있습니다. 자세한 내용은 [콘솔 작업을 참조하세요](https://docs.aws.amazon.com/waf/latest/developerguide/working-with-console.html).

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 차단되지 않은 작업에 대해 사용자 지정 요청 헤더 삽입
<a name="customizing-the-incoming-request"></a>

이 섹션에서는 규칙 작업이 요청을 차단하지 않을 때에 사용자 지정 헤더를 원래 HTTP 요청에 AWS WAF 삽입하도록 지시하는 방법을 설명합니다. 이 옵션을 사용하면 요청에만 추가할 수 있습니다. 원본 요청의 어떤 부분도 수정하거나 교체할 수 없습니다. 사용자 지정 헤더 삽입의 사용은 예를 들면, 삽입된 헤더에 따라 요청을 다르게 처리하도록 다운스트림 애플리케이션에 신호를 보내는 경우나 분석을 위해 요청에 플래그를 지정하는 경우입니다.

**중요**  
이 옵션은 Allow, Count, CAPTCHA 및 Challenge 규칙 작업과 Allow로 설정된 보호 팩(웹 ACL) 기본 작업에 적용됩니다. 규칙 작업에 대한 자세한 내용은 [에서 규칙 작업 사용 AWS WAF](waf-rule-action.md) 섹션을 참조하세요. 기본 보호 팩(웹 ACL) 작업에 대한 자세한 내용은 [에서 보호 팩(웹 ACL) 기본 작업 설정 AWS WAF](web-acl-default-action.md) 섹션을 참조하세요.

## 사용자 지정 요청 헤더 이름 사용 시 고려 사항
<a name="using-custom-request-header-names"></a>

**요청 헤더에 추가된 접두사**  
AWS WAF 는 요청에 이미 있는 헤더와의 혼동을 방지하기 `x-amzn-waf-`위해 로 삽입하는 모든 요청 헤더를 접두사로 지정합니다. 예를 들어 헤더 이름를 지정하면가 헤더를 `sample` AWS WAF 삽입합니다`x-amzn-waf-sample`.

**중요**  
보안 관행으로 헤더가 이미 `x-amzn-waf-`로 시작하는 요청을 차단하는 문자열 일치 규칙을 추가할 수 있습니다. 이렇게 하면 사용자 지정 요청 헤더를 처리할 때가 AWS WAF 삽입한 `x-amzn-waf-` 접두사 문자열을 모방하는 비AWS WAF 소스의 요청이 차단됩니다.

다음 예제에서는 `x-amzn-waf-` 접두사가 삽입되지 않은 트래픽을 차단하도록 구성된 문자열 일치 규칙을 보여줍니다 AWS WAF.

```
    "Rules": [
        {
          "Name": "CustomHeader",
          "Priority": 0,
          "Statement": {
            "ByteMatchStatement": {
              "SearchString": " x-amzn-waf-",
              "FieldToMatch": {
                "Headers": {
                  "MatchPattern": {
                    "All": {}
                  },
                  "MatchScope": "KEY",
                  "OversizeHandling": "MATCH"
                }
              },
              "TextTransformations": [
                {
                  "Priority": 0,
                  "Type": "NONE"
                }
              ],
              "PositionalConstraint": "STARTS_WITH"
            }
          },
          "Action": {
            "Block": {}
          },
          "VisibilityConfig": {
            "SampledRequestsEnabled": true,
            "CloudWatchMetricsEnabled": true,
            "MetricName": "CustomHeader"
          }
        }
      ]
```

문자열 일치 규칙 사용에 대한 자세한 내용은 [문자열 일치 규칙 문](waf-rule-statement-type-string-match.md) 섹션을 참조하세요.

**이름이 같은 헤더**  
요청에 삽입 중인 것과 동일한 이름의 헤더가 이미 있는 경우 AWS WAF 는 헤더를 AWS WAF 덮어씁니다. 따라서 이름이 동일한 여러 규칙에서 헤더를 정의하는 경우 요청을 검사하고 일치하는 항목을 찾는 마지막 규칙에 헤더가 추가되고 이전 규칙에는 헤더가 추가되지 않습니다.

## 비종료 규칙 작업이 포함된 사용자 지정 헤더 사용
<a name="custom-request-header-non-terminating-rule-actions"></a>

Allow 작업과 달리 Count 작업은 보호 팩(웹 ACL)의 나머지 규칙을 사용하여 웹 요청을 AWS WAF 처리하는 것을 중지하지 않습니다. 마찬가지로 CAPTCHA 및에서 요청 토큰이 유효한 것으로 Challenge 확인되면 이러한 작업은 웹 요청 AWS WAF 처리를 중지하지 않습니다. 따라서 이러한 작업 중 하나와 함께 규칙을 사용하여 사용자 지정 헤더를 삽입하면 후속 규칙에서도 사용자 지정 헤더가 삽입될 수 있습니다. 규칙 작업 동작에 대한 자세한 내용은 [에서 규칙 작업 사용 AWS WAF](waf-rule-action.md) 섹션을 참조하세요.

예를 들어 규칙의 우선 순위가 다음과 같다고 가정해 보겠습니다.

1. Count 작업과 `RuleAHeader` 이름의 사용자 지정 헤더가 있는 RuleA.

1. Allow 작업과 `RuleBHeader` 이름의 사용자 지정 헤더가 있는 RuleB.

요청이 RuleA 및 RuleB와 모두 일치하는 경우 `x-amzn-waf-RuleBHeader`는 헤더 `x-amzn-waf-RuleAHeader` 및를 AWS WAF 삽입한 다음 해당 요청을 보호된 리소스로 전달합니다.

AWS WAF 는 요청 검사가 완료되면 사용자 지정 헤더를 웹 요청에 삽입합니다. 따라서 Count로 설정된 작업을 포함하는 규칙과 함께 사용자 지정 요청 처리를 사용하는 경우 추가하는 사용자 지정 헤더는 후속 규칙에서 검사되지 않습니다.

## 사용자 지정 요청 처리 예제
<a name="example-custom-request-handling"></a>

규칙의 작업 또는 보호 팩(웹 ACL)의 기본 작업에 대한 사용자 지정 요청 처리를 정의합니다. 다음 목록은 보호 팩(웹 ACL)의 기본 작업에 추가된 사용자 지정 처리를 위한 JSON을 보여줍니다.

```
{
 "Name": "SampleWebACL",
 "Scope": "REGIONAL",
 "DefaultAction": {
  "Allow": {
   "CustomRequestHandling": {
    "InsertHeaders": [
     {
      "Name": "fruit",
      "Value": "watermelon"
     },
     {
      "Name": "pie",
      "Value": "apple"
     }
    ]
   }
  }
 },
 "Description": "Sample protection pack (web ACL) with custom request handling configured for default action.",
 "Rules": [],
 "VisibilityConfig": {
  "SampledRequestsEnabled": true,
  "CloudWatchMetricsEnabled": true,
  "MetricName": "SampleWebACL"
 }
}
```