# AWS NLB

## 개요

{% hint style="info" %}
AWS NLB 로그 수집은 [오픈 베타](https://github.com/panther-labs/panther-docs/blob/main/docs/gitbook/data-onboarding/resources/help/glossary.md#beta-features) Panther 버전 1.118부터 시작되며 모든 고객이 사용할 수 있습니다. 버그 리포트나 기능 요청 사항은 Panther 지원팀에 공유해 주세요.
{% endhint %}

Panther는 AWS S3를 통해 Amazon Web Services(AWS) Network Load Balancer(NLB) 로그 수집을 지원합니다.

{% hint style="info" %}
AWS NLB 액세스 로그는 TLS 리스너만 지원합니다. TCP 및 UDP 리스너는 액세스 로그를 생성하지 않습니다.
{% endhint %}

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

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

1. Panther 콘솔의 왼쪽 탐색 창에서 **구성** > **로그 소스**.
2. 를 선택하고 Panther가 설치된 계정 ID를 입력하십시오. **새로 만들기.**
3. "AWS Network Load Balancer"를 검색한 다음 해당 타일을 클릭하세요.
4. 오른쪽 상단 모서리에서 클릭하세요 **설정 시작**.
5. 다음을 따르세요 [데이터 전송을 위한 S3 구성에 관한 Panther 문서](https://docs.panther.com/ko/data-onboarding/data-transports/aws/s3).

## Panther 관리 디텍션

참조 [Panther 관리](https://docs.panther.com/ko/detections/panther-managed) AWS용 룰 [panther-analysis GitHub 리포지토리](https://github.com/panther-labs/panther-analysis/tree/main/rules).

## 지원되는 NLB 로그

### AWS.NLB

네트워크 로드 밸런서의 레이어 4 TLS 연결 로그입니다. 자세한 내용은 [NLB 액세스 로그에 관한 AWS 문서](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-access-logs.html).

```yaml
스키마: AWS.NLB
파서:
  네이티브:
    이름: AWS.NLB
설명: 네트워크 로드 밸런서의 레이어 4 TLS 연결 로그입니다.
참고 URL: https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-access-logs.html
필드:
  - 이름: type
    required: true
    설명: 요청 또는 연결의 유형입니다.
    type: string
  - name: version
    required: true
    설명: 로그 형식 버전입니다.
    type: string
  - 이름: time
    required: true
    설명: 연결이 종료된 시간입니다.
    type: timestamp
    시간 형식: rfc3339
  - 이름: elb
    설명: 로드 밸런서의 리소스 ID입니다.
    type: string
  - 이름: listener
    설명: TLS 리스너의 리소스 ID입니다.
    type: string
  - 이름: clientIp
    설명: 클라이언트의 IP 주소입니다.
    type: string
  - 이름: clientPort
    설명: 클라이언트의 포트입니다.
    type: bigint
  - 이름: destinationIp
    설명: 대상의 IP 주소입니다.
    type: string
  - 이름: destinationPort
    설명: 대상의 포트입니다.
    type: bigint
  - 이름: connectionTime
    설명: 연결의 총 시간을 밀리초 단위로 나타냅니다.
    type: bigint
  - 이름: tlsHandshakeTime
    설명: TLS 핸드셰이크에 소요된 총 시간을 밀리초 단위로 나타냅니다.
    type: bigint
  - 이름: receivedBytes
    설명: 클라이언트로부터 수신된 바이트 수입니다.
    type: bigint
  - 이름: sentBytes
    설명: 클라이언트에 전송된 바이트 수입니다.
    type: bigint
  - 이름: incomingTlsAlert
    설명: 알러트가 수신된 경우 TLS 알러트 코드입니다.
    type: bigint
  - 이름: chosenCertArn
    설명: 클라이언트에 제시된 인증서의 ARN입니다.
    type: string
  - 이름: chosenCertSerial
    설명: 예약된 필드입니다.
    type: string
  - 이름: tlsCipher
    설명: 협상된 TLS 암호화 스위트입니다.
    type: string
  - 이름: tlsProtocolVersion
    설명: TLS 프로토콜 버전입니다.
    type: string
  - 이름: tlsKeyExchange
    설명: TLS 키 교환 알고리즘입니다.
    type: string
  - 이름: domainName
    설명: 클라이언트가 제공한 SNI 호스트명입니다.
    type: string
  - 이름: alpnFeProtocol
    설명: ALPN을 통해 클라이언트와 협상된 프로토콜입니다.
    type: string
  - 이름: alpnBeProtocol
    설명: ALPN을 통해 백엔드와 협상된 프로토콜입니다.
    type: string
  - 이름: alpnClientPreferenceList
    설명: 클라이언트가 제시한 ALPN 선호 목록의 프로토콜 목록입니다.
    type: array
    element:
      type: string
  - 이름: tlsConnectionCreationTime
    설명: TLS 연결이 설정된 시간입니다.
    type: timestamp
    시간 형식: rfc3339
```
