# AWS ALB

## 개요

Panther는 AWS S3를 통해 Amazon Web Services (AWS) Application Load Balancer (ALB) 로그를 수집하는 기능을 지원합니다.

## Panther에 AWS ALB 로그를 온보딩하는 방법

ALB 로그를 Panther로 가져오려면 Panther Console에서 S3 버킷을 설정하여 AWS 계정의 데이터를 스트리밍하세요.

1. 왼쪽 탐색 모음에서 Panther Console의 **구성** > **로그 소스**.
2. 클릭 **새로 만들기.**
3. "AWS Application Load Balancer"를 검색한 다음 해당 타일을 클릭하세요.
4. 슬라이드아웃 패널에서 **설정 시작**.
5. 다음을 따르세요 [데이터 전송을 위해 S3를 구성하는 Panther의 문서](/ko/data-onboarding/data-transports/aws/s3.md).

## Panther가 관리하는 탐지

다음을 참조하세요 [Panther가 관리하는](/ko/detections/panther-managed.md) 의 AWS용 룰 [panther-analysis GitHub 저장소에서](https://github.com/panther-labs/panther-analysis/tree/main/rules).

## 지원되는 ALB 로그

### AWS.ALB

Application Load Balancer 로그는 애플리케이션 로드 밸런서에 대한 계층 7 네트워크 로그입니다. 자세한 내용은 다음을 참조하세요. [ALB 액세스 로그에 대한 AWS 문서](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-access-logs.html).

```yaml
schema: AWS.ALB
parser:
  native:
    name: AWS.ALB
description: Application Load Balancer 로그는 애플리케이션 로드 밸런서에 대한 계층 7 네트워크 로그입니다.
referenceURL: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-access-logs.html
fields:
  - name: type
    required: true
    description: 요청 또는 연결의 유형입니다.
    type: string
  - 이름: 타임스탬프
    required: true
    description: 로드 밸런서가 클라이언트에 응답을 생성한 시간(UTC)입니다. WebSocket의 경우 연결이 닫힌 시간입니다.
    유형: 타임스탬프
    timeFormat: rfc3339
  - name: elb
    description: 로드 밸런서의 리소스 ID입니다. 액세스 로그 항목을 구문 분석하는 경우 리소스 ID에 슬래시(/)가 포함될 수 있습니다.
    type: string
  - name: clientIp
    description: 요청을 보낸 클라이언트의 IP 주소입니다.
    type: string
  - name: clientPort
    description: 요청을 보낸 클라이언트의 포트입니다.
    type: bigint
  - name: targetIp
    description: 이 요청을 처리한 대상의 IP 주소입니다.
    type: string
  - name: targetPort
    description: 이 요청을 처리한 대상의 포트입니다.
    type: bigint
  - name: requestProcessingTime
    description: 로드 밸런서가 요청을 받은 시점부터 해당 요청을 대상에 보낸 시점까지의 총 경과 시간(초, 밀리초 정밀도)입니다. 로드 밸런서가 요청을 대상에 전달할 수 없는 경우 이 값은 -1로 설정됩니다. 이는 대상이 유휴 시간 초과 전에 연결을 닫거나 클라이언트가 잘못된 요청을 보낼 때 발생할 수 있습니다. 등록된 대상이 유휴 시간 초과 전에 응답하지 않는 경우에도 이 값은 -1로 설정될 수 있습니다.
    type: float
  - name: targetProcessingTime
    description: 로드 밸런서가 요청을 대상에 보낸 시점부터 대상이 응답 헤더를 보내기 시작한 시점까지의 총 경과 시간(초, 밀리초 정밀도)입니다. 로드 밸런서가 요청을 대상에 전달할 수 없는 경우 이 값은 -1로 설정됩니다. 이는 대상이 유휴 시간 초과 전에 연결을 닫거나 클라이언트가 잘못된 요청을 보낼 때 발생할 수 있습니다. 등록된 대상이 유휴 시간 초과 전에 응답하지 않는 경우에도 이 값은 -1로 설정될 수 있습니다.
    type: float
  - name: responseProcessingTime
    description: 로드 밸런서가 대상에서 응답 헤더를 받은 시점부터 클라이언트에 응답을 보내기 시작한 시점까지의 총 경과 시간(초, 밀리초 정밀도)입니다. 여기에는 로드 밸런서에서의 큐잉 시간과 로드 밸런서에서 클라이언트로의 연결 획득 시간이 모두 포함됩니다. 로드 밸런서가 요청을 대상에 보낼 수 없는 경우 이 값은 -1로 설정됩니다. 이는 대상이 유휴 시간 초과 전에 연결을 닫거나 클라이언트가 잘못된 요청을 보낼 때 발생할 수 있습니다.
    type: float
  - name: elbStatusCode
    required: true
    description: 로드 밸런서 응답의 상태 코드입니다.
    type: bigint
  - name: targetStatusCode
    description: 대상 응답의 상태 코드입니다. 이 값은 대상과 연결이 설정되었고 대상이 응답을 보낸 경우에만 기록됩니다.
    type: bigint
  - name: receivedBytes
    description: 클라이언트(요청자)로부터 받은 요청의 크기(바이트)입니다. HTTP 요청의 경우 헤더가 포함됩니다. WebSocket의 경우 연결을 통해 클라이언트로부터 받은 총 바이트 수입니다.
    type: bigint
  - name: sentBytes
    description: 클라이언트(요청자)에게 보낸 응답의 크기(바이트)입니다. HTTP 요청의 경우 헤더가 포함됩니다. WebSocket의 경우 연결을 통해 클라이언트에게 보낸 총 바이트 수입니다.
    type: bigint
  - name: requestHttpMethod
    description: 요청에서 구문 분석한 HTTP 메서드입니다.
    type: string
  - name: requestUrl
    description: 요청에서 구문 분석한 HTTP URL입니다.
    type: string
  - name: requestHttpVersion
    description: 요청에서 구문 분석한 HTTP 버전입니다.
    type: string
  - name: userAgent
    description: 요청을 시작한 클라이언트를 식별하는 User-Agent 문자열입니다. 이 문자열은 하나 이상의 제품 식별자, product[/version]으로 구성됩니다. 문자열이 8KB를 초과하면 잘립니다.
    type: string
  - name: sslCipher
    description: '[HTTPS listener] SSL 암호입니다. 리스너가 HTTPS 리스너가 아니면 이 값은 NULL로 설정됩니다.'
    type: string
  - name: sslProtocol
    description: '[HTTPS listener] SSL 프로토콜입니다. 리스너가 HTTPS 리스너가 아니면 이 값은 NULL로 설정됩니다.'
    type: string
  - name: targetGroupArn
    description: 대상 그룹의 Amazon Resource Name(ARN)입니다.
    type: string
  - name: traceId
    description: X-Amzn-Trace-Id 헤더의 내용입니다.
    type: string
  - name: domainName
    description: "[HTTPS listener] TLS 핸드셰이크 동안 클라이언트가 제공한 SNI 도메인입니다. 클라이언트가 SNI를 지원하지 않거나 도메인이 인증서와 일치하지 않아 기본 인증서가 클라이언트에 제공되는 경우 이 값은 NULL로 설정됩니다."
    type: string
  - name: chosenCertArn
    description: '[HTTPS listener] 클라이언트에 제공된 인증서의 ARN입니다. 세션이 재사용되면 이 값은 session-reused로 설정됩니다. 리스너가 HTTPS 리스너가 아니면 이 값은 NULL로 설정됩니다.'
    type: string
  - name: matchedRulePriority
    description: 요청과 일치한 룰의 우선순위 값입니다. 룰이 일치한 경우 1에서 50,000 사이의 값입니다. 룰이 일치하지 않고 기본 작업이 수행된 경우 이 값은 0으로 설정됩니다. 룰 평가 중 오류가 발생하면 -1로 설정됩니다. 그 외의 다른 오류의 경우 NULL로 설정됩니다.
    type: bigint
  - name: requestCreationTime
    description: 로드 밸런서가 클라이언트로부터 요청을 받은 시간입니다.
    유형: 타임스탬프
    timeFormat: rfc3339
  - name: actionsExecuted
    description: 요청 처리 시 수행된 작업입니다. 이 값은 쉼표로 구분된 목록이며, Actions Taken에 설명된 값들을 포함할 수 있습니다. 잘못된 요청과 같이 작업이 수행되지 않은 경우 이 값은 NULL로 설정됩니다.
    type: array
    element:
      type: string
  - name: redirectUrl
    description: HTTP 응답의 location 헤더에 대한 리디렉션 대상 URL입니다. 리디렉션 작업이 수행되지 않은 경우 이 값은 NULL로 설정됩니다.
    type: string
  - name: errorReason
    description: 오류 사유 코드입니다. 요청이 실패한 경우 Error Reason Codes에 설명된 오류 코드 중 하나입니다. 수행된 작업에 인증 작업이 포함되지 않거나 대상이 Lambda 함수가 아닌 경우 이 값은 NULL로 설정됩니다.
    type: string
  - name: targetPortList
    description: 이 요청을 처리한 대상의 IP 주소와 포트를 공백으로 구분한 목록으로, 큰따옴표로 둘러싸여 있습니다. 현재 이 목록에는 하나의 항목만 포함될 수 있으며 target:port 필드와 일치합니다.
    type: array
    element:
      type: string
      indicators:
        - net_addr
  - name: targetStatusList
    description: 대상 응답의 상태 코드 목록을 공백으로 구분한 것으로, 큰따옴표로 둘러싸여 있습니다. 현재 이 목록에는 하나의 항목만 포함될 수 있으며 target_status_code 필드와 일치합니다. 이 값은 대상과 연결이 설정되었고 대상이 응답을 보낸 경우에만 기록됩니다. 그렇지 않으면 -로 설정됩니다.
    type: array
    element:
      type: string
  - name: classification
    description: desync 완화를 위한 분류로, 큰따옴표로 둘러싸여 있습니다. 요청이 RFC 7230을 준수하지 않는 경우 가능한 값은 Acceptable, Ambiguous, Severe입니다. 요청이 RFC 7230을 준수하는 경우 이 값은 -로 설정됩니다.
    type: string
  - name: classificationReason
    description: 분류 사유 코드로, 큰따옴표로 둘러싸여 있습니다. 요청이 RFC 7230을 준수하지 않는 경우 Classification reasons에 설명된 분류 코드 중 하나입니다. 요청이 RFC 7230을 준수하는 경우 이 값은 -로 설정됩니다.
    type: string
```


---

# Agent Instructions: 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:

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

The question should be specific, self-contained, and written in natural language.
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.
