> 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로 가져오려면 AWS 계정의 데이터를 스트리밍하도록 Panther Console에서 S3 버킷을 설정해야 합니다.

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

## Panther가 만든 탐지

Panther의 사전 작성된 AWS 룰을 다음에서 확인하세요 [panther-analysis Github 저장소](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
스키마: AWS.WAFWebACL
파서:
  native:
    이름: AWS.WAFWebACL
설명: WAF 웹 ACL 트래픽 정보 로그.
참조 URL: https://docs.aws.amazon.com/waf/latest/developerguide/logging.html
fields:
  - 이름: action
    required: true
    설명: 'WAF에 의해 적용된 동작입니다. 종료 룰의 가능한 값은 ALLOW와 BLOCK입니다. COUNT는 종료 룰에 대한 유효한 값이 아닙니다.'
    type: string
  - 이름: formatVersion
    설명: 로그의 형식 버전입니다.
    유형: smallint
  - 이름: httpRequest
    required: true
    설명: 요청에 대한 메타데이터입니다.
    type: object
    fields:
      - 이름: args
        설명: HTTP 요청 쿼리 문자열입니다.
        type: string
      - 이름: clientIp
        설명: 요청을 보내는 클라이언트의 IP 주소입니다.
        type: string
        표시자:
          - ip
      - name: country
        설명: 요청의 원본 국가입니다. AWS WAF가 원산지 국가를 확인할 수 없으면 이 필드를 -로 설정합니다.
        type: string
      - 이름: headers
        설명: 헤더 목록입니다.
        type: array
        element:
          type: object
          fields:
            - 이름: name
              설명: 헤더 이름입니다.
              type: string
            - 이름: value
              설명: 헤더 값입니다.
              type: string
      - 이름: httpMethod
        설명: 요청의 HTTP 메서드입니다.
        type: string
      - 이름: httpVersion
        설명: HTTP 버전입니다. 예: HTTP/2.0.
        type: string
      - 이름: requestId
        설명: 기반 호스트 서비스에서 생성한 요청 ID입니다. Application Load Balancer의 경우 trace ID입니다. 그 외의 모든 경우에는 request ID입니다.
        type: string
        표시자:
          - trace_id
      - name: uri
        설명: 요청의 URI입니다.
        type: string
  - 이름: httpSourceId
    required: true
    설명: 소스 ID입니다. 이 필드는 연결된 리소스의 ID를 보여줍니다.
    type: string
  - 이름: httpSourceName
    설명: '요청의 소스입니다. 가능한 값: Amazon CloudFront의 CF, Amazon API Gateway의 APIGW, Application Load Balancer의 ALB, AWS AppSync의 APPSYNC.'
    type: string
  - 이름: nonTerminatingMatchingRules
    설명: 요청과 일치하는 룰 그룹의 비종료 룰 목록입니다. 이는 항상 COUNT 룰(일치하는 비종료 룰)입니다.
    type: array
    element:
      type: object
      fields:
        - 이름: 룰 ID
          설명: 룰 ID입니다.
          type: string
        - 이름: action
          설명: 구성된 룰 동작입니다. 비종료 룰의 경우 값은 항상 COUNT입니다.
          type: string
        - 이름: ruleMatchDetails
          설명: 요청과 일치한 룰에 대한 자세한 정보입니다. 이 필드는 SQL injection 및 cross-site scripting (XSS) 일치 룰 문에 대해서만 채워집니다.
          type: array
          element:
            type: object
            fields:
              - 이름: conditionType
                설명: 취약점 유형이며, SQL_INJECTION 또는 XSS 중 하나입니다
                type: string
              - 이름: location
                설명: 일치를 제공한 요청 파라미터 유형입니다. ALL_QUERY_ARGS, HEADER 등이 될 수 있습니다.
                type: string
              - 이름: matchedData
                설명: 일치를 제공하는 문자열 목록입니다. 예: ["10", "AND", "1"]
                type: array
                element:
                  type: string
  - 이름: rateBased룰List
    설명: 요청에 적용된 rate-based 룰 목록입니다.
    type: array
    element:
      type: object
      fields:
        - 이름: limitKey
          설명: 'AWS WAF가 요청이 단일 출처에서 오는 것으로 보이는지, 따라서 rate 모니터링 대상인지 판단하는 데 사용하는 필드입니다. 가능한 값: IP.'
          type: string
        - 이름: limitValue
          설명: rate-based 룰이 요청을 집계하여 요청 빈도 제한을 적용할 때 사용하는 IP 주소입니다. 요청에 유효하지 않은 IP 주소가 포함되어 있으면 limitvalue는 INVALID입니다.
          type: string
        - name: maxRateAllowed
          description: limitKey로 지정된 필드에서 동일한 값을 가진 요청의 최대 개수로, 5분 동안 허용됩니다. 요청 수가 maxRateAllowed를 초과하고 룰에 지정된 다른 조건도 충족되면 AWS WAF는 이 룰에 지정된 작업을 트리거합니다.
          type: bigint
        - name: rateBasedRuleId
          description: 요청에 대해 작동한 rate-based 룰의 ID입니다. 이 값이 요청을 종료한 경우, rateBasedRuleId의 ID는 terminatingRuleId의 ID와 동일합니다.
          type: string
        - name: rateBasedRuleName
          description: 요청에 대해 작동한 rate-based 룰의 이름입니다.
          type: string
  - name: ruleGroupList
    description: 이 요청에 대해 작동한 룰 그룹의 목록입니다. 앞의 코드 예제에는 하나만 있습니다.
    type: array
    element:
      type: object
      fields:
        - name: excludedRules
          description: 제외한 룰 그룹 내 룰의 목록입니다. 이 룰들의 작업은 COUNT로 설정됩니다.
          type: array
          element:
            type: object
            fields:
              - name: exclusionType
                description: 제외된 룰이 COUNT 작업을 가진다는 것을 나타내는 유형입니다(가장 가능성이 높은 값은 EXCLUDED_AS_COUNT입니다).
                type: string
              - 이름: 룰 ID
                description: 제외된 룰 그룹 내 룰의 ID입니다.
                type: string
        - 이름: nonTerminatingMatchingRules
          설명: 요청과 일치하는 룰 그룹의 비종료 룰 목록입니다. 이는 항상 COUNT 룰(일치하는 비종료 룰)입니다.
          type: array
          element:
            type: object
            fields:
              - 이름: 룰 ID
                설명: 룰 ID입니다.
                type: string
              - 이름: action
                설명: 구성된 룰 동작입니다. 비종료 룰의 경우 값은 항상 COUNT입니다.
                type: string
              - 이름: ruleMatchDetails
                설명: 요청과 일치한 룰에 대한 자세한 정보입니다. 이 필드는 SQL injection 및 cross-site scripting (XSS) 일치 룰 문에 대해서만 채워집니다.
                type: array
                element:
                  type: object
                  fields:
                    - 이름: conditionType
                      설명: 취약점 유형이며, SQL_INJECTION 또는 XSS 중 하나입니다
                      type: string
                    - 이름: location
                      설명: 일치를 제공한 요청 파라미터 유형입니다. ALL_QUERY_ARGS, HEADER 등이 될 수 있습니다.
                      type: string
                    - 이름: matchedData
                      설명: 일치를 제공하는 문자열 목록입니다. 예: ["10", "AND", "1"]
                      type: array
                      element:
                        type: string
        - name: 룰GroupId
          description: 룰 그룹의 ID입니다. 룰이 요청을 차단한 경우, ruleGroupID의 ID는 terminatingRuleId의 ID와 동일합니다.
          type: string
        - name: terminating룰
          description: 요청을 종료한 룰 그룹 내의 룰입니다. 이 값이 null이 아니면 룰id와 작업도 포함됩니다. 이 경우 작업은 항상 BLOCK입니다.
          type: object
          fields:
            - 이름: 룰 ID
              설명: 룰 ID입니다.
              type: string
            - 이름: action
              설명: 구성된 룰 동작입니다. 비종료 룰의 경우 값은 항상 COUNT입니다.
              type: string
            - 이름: ruleMatchDetails
              설명: 요청과 일치한 룰에 대한 자세한 정보입니다. 이 필드는 SQL injection 및 cross-site scripting (XSS) 일치 룰 문에 대해서만 채워집니다.
              type: array
              element:
                type: object
                fields:
                  - 이름: conditionType
                    설명: 취약점 유형이며, SQL_INJECTION 또는 XSS 중 하나입니다
                    type: string
                  - 이름: location
                    설명: 일치를 제공한 요청 파라미터 유형입니다. ALL_QUERY_ARGS, HEADER 등이 될 수 있습니다.
                    type: string
                  - 이름: matchedData
                    설명: 일치를 제공하는 문자열 목록입니다. 예: ["10", "AND", "1"]
                    type: array
                    element:
                      type: string
  - name: terminating룰Id
    description: 요청을 종료한 룰의 ID입니다. 요청을 종료하는 항목이 없으면 값은 Default_Action입니다.
    type: string
  - name: terminating룰MatchDetails
    설명: 요청과 일치한 종료 룰에 대한 자세한 정보. 종료 룰은 웹 요청에 대한 검사 프로세스를 종료하는 작업을 가진다. 종료 룰의 가능한 작업은 ALLOW 및 BLOCK이다. 이는 SQL 삽입 및 사이트 간 스크립팅(XSS) 일치 룰 문에 대해서만 채워진다. 하나 이상의 항목을 검사하는 모든 룰 문과 마찬가지로, AWS WAF는 첫 번째 일치에 대해 작업을 적용하고 웹 요청 검사를 중지한다. 종료 작업이 있는 웹 요청에는 로그에 보고된 위협 외에도 다른 위협이 포함될 수 있다.
    type: array
    element:
      type: object
      fields:
        - 이름: conditionType
          설명: 취약점 유형이며, SQL_INJECTION 또는 XSS 중 하나입니다
          type: string
        - 이름: location
          설명: 일치를 제공한 요청 파라미터 유형입니다. ALL_QUERY_ARGS, HEADER 등이 될 수 있습니다.
          type: string
        - 이름: matchedData
          설명: 일치를 제공하는 문자열 목록입니다. 예: ["10", "AND", "1"]
          type: array
          element:
            type: string
  - 이름: terminatingRuleType
    description: '요청을 종료한 룰 유형입니다. 가능한 값: RATE_BASED, REGULAR, GROUP, 및 MANAGED_룰_GROUP.'
    type: string
  - 이름: timestamp
    required: true
    설명: 밀리초 단위의 타임스탬프.
    type: timestamp
    시간 형식: unix_ms
    isEventTime: true
  - 이름: webaclId
    required: true
    설명: 웹 ACL의 GUID.
    type: 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.
