> For the complete documentation index, see [llms.txt](https://docs.panther.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.panther.com/ko/data-onboarding/supported-logs/aws/waf.md).

# AWS WAF

## 개요

Panther는 AWS S3를 통해 Amazon Web Services(AWS) Web Application Firewall(WAF) 로그를 수집하는 것을 지원합니다.

## AWS 온보딩 방법 **WAF** 로그를 Panther로

WAF 로그를 Panther로 가져오려면, Panther Console에서 AWS 계정의 데이터를 스트리밍하도록 S3 버킷을 설정해야 합니다.

1. Panther Console의 왼쪽 탐색 표시줄에서 다음을 클릭합니다: **로그 소스**.
2. 클릭합니다 **새로 만들기**.
3. 사용 가능한 로그 소스 목록을 보려면 "AWS"를 검색하세요.
4. 선택 **AWS WAF 웹 ACL**.
5. 선택 **AWS S3 버킷** 소스 설정을 시작하려면. 다음을 따르세요 [데이터 전송을 위해 S3를 구성하는 Panther의 문서](/ko/data-onboarding/data-transports/aws/s3.md).

## Panther가 만든 탐지

Panther의 미리 작성된 AWS 규칙은 다음에서 확인하세요 [panther-analysis 깃허브 저장소](https://github.com/panther-labs/panther-analysis/tree/master/rules).

## 지원되는 AWS WAF 로그

### AWS.WAFWebACL

WAFWebACL 로그는 웹 액세스 제어 목록(ACL) 트래픽 정보를 나타냅니다. 자세한 내용은 다음을 참조하세요 [웹 ACL 트래픽 로깅에 대한 AWS 문서](https://docs.aws.amazon.com/waf/latest/developerguide/logging.html).

```yaml
schema: AWS.WAFWebACL
파서:
  네이티브:
    name: AWS.WAFWebACL
description: WAF 웹 ACL 트래픽 정보 로그.
referenceURL: https://docs.aws.amazon.com/waf/latest/developerguide/logging.html
필드:
  - 이름: action
    필수: true
    description: 'WAF가 적용한 동작입니다. 종료 룰에 대한 가능한 값은 ALLOW 및 BLOCK입니다. COUNT는 종료 룰에 대한 유효한 값이 아닙니다.'
    유형: string
  - name: formatVersion
    description: 로그의 형식 버전입니다.
    유형: smallint
  - name: httpRequest
    필수: true
    description: 요청에 대한 메타데이터입니다.
    유형: object
    필드:
      - name: args
        description: HTTP 요청 쿼리 문자열입니다.
        유형: string
      - 이름: clientIp
        description: 요청을 보내는 클라이언트의 IP 주소입니다.
        유형: string
        지표:
          - ip
      - 이름: country
        description: 요청의 발신 국가입니다. AWS WAF가 원산지를 판별할 수 없는 경우, 이 필드를 - 로 설정합니다.
        유형: string
      - 이름: headers
        description: 헤더 목록입니다.
        유형: array
        요소:
          유형: object
          필드:
            - 이름: name
              description: 헤더 이름입니다.
              유형: string
            - 이름: value
              description: 헤더 값입니다.
              유형: string
      - name: httpMethod
        description: 요청의 HTTP 메서드입니다.
        유형: string
      - name: httpVersion
        description: HTTP 버전, 예: HTTP/2.0.
        유형: string
      - name: requestId
        description: 기반 호스트 서비스에서 생성한 요청 ID입니다. Application Load Balancer의 경우 추적 ID입니다. 그 외의 모든 경우에는 요청 ID입니다.
        유형: string
        지표:
          - trace_id
      - name: uri
        description: 요청의 URI입니다.
        유형: string
  - name: httpSourceId
    필수: true
    description: 소스 ID입니다. 이 필드는 연결된 리소스의 ID를 보여줍니다.
    유형: string
  - name: httpSourceName
    description: '요청의 소스입니다. 가능한 값: Amazon CloudFront의 CF, Amazon API Gateway의 APIGW, Application Load Balancer의 ALB, AWS AppSync의 APPSYNC.'
    유형: string
  - name: nonTerminatingMatchingRules
    description: 요청과 일치하는 룰 그룹의 비종료 룰 목록입니다. 이들은 항상 COUNT 룰(일치하지만 종료되지 않는 룰)입니다.
    유형: array
    요소:
      유형: object
      필드:
        - 이름: ruleId
          description: 룰 ID입니다.
          유형: string
        - 이름: action
          description: 구성된 룰 동작입니다. 비종료 룰의 경우 값은 항상 COUNT입니다.
          유형: string
        - name: ruleMatchDetails
          description: 요청과 일치한 룰에 대한 자세한 정보입니다. 이 필드는 SQL 삽입 및 교차 사이트 스크립팅(XSS) 일치 룰 문에 대해서만 채워집니다.
          유형: array
          요소:
            유형: object
            필드:
              - name: conditionType
                description: 취약성 유형으로, SQL_INJECTION 또는 XSS입니다.
                유형: string
              - 이름: location
                description: 일치를 제공한 요청 매개변수 유형입니다. ALL_QUERY_ARGS, HEADER 등이 될 수 있습니다.
                유형: string
              - name: matchedData
                description: 일치를 제공하는 문자열 목록입니다. 예: ["10", "AND", "1"]
                유형: array
                요소:
                  유형: string
  - name: rateBasedRuleList
    description: 요청에 적용된 속도 기반 룰 목록입니다.
    유형: array
    요소:
      유형: object
      필드:
        - name: limitKey
          description: 'AWS WAF가 요청이 단일 소스에서 발생하는지, 따라서 속도 모니터링 대상인지 판단하는 데 사용하는 필드입니다. 가능한 값: IP.'
          유형: string
        - name: limitValue
          설명: 속도 제한을 위해 요청을 집계하는 데 속도 기반 룰이 사용하는 IP 주소입니다. 요청에 유효하지 않은 IP 주소가 포함되어 있으면 limitvalue는 INVALID입니다.
          유형: string
        - 이름: maxRateAllowed
          설명: limitKey로 지정된 필드에서 동일한 값을 가진 요청의 최대 수입니다. 5분 동안 허용됩니다. 요청 수가 maxRateAllowed를 초과하고 룰에 지정된 다른 조건도 충족되면 AWS WAF가 이 룰에 대해 지정된 작업을 트리거합니다.
          유형: bigint
        - 이름: rateBased룰Id
          설명: 요청에 대해 작동한 속도 기반 룰의 ID입니다. 이 값이 요청을 종료한 경우 rateBasedRuleId의 ID는 terminatingRuleId의 ID와 같습니다.
          유형: string
        - 이름: rateBased룰Name
          설명: 요청에 대해 작동한 속도 기반 룰의 이름입니다.
          유형: string
  - 이름: 룰GroupList
    설명: 이 요청에 대해 작동한 룰 그룹의 목록입니다. 앞의 코드 예제에는 하나만 있습니다.
    유형: array
    요소:
      유형: object
      필드:
        - 이름: excluded룰s
          설명: 제외한 룰 그룹의 룰 목록입니다. 이 룰들의 동작은 COUNT로 설정됩니다.
          유형: array
          요소:
            유형: object
            필드:
              - 이름: exclusionType
                설명: 제외된 룰의 동작이 COUNT임을 나타내는 유형입니다(가장 가능성이 높은 값은 EXCLUDED_AS_COUNT입니다).
                유형: string
              - 이름: ruleId
                설명: 제외된 룰 그룹 내 룰의 ID입니다.
                유형: string
        - name: nonTerminatingMatchingRules
          description: 요청과 일치하는 룰 그룹의 비종료 룰 목록입니다. 이들은 항상 COUNT 룰(일치하지만 종료되지 않는 룰)입니다.
          유형: array
          요소:
            유형: object
            필드:
              - 이름: ruleId
                description: 룰 ID입니다.
                유형: string
              - 이름: action
                description: 구성된 룰 동작입니다. 비종료 룰의 경우 값은 항상 COUNT입니다.
                유형: string
              - name: ruleMatchDetails
                description: 요청과 일치한 룰에 대한 자세한 정보입니다. 이 필드는 SQL 삽입 및 교차 사이트 스크립팅(XSS) 일치 룰 문에 대해서만 채워집니다.
                유형: array
                요소:
                  유형: object
                  필드:
                    - name: conditionType
                      description: 취약성 유형으로, SQL_INJECTION 또는 XSS입니다.
                      유형: string
                    - 이름: location
                      description: 일치를 제공한 요청 매개변수 유형입니다. ALL_QUERY_ARGS, HEADER 등이 될 수 있습니다.
                      유형: string
                    - name: matchedData
                      description: 일치를 제공하는 문자열 목록입니다. 예: ["10", "AND", "1"]
                      유형: array
                      요소:
                        유형: string
        - 이름: 룰GroupId
          설명: 룰 그룹의 ID입니다. 룰이 요청을 차단한 경우, 룰GroupID의 ID는 terminating룰Id의 ID와 같습니다.
          유형: string
        - 이름: terminating룰
          설명: 요청을 종료한 룰 그룹 내의 룰입니다. 이 값이 null이 아니면 룰id와 동작도 포함합니다. 이 경우 동작은 항상 BLOCK입니다.
          유형: object
          필드:
            - 이름: ruleId
              description: 룰 ID입니다.
              유형: string
            - 이름: action
              description: 구성된 룰 동작입니다. 비종료 룰의 경우 값은 항상 COUNT입니다.
              유형: string
            - name: ruleMatchDetails
              description: 요청과 일치한 룰에 대한 자세한 정보입니다. 이 필드는 SQL 삽입 및 교차 사이트 스크립팅(XSS) 일치 룰 문에 대해서만 채워집니다.
              유형: array
              요소:
                유형: object
                필드:
                  - name: conditionType
                    description: 취약성 유형으로, SQL_INJECTION 또는 XSS입니다.
                    유형: string
                  - 이름: location
                    description: 일치를 제공한 요청 매개변수 유형입니다. ALL_QUERY_ARGS, HEADER 등이 될 수 있습니다.
                    유형: string
                  - name: matchedData
                    description: 일치를 제공하는 문자열 목록입니다. 예: ["10", "AND", "1"]
                    유형: array
                    요소:
                      유형: string
  - 이름: terminating룰Id
    설명: 요청을 종료한 룰의 ID입니다. 요청을 종료하는 항목이 없으면 값은 Default_Action입니다.
    유형: string
  - 이름: terminatingRuleMatchDetails
    설명: 요청과 일치한 종료 룰에 대한 자세한 정보입니다. 종료 룰에는 웹 요청에 대한 검사 프로세스를 종료하는 동작이 있습니다. 종료 룰의 가능한 동작은 ALLOW와 BLOCK입니다. 이 값은 SQL 삽입 및 교차 사이트 스크립팅(XSS) 일치 룰 문에 대해서만 채워집니다. 하나보다 많은 항목을 검사하는 모든 룰 문과 마찬가지로, AWS WAF는 첫 번째 일치에 대해 동작을 적용하고 웹 요청 검사를 중지합니다. 종료 동작이 있는 웹 요청에는 로그에 보고된 위협 외에도 다른 위협이 포함될 수 있습니다.
    유형: array
    요소:
      유형: object
      필드:
        - name: conditionType
          description: 취약성 유형으로, SQL_INJECTION 또는 XSS입니다.
          유형: string
        - 이름: location
          description: 일치를 제공한 요청 매개변수 유형입니다. ALL_QUERY_ARGS, HEADER 등이 될 수 있습니다.
          유형: string
        - name: matchedData
          description: 일치를 제공하는 문자열 목록입니다. 예: ["10", "AND", "1"]
          유형: array
          요소:
            유형: string
  - 이름: terminatingRuleType
    설명: '요청을 종료한 룰의 유형입니다. 가능한 값: RATE_BASED, REGULAR, GROUP, 그리고 MANAGED_RULE_GROUP.'
    유형: string
  - 이름: timestamp
    필수: true
    설명: 밀리초 단위의 타임스탬프.
    유형: timestamp
    시간 형식: unix_ms
    이벤트 시간 여부: true
  - 이름: webaclId
    필수: true
    설명: 웹 ACL의 GUID입니다.
    유형: string
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.panther.com/ko/data-onboarding/supported-logs/aws/waf.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
