

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

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

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

# AWS WAF 및 CAPTCHA 규칙 작업의 작동 방식
<a name="waf-captcha-and-challenge-how-it-works"></a>

이 섹션에서는 CAPTCHA와 Challenge의 작동 방법을 설명합니다.

AWS WAF CAPTCHA 및 Challenge는 표준 규칙 작업이므로 비교적 쉽게 구현할 수 있습니다. 둘 중 하나를 사용하려면 검사할 요청을 식별하는 규칙에 대한 검사 기준을 만든 다음 두 규칙 작업 중 하나를 지정합니다. 각 작업의 옵션에 대한 일반적인 정보는 [에서 규칙 작업 사용 AWS WAF](waf-rule-action.md) 섹션을 참조하세요.

서버 측에서 자동 챌린지와 CAPTCHA 퍼즐을 구현하는 것 외에도 JavaScript, iOS 및 Android 클라이언트 애플리케이션에 자동 챌린지를 통합하고 JavaScript 클라이언트에서 CAPTCHA 퍼즐을 렌더링할 수 있습니다. 이러한 통합을 통해 최종 사용자에게 더 나은 성능과 CAPTCHA 퍼즐 경험을 제공할 수 있으므로, 최종 사용자는 규칙 조치 및 지능형 위협 완화 규칙 그룹 사용과 관련된 비용을 줄일 수 있습니다. 이러한 옵션에 대한 자세한 내용은 [의 클라이언트 애플리케이션 통합 AWS WAF](waf-application-integration.md) 섹션을 참조하세요. 요금 정보는 [AWS WAF 요금](https://aws.amazon.com/waf/pricing/)을 참조하세요.

**Topics**
+ [CAPTCHA 및 Challenge 작업 동작](waf-captcha-and-challenge-actions.md)
+ [로그 및 지표의 CAPTCHA 및 Challenge 작업](waf-captcha-and-challenge-logs-metrics.md)

# CAPTCHA 및 Challenge 작업 동작
<a name="waf-captcha-and-challenge-actions"></a>

이 섹션에서는 CAPTCHA 및 Challenge 작업이 수행하는 작업을 설명합니다.

웹 요청이 CAPTCHA 또는 Challenge 작업이 있는 규칙의 검사 기준과 일치하면는 토큰 및 면제 시간 구성의 상태에 따라 요청을 처리하는 방법을 AWS WAF 결정합니다. AWS WAF 또한는 요청이 CAPTCHA 퍼즐 또는 챌린지 스크립트 중간 광고를 처리할 수 있는지 여부를 고려합니다. 스크립트는 HTML 콘텐츠로 처리되도록 설계되었으며 HTML 콘텐츠를 필요로 하는 클라이언트만 올바르게 처리할 수 있습니다.

**참고**  
규칙 중 하나에서 또는 규칙 그룹 내 규칙 작업 재정의로서 CAPTCHA 또는 Challenge 규칙 작업을 사용하는 경우 추가 요금이 부과됩니다. 자세한 내용은 [AWS WAF 요금](https://aws.amazon.com/waf/pricing/)을 참조하세요.

**작업에서 웹 요청을 처리하는 방법**  
AWS WAF 는 다음과 같이 웹 요청에 CAPTCHA 또는 Challenge 작업을 적용합니다.
+ **유효한 토큰** -이 작업을 Count 작업과 유사하게 AWS WAF 처리합니다.는 규칙 작업에 대해 구성한 레이블과 요청 사용자 지정을 AWS WAF 적용한 다음 보호 팩(웹 ACL)의 나머지 규칙을 사용하여 요청을 계속 평가합니다.
+ **누락되거나 유효하지 않거나 만료된 토큰** - 요청에 대한 보호 팩(웹 ACL) 평가를 AWS WAF 중단하고 의도한 대상으로 이동하는 것을 차단합니다.

  AWS WAF 는 규칙 작업 유형에 따라 클라이언트로 다시 보내는 응답을 생성합니다.
  + **Challenge** – AWS WAF 에서는 응답에 다음 항목을 포함합니다.
    + `challenge` 값을 갖는 헤더 `x-amzn-waf-action`입니다.
**참고**  
클라이언트 브라우저에서 실행되는 Javascript 애플리케이션의 경우 이 헤더는 애플리케이션의 도메인 내에서만 사용할 수 있습니다. 헤더는 도메인 간 검색에 사용할 수 없습니다. 자세한 정보는 다음 섹션을 참조하세요.
    + HTTP 상태 코드 `202 Request Accepted`.
    + 요청에 값이 `text/html`인 `Accept` 헤더가 포함된 경우 응답에는 챌린지 스크립트가 포함된 JavaScript 페이지 전면 광고가 포함됩니다.
  + **CAPTCHA** - 응답에 다음을 AWS WAF 포함합니다.
    + `captcha` 값을 갖는 헤더 `x-amzn-waf-action`입니다.
**참고**  
클라이언트 브라우저에서 실행되는 Javascript 애플리케이션의 경우 이 헤더는 애플리케이션의 도메인 내에서만 사용할 수 있습니다. 헤더는 도메인 간 검색에 사용할 수 없습니다. 자세한 정보는 다음 섹션을 참조하세요.
    + HTTP 상태 코드 `405 Method Not Allowed`.
    + 요청에 값이 `text/html`인 `Accept` 헤더가 포함된 경우 응답에는 CAPTCHA 스크립트가 포함된 JavaScript 페이지 전면 광고가 포함됩니다.

보호 팩(웹 ACL) 또는 규칙 수준에서 토큰 만료 시기를 구성하려면 [에서 타임스탬프 만료 및 토큰 면제 시간 설정 AWS WAF](waf-tokens-immunity-times.md) 섹션을 참조하세요.

**헤더는 클라이언트 브라우저에서 실행되는 JavaScript 애플리케이션에서는 사용할 수 없습니다.**  
가 CAPTCHA 또는 챌린지 AWS WAF 응답으로 클라이언트 요청에 응답하는 경우 교차 오리진 리소스 공유(CORS) 헤더는 포함되지 않습니다. CORS 헤더는 JavaScript 애플리케이션에서 사용할 수 있는 도메인, HTTP 메서드 및 HTTP 헤더를 클라이언트 웹 브라우저에 알려주는 액세스 제어 헤더 집합입니다. CORS 헤더가 없으면 클라이언트 브라우저에서 실행 중인 JavaScript 애플리케이션에 HTTP 헤더에 대한 액세스 권한이 부여되지 않으므로 CAPTCHA 및 Challenge 응답에 제공된 `x-amzn-waf-action` 헤더를 읽을 수 없습니다.

**챌린지와 CAPTCHA 중간 광고의 기능**  
챌린지 중간 광고가 실행되면 클라이언트가 성공적으로 응답한 후, 아직 토큰이 없는 경우 중간 광고에서 토큰을 초기화합니다. 그런 다음 챌린지 풀기 타임스탬프로 토큰을 업데이트합니다.

CAPTCHA 중간 광고가 실행될 때 클라이언트에 아직 토큰이 없는 경우 CAPTCHA 전면 광고는 먼저 챌린지 스크립트를 호출하여 브라우저에서 챌린지를 실행하고 토큰을 초기화합니다. 그러면 중간 광고는 CAPTCHA 퍼즐을 실행합니다. 최종 사용자가 퍼즐을 성공적으로 완료하면 중간 광고는 CAPTCHA 풀기 타임스탬프로 토큰을 업데이트합니다.

어느 경우든 클라이언트가 성공적으로 응답하고 스크립트가 토큰을 업데이트하면 스크립트는 업데이트된 토큰을 사용하여 원래 웹 요청을 다시 제출합니다.

가 토큰을 AWS WAF 처리하는 방법을 구성할 수 있습니다. 자세한 내용은 [AWS WAF 지능형 위협 완화에 토큰 사용](waf-tokens.md) 섹션을 참조하세요.

# 로그 및 지표의 CAPTCHA 및 Challenge 작업
<a name="waf-captcha-and-challenge-logs-metrics"></a>

이 섹션에서는가 및 Challenge 작업에 대한 로깅 CAPTCHA 및 지표를 AWS WAF 처리하는 방법을 설명합니다.

CAPTCHA 및 Challenge 작업은 비 종료형(예: Count)일 수도 있고 종료형일 수도 있습니다(예: Block). 결과는 작업 유형에 대해 만료되지 않은 타임스탬프가 있는 유효한 토큰이 요청에 있는지 여부에 따라 달라집니다.
+ **유효한 토큰** - 작업이 유효한 토큰을 찾고 요청을 차단하지 않으면 다음과 같이 지표와 로그를 AWS WAF 캡처합니다.
  + `CaptchaRequests` 및 `RequestsWithValidCaptchaToken` 또는 `ChallengeRequests` 및 `RequestsWithValidChallengeToken`에 대한 지표를 늘립니다.
  + 일치 항목을 CAPTCHA 또는 Challenge 작업이 있는 `nonTerminatingMatchingRules` 항목으로 로그에 기록합니다. 다음 목록은 CAPTCHA 작업이 있는 이 유형의 일치 항목에 대한 로그 섹션을 보여줍니다.

    ```
        "nonTerminatingMatchingRules": [
        {
          "ruleId": "captcha-rule",
          "action": "CAPTCHA",
          "ruleMatchDetails": [],
          "captchaResponse": {
            "responseCode": 0,
            "solveTimestamp": 1632420429
          }
        }
      ]
    ```
+ **누락, 유효하지 않음 또는 만료된 토큰** - 작업이 누락되거나 유효하지 않은 토큰으로 인해 요청을 차단하면는 다음과 같이 지표와 로그를 AWS WAF 캡처합니다.
  + 또는 `CaptchaRequests` 또는 `ChallengeRequests`에 대한 지표를 늘립니다.
  + 일치 항목을 HTTP `405` 상태 코드가 있는 `CaptchaResponse` 항목 또는 HTTP `202` 상태 코드가 있는 `ChallengeResponse` 항목으로 로그에 기록합니다. 로그는 요청에 토큰이 누락되었는지 아니면 타임스탬프가 만료되었는지 여부를 나타냅니다. 또한 로그는가 클라이언트에 CAPTCHA 중간 페이지 또는 클라이언트 브라우저에 자동 챌린지를 AWS WAF 보냈는지 여부를 나타냅니다. 다음 목록은 CAPTCHA 작업이 있는 이 유형의 일치 항목에 대한 로그 섹션을 보여줍니다.

    ```
        "terminatingRuleId": "captcha-rule",
        "terminatingRuleType": "REGULAR",
        "action": "CAPTCHA",
        "terminatingRuleMatchDetails": [],
        ...
        "responseCodeSent": 405,
        ...
        "captchaResponse": {
          "responseCode": 405,
          "solveTimestamp": 0,
          "failureReason": "TOKEN_MISSING"
        }
    ```

 AWS WAF 로그에 대한 자세한 내용은 섹션을 참조하세요[AWS WAF 보호 팩(웹 ACL) 트래픽 로깅](logging.md).

 AWS WAF 지표에 대한 자세한 내용은 섹션을 참조하세요[AWS WAF 지표 및 차원](waf-metrics.md).

각 작업의 옵션에 대한 일반적인 정보는 [에서 규칙 작업 사용 AWS WAF](waf-rule-action.md) 섹션을 참조하세요.

**토큰이 없는 요청은 로그 및 지표에 두 번 표시되는 듯함**  
[CAPTCHA 및 Challenge 작업 동작](waf-captcha-and-challenge-actions.md) 및 이 섹션에 설명된 로깅 및 지표를 기반으로 토큰이 없는 요청은 일반적으로 로그 및 지표에 두 번 표시됩니다. 이는 의도한 하나의 요청이 실제로 클라이언트에 의해 두 번 전송되기 때문입니다.
+ 토큰이 없는 첫 번째 요청은 누락, 무효 또는 만료된 토큰에 대해 위에서 설명한 로깅 및 지표 처리를 수신합니다. CAPTCHA 또는 Challenge 작업은 이 첫 번째 요청을 종료한 다음 자동 챌린지 또는 CAPTCHA 퍼즐을 사용하여 클라이언트에 다시 응답합니다.
+ 클라이언트는 챌린지 또는 퍼즐을 평가하고 클라이언트 브라우저 또는 최종 사용자가 성공적으로 응답하면 새로 획득한 토큰으로 요청을 다시 보냅니다. 이 두 번째 요청은 유효한 토큰이 있는 요청에 대해 위에 설명된 로깅 및 지표 처리를 수신합니다.