

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

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

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

# Block 작업에 대한 사용자 지정 응답 전송
<a name="customizing-the-response-for-blocked-requests"></a>

이 섹션에서는에 로 설정된 규칙 작업 또는 보호 팩(웹 ACL) 기본 작업에 대한 사용자 지정 HTTP 응답을 클라이언트로 다시 AWS WAF 보내도록 지시하는 방법을 설명합니다Block. 규칙 작업에 대한 자세한 내용은 [에서 규칙 작업 사용 AWS WAF](waf-rule-action.md) 섹션을 참조하세요. 기본 보호 팩(웹 ACL) 작업에 대한 자세한 내용은 [에서 보호 팩(웹 ACL) 기본 작업 설정 AWS WAF](web-acl-default-action.md) 섹션을 참조하세요.

Block 작업에 대한 사용자 지정 응답 처리를 정의할 때는 상태 코드, 헤더 및 응답 본문을 정의합니다. 사용할 수 있는 상태 코드 목록은 다음 섹션을 AWS WAF참조하세요[사용자 지정 응답에 지원되는 상태 코드](customizing-the-response-status-codes.md).

**사용 사례**  
사용자 지정 응답의 사용 예는 다음과 같습니다.
+ 기본 상태 코드가 아닌 상태 코드를 다시 클라이언트로 보내는 경우
+ 클라이언트에 사용자 지정 응답을 다시 보냅니다. `content-type`이라는 이름을 제외하고 모든 헤더 이름을 지정할 수 있습니다.
+ 정적 오류 페이지를 클라이언트로 다시 보내는 경우
+ 클라이언트를 다른 URL로 리디렉션하는 경우. 이렇게 하려면 `3xx` 리디렉션 상태 코드(예: `301 (Moved Permanently)` 또는`302 (Found)`) 중 하나를 지정한 다음 새 URL을 포함하는 `Location` 이름이 지정된 새 헤더를 지정합니다.

**보호된 리소스에서 정의한 응답과의 상호 작용**  
작업에 지정한 AWS WAF Block 사용자 지정 응답은 보호된 리소스에서 정의한 모든 응답 사양보다 우선합니다.

로 보호하는 AWS 리소스의 호스트 서비스는 웹 요청에 대한 사용자 지정 응답 처리를 허용할 AWS WAF 수 있습니다. 예는 다음과 같습니다.
+ Amazon CloudFront를 사용하면 상태 코드를 기반으로 오류 페이지를 사용자 지정할 수 있습니다. 자세한 내용을 알아보려면 *Amazon CloudFront 개발자 안내서*의 [사용자 지정 오류 응답 생성](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/GeneratingCustomErrorResponses.html) 섹션을 참조하세요.
+ Amazon API Gateway를 사용하면 게이트웨이에 대한 응답 및 상태 코드를 정의할 수 있습니다. 자세한 내용을 알아보려면 *Amazon API Gateway 개발자 안내서*의 [API Gatewaydml 게이트웨이 응답](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-gatewayResponse-definition.html) 섹션을 참조하세요.

사용자 AWS WAF 지정 응답 설정을 보호된 AWS 리소스의 사용자 지정 응답 설정과 결합할 수 없습니다. 개별 웹 요청에 대한 응답 사양은 전적으로 AWS WAF 에서 또는 전적으로 보호된 리소스에서 가져옵니다.

가 AWS WAF 차단하는 웹 요청의 경우 다음은 우선 순위입니다.

1. **AWS WAF 사용자 지정 응답** - 작업에 사용자 지정 응답이 활성화된 경우 AWS WAF Block 보호된 리소스는 구성된 사용자 지정 응답을 클라이언트로 다시 보냅니다. 보호된 리소스 자체에 정의했을 수 있는 응답 설정은 아무런 영향을 미치지 않습니다.

1. **보호된 리소스에 정의된 사용자 지정 응답** - 그렇지 않고 보호된 리소스에 사용자 지정 응답 설정이 지정된 경우 보호된 리소스는 이러한 설정을 사용하여 클라이언트에 응답합니다.

1. **AWS WAF 기본 Block 응답** - 그렇지 않으면 보호된 리소스가 AWS WAF 기본 응답 로 클라이언트에 Block 응답합니다`403 (Forbidden)`.

가 AWS WAF 허용하는 웹 요청의 경우 보호된 리소스의 구성에 따라 클라이언트로 다시 보내는 응답이 결정됩니다. 허용된 요청에 AWS WAF 대해에서 응답 설정을 구성할 수 없습니다. 허용된 요청에 AWS WAF 대해에서 구성할 수 있는 유일한 사용자 지정은 요청을 보호된 리소스로 전달하기 전에 원래 요청에 사용자 지정 헤더를 삽입하는 것입니다. 이 내용은 이전 섹션 [차단되지 않은 작업에 대해 사용자 지정 요청 헤더 삽입](customizing-the-incoming-request.md)에 설명되어 있습니다.

**사용자 지정 응답 헤더**  
`content-type`이라는 이름을 제외하고 모든 헤더 이름을 지정할 수 있습니다.

**사용자 지정 응답 본문**  
사용자 지정 응답을 사용하려는 보호 팩(웹 ACL) 또는 규칙 그룹의 컨텍스트 내에서 사용자 지정 응답의 본문을 정의합니다. 사용자 지정 응답 본문을 정의한 후에는 이 본문을 생성했던 보호 팩(웹 ACL) 또는 규칙 그룹 어디에서든 해당 본문을 참조로 사용할 수 있습니다. 개별 Block 작업 설정에서 사용할 사용자 지정 본문을 참조하고 사용자 지정 응답의 상태 코드와 헤더를 정의합니다.

콘솔에서 사용자 지정 응답을 생성할 때 이미 정의한 응답 본문 중에서 선택하거나 새 본문을 작성할 수 있습니다. 콘솔 외부에서는 보호 팩(웹 ACL) 또는 규칙 그룹 수준에서 사용자 지정 응답 본문을 정의한 다음 보호 팩(웹 ACL) 또는 규칙 그룹 내의 작업 설정에서 해당 본문을 참조합니다. 이 항목은 다음 섹션의 JSON 예제에 나와 있습니다.

**사용자 지정 응답 예제**  
다음 예제는 사용자 지정 응답 설정이 있는 규칙 그룹의 JSON 목록입니다. 사용자 지정 응답 본문은 전체 규칙 그룹에 대해 정의된 후 규칙 작업에서 키를 사용하여 참조됩니다.

```
{
 "ARN": "test_rulegroup_arn",
 "Capacity": 1,
 
 "CustomResponseBodies": {
  "CustomResponseBodyKey1": {
   "Content": "This is a plain text response body.",
   "ContentType": "TEXT_PLAIN"
  }
 },
 
 "Description": "This is a test rule group.",
 "Id": "test_rulegroup_id",
 "Name": "TestRuleGroup",
 
 "Rules": [
  {
   "Action": {
    "Block": {
     "CustomResponse": {
      "CustomResponseBodyKey": "CustomResponseBodyKey1",
      "ResponseCode": 404,
      "ResponseHeaders": [
       {
        "Name": "BlockActionHeader1Name",
        "Value": "BlockActionHeader1Value"
       }
      ]
     }
    }
   },
   "Name": "GeoMatchRule",
   "Priority": 1,
   "Statement": {
    "GeoMatchStatement": {
     "CountryCodes": [
      "US"
     ]
    }
   },
   "VisibilityConfig": {
    "CloudWatchMetricsEnabled": true,
    "MetricName": "TestRuleGroupReferenceMetric",
    "SampledRequestsEnabled": true
   }
  }
 ],
 "VisibilityConfig": {
  "CloudWatchMetricsEnabled": true,
  "MetricName": "TestRuleGroupMetric",
  "SampledRequestsEnabled": true
 }
}
```