Block 작업에 대한 사용자 지정 응답 - AWS WAF, AWS Firewall Manager, 및 AWS Shield Advanced

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

Block 작업에 대한 사용자 지정 응답

로 설정된 규칙 작업 또는 웹 ACL 기본 작업에 대해 사용자 지정 HTTP 응답을 클라이언트에 다시 AWS WAF 보내도록 지시할 수 있습니다. Block 규칙 작업에 대한 자세한 내용은 규칙 작업 섹션을 참조하세요. 기본 웹 ACL 작업에 대한 자세한 내용은 웹 ACL 기본 동작 섹션을 참조하세요.

Block 작업에 대한 사용자 지정 응답 처리를 정의할 때는 상태 코드, 헤더 및 응답 본문을 정의합니다. 함께 AWS WAF사용할 수 있는 상태 코드 목록은 다음 섹션을 참조하십시오. 사용자 지정 응답에 지원되는 상태 코드

사용 사례

사용자 지정 응답의 사용 예는 다음과 같습니다.

  • 기본 상태 코드가 아닌 상태 코드를 다시 클라이언트로 보내는 경우

  • 클라이언트에 사용자 지정 응답을 다시 보냅니다. content-type이라는 이름을 제외하고 모든 헤더 이름을 지정할 수 있습니다.

  • 정적 오류 페이지를 클라이언트로 다시 보내는 경우

  • 클라이언트를 다른 URL로 리디렉션하는 경우. 이렇게 하려면 3xx 리디렉션 상태 코드(예: 301 (Moved Permanently) 또는302 (Found)) 중 하나를 지정한 다음 새 URL을 포함하는 Location 이름이 지정된 새 헤더를 지정합니다.

보호된 리소스에서 정의한 응답과의 상호 작용

AWS WAF Block작업에 대해 지정하는 사용자 지정 응답은 보호 리소스에 정의한 모든 응답 사양보다 우선합니다.

보호하는 데 사용하는 AWS 리소스의 호스트 서비스에서 웹 요청에 대한 사용자 지정 응답 처리를 AWS WAF 허용할 수 있습니다. 예는 다음과 같습니다.

  • CloudFrontAmazon에서는 상태 코드를 기반으로 오류 페이지를 사용자 지정할 수 있습니다. 자세한 내용은 Amazon CloudFront 개발자 안내서의 사용자 지정 오류 응답 생성을 참조하십시오.

  • Amazon API Gateway를 사용하면 게이트웨이에 대한 응답 및 상태 코드를 정의할 수 있습니다. 자세한 내용을 알아보려면 Amazon API Gateway 개발자 안내서API Gatewaydml 게이트웨이 응답 섹션을 참조하세요.

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

AWS WAF 차단되는 웹 요청의 경우 우선 순위는 다음과 같습니다.

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

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

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

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

사용자 지정 응답 헤더

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 } }