> 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/data-transports/http.md).

# HTTP 소스

## 개요

Panther의 HTTP 로그 수집 기능을 사용하면, 귀하(또는 제3자)는 웹훅을 통해 로그 이벤트를 Panther로 직접 보낼 수 있습니다. HTTP 로그 소스를 만들면 Panther는 요청을 보낼 수 있는 URL 엔드포인트를 제공합니다. `POST` 수집할 데이터를 포함한 요청입니다.

직접 API 풀러가 없는 로그 소스의 경우, HTTP 소스를 사용하면 추가 인프라를 설정하지 않고도 Panther로 데이터를 수집할 수 있습니다(다른 [데이터 전송 방식](/ko/data-onboarding/data-transports.md)과 같은 [S3](/ko/data-onboarding/data-transports/aws/s3.md) 또는 [Google Cloud Storage](/ko/data-onboarding/data-transports/google/cloud-storage.md)).

{% hint style="info" %}
Panther의 HTTP 소스는 실제로 HTTPS 소스이며, 이는 Panther가 제공하는 엔드포인트가 다음으로 시작함을 의미합니다. `https://`이러한 소스는 "HTTP" 또는 "HTTPS"로 혼용되어 불리지만, 항상 암호화(TLS)로 보호됩니다.
{% endhint %}

## 페이로드 요구 사항

HTTP 엔드포인트를 통해 Panther로 데이터를 보낼 때는 특정 사양이 적용됩니다.

### 최대 크기

지원되는 최대 페이로드 크기는 1 MB입니다. 이 제한에는 헤더가 포함됩니다.

다음을 할 수 있습니다 [압축](#compression) 처리량을 극대화하려면 전송하기 전에 페이로드를 압축하세요.

### 압축

페이로드는 선택적으로 압축된 상태로 전송할 수 있습니다. 압축 사양에 대해 자세히 알아보려면 [Panther에서 압축된 데이터 수집](/ko/data-onboarding/data-transports.md#ingesting-compressed-data-in-panther).

### 스트림 유형

Panther는 HTTP 소스를 통해 수집된 데이터의 스트림 유형을 자동으로 추론합니다. 다음 스트림 유형이 지원됩니다:

* JSON
* 줄
* JSON 배열
* XML

다음의 [각 스트림 유형의 설명과 예시는 여기에서 확인하세요](/ko/data-onboarding/custom-log-types/reference.md#stream-type).

## 인증

HTTPS 엔드포인트를 보호하고 인증된 소스에서의 요청만 처리하도록 하려면, Panther는 다양한 인증 모드를 제공합니다.

### **공유 비밀**

공유 비밀 인증(토큰 인증이라고도 함)을 사용하면, 소스 설정 시 헤더 이름과 공유 비밀 값을 구성합니다. 요청을 보내는 주체는 `POST` Panther로 보내는 요청에 해당 이름과 비밀 값을 가진 헤더를 포함해야 합니다. Panther는 헤더와 비밀 값이 구성과 일치하는 페이로드만 수락합니다.

이 방법이 공유 비밀이라고 불리는 이유는 비밀 값이 Panther와 요청을 보내는 주체 사이에 공유되기 때문입니다. 예를 들어, 로그 이벤트를 내보내는 제3자 SaaS 도구가 이에 해당합니다. `POST` Panther로 요청을 보내는 제3자 SaaS 도구와 같은 경우입니다.

### HMAC

HMAC 인증을 사용하면 소스 설정 시 헤더 이름, 비밀 키 값, 해싱 알고리즘을 구성합니다.

요청을 보내는 주체는 `POST` Panther로 보내는 각 요청의 페이로드를 해시하고, 비밀 키 값을 사용해 서명을 생성한 다음, 그 서명을 헤더에 포함해야 합니다. 그런 다음 Panther는 헤더에서 서명을 가져와 비밀 키를 사용해 동일한 서명 계산을 수행합니다. 서명이 일치하는 요청만 수락됩니다.

#### HMAC 해시 서명 계산하기

HMAC 인증을 사용하여 HTTP 소스를 설정한 후에는 새 엔드포인트에 대한 각 요청마다 해시 서명을 계산하여 전송해야 합니다. 방법은 다음과 같습니다. `POST` 요청을 새 엔드포인트로 보내세요. 이를 위해:

1. HMAC hex digest와 Panther에 입력한 비밀 키를 사용하여 요청 페이로드의 해시를 계산합니다.
2. 해시를 16진수 문자열로 변환합니다.
   * 다음을 참조하세요 [HMAC 해시 서명 생성 예제 코드 스니펫](#example-code-snippet-for-generating-the-hmac-hash-signature) 아래를 참조하세요.
3. 16진수 문자열 값을 요청 헤더에 다음과 같이 포함합니다. `{"<header name>": "sha256=<hex string>"}` 또는 `{"<header name>": "sha1=<hex string>"}`은(는) 선택한 해싱 알고리즘에 따라 다릅니다.

<details>

<summary>HMAC 해시 서명 생성 예제 코드 스니펫</summary>

다음 코드 스니펫을 사용하여 `<hex_string>` 값을 생성할 수 있습니다(가정: `sha256` 해싱 알고리즘):

```python
import hmac, hashlib

def signature(body: bytes, secret: bytes) -> str:
    sig = hmac.new(secret, body, hashlib.sha256).hexdigest()
    return f"sha256={sig}"
```

</details>

### Bearer

Bearer 인증을 사용하면 소스 설정 시 bearer 토큰 값을 정의합니다. 요청을 보내는 주체는 `POST` Panther로 보내는 요청에 다음 형식의 헤더를 포함해야 합니다. `Authorization: Bearer <token_value_here>`Panther는 일치하는 bearer 토큰이 있는 요청만 수락합니다.

### 기본

기본 인증을 사용하면 소스 설정 시 사용자 이름과 비밀번호를 정의합니다. 요청을 보내는 주체는 `POST` Panther로 보내는 요청에 다음 형식의 헤더를 포함해야 합니다. `Authorization: Basic aGVsbG8=`의 문자열 뒤에 오는 부분은 `기본` 키워드가 따릅니다 [RFC 7617](https://datatracker.ietf.org/doc/html/rfc7617#section-2)을 의미하므로, 발신자는 다음 값의 인코딩을 수행해야 합니다. `username:password` 을(를) 사용하여 `base64`Panther는 사용자 이름과 비밀번호가 일치하는 요청만 수락합니다.

### **없음**

매우 권장되지는 않지만, 인증 없이 엔드포인트를 구성할 수 있습니다. 즉, Panther는 들어오는 요청에 대해 *어떠한* 인증 검사도 수행하지 않으며, 사실상 URL이 모든 `POST` 요청에 열려 있게 됩니다.

{% hint style="warning" %}
엔드포인트에 인증을 설정하는 것이 강력히 권장됩니다. **없음** 는 발신자가 제공하는 헤더를 제어할 수 없는 상황에서 제공됩니다.
{% endhint %}

## Panther에서 HTTP 로그 소스를 설정하는 방법

Panther에서 HTTP 로그 소스를 설정하려면 아래 단계를 따르세요. 또한 [데이터 수집 동영상 개요](/ko/data-onboarding.md#video-overview) 를 통해 HTTP 소스 설정을 빠르게 살펴볼 수도 있습니다.

### Panther에서 HTTP 로그 소스 만들기

1. Panther Console의 왼쪽 탐색 모음에서 **로그 소스**.
2. 오른쪽 상단에서 다음을 클릭하세요: **새로 만들기.**
3. 다음 타일을 클릭하세요: **HTTP** 타일.
4. 다음 페이지에서 **구성** 페이지에서 **기본 정보** 섹션에서 다음 필드의 값을 입력하세요:
   * **소스 이름**: 소스의 설명이 담긴 이름을 입력합니다.
   * **스키마 - 선택 사항**: 이 소스가 수집할 하나 이상의 로그 유형을 선택합니다.
     * 이 필드는 선택 사항입니다. 소스가 생성된 후에 이 소스에 스키마를 연결할 수 있습니다. 스키마가 연결되기 전에 HTTP 소스로 전송된 데이터는 [스키마를 추론하는 데](/ko/data-onboarding/custom-log-types.md#inferring-a-custom-schema-from-http-data-received-in-panther).
5. 다음 **인증 유형 선택** 섹션에서 **인증 방식** 를 선택하세요 [선택한](#authentication)**.**\
   ![Under an Authentication header is the question: How would you like Panther to authenticate data sent to this log source? Then, in an open dropdown menu, are five options: Shared Secret, HMAC, Bearer, Basic, None](/files/6ef1a7e6caa54dd299d535994a35512e5d348e04)
6. 아래 지침을 따르세요. **인증 방식** 선택한 항목에 대해:
   * **공유 비밀**: 다음을 입력합니다. **헤더 이름**를 생성합니다. **공유 비밀 값**.
     * 다음 값을 안전하게 복사하여 **공유 비밀 값**안전한 위치에 보관하세요. 이 값은 한 번만 표시됩니다. **공유 비밀 값**.
   * **HMAC**: 다음을 입력합니다. **헤더 이름**, 다음을 생성합니다. **비밀 키 값**, 다음을 선택합니다. **해싱 알고리즘** (다음 중 하나: **SHA 256** 또는 **SHA 1**).
     * 다음 값을 안전하게 복사하여 **비밀 키 값**안전한 위치에 보관하세요. 이 값은 한 번만 표시됩니다. **비밀 키 값**.
   * **Bearer**: 다음을 입력합니다. **Bearer 토큰**.
     * 입력하는 값에는 "Bearer"를 포함하지 마세요.
     * 값을 안전하게 저장하세요. **Bearer 토큰** 값은 Panther Console에서 표시되지 않습니다.
   * **기본**: 입력 **사용자 이름** 및 **비밀번호** 값.
     * 값을 안전하게 저장하세요. **비밀번호** 값은 Panther Console에서 표시되지 않습니다.
   * **없음**: 추가 구성이 필요하지 않습니다.
7. 클릭합니다 **설정**. 성공 화면으로 이동됩니다:\\

   <figure><img src="/files/e0820e5acb9452e294cfe3ba72060f0fbbfd3b32" alt="The success screen reads, &#x22;Everything looks good! Panther will now automatically pull &#x26; process logs from your account&#x22;" width="281"><figcaption></figcaption></figure>

   * 다음 값을 기록해 두세요. **HTTP 소스 URL**. 웹훅은 이 엔드포인트로 `POST` 요청을 보내야 합니다.
   * 선택적으로 하나 이상의 [디택션 팩](https://docs.panther.com/detections/panther-managed/packs).
   * 아직 하지 않았다면 다음을 클릭하세요: **스키마 연결 또는 추론** 소스에 하나 이상의 스키마를 연결합니다. 또는 [데이터를 받은 후 스키마를 추론할 수 있습니다.](/ko/data-onboarding/custom-log-types.md#how-to-infer-a-schema).
   * 다음 **이벤트가 처리되지 않으면 알러트를 발생시키기** 설정의 기본값은 **예**. 일정 시간이 지난 후 로그 소스에서 데이터 흐름이 멈추면 알러트를 받게 되므로 이 설정을 활성화한 상태로 두는 것을 권장합니다. 이 시간 범위는 구성 가능하며 기본값은 24시간입니다.\\

   <figure><img src="/files/7db146cd7acee3d0704a4a8b2157f230cfa22168" alt="The &#x22;Trigger an alert when no events are processed&#x22; toggle is set to YES. The &#x22;How long should Panther wait before it sends you an alert that no events have been processed&#x22; setting is set to 1 Day" width="320"><figcaption></figcaption></figure>

   * 엔드포인트 생성에는 최대 5분이 걸릴 수 있으며, 보통 3분 이내에 완료됩니다.
     * 생성 과정을 모니터링하려면 **로그 소스 보기**를 클릭하세요. 소스의 세부 정보 페이지로 이동하며, সেখানে **소스 상태**:\\

       <figure><img src="/files/7001d21878a0e003989222d9dbfb91f559bb57a3" alt="" width="375"><figcaption></figcaption></figure>

## HTTP 로그 소스로 데이터 보내기

HTTP 로그 소스를 만든 후에는 `POST` 소스 URL로 요청을 보내 Panther에 데이터를 전송할 수 있습니다.

요청이 [인증 방식](#authentication) 을(를) 통과하는지 확인하세요.

### 다음 예제는 `curl`

```sh
curl --data '{ "hello": "world" }' \
    -H "x-custom-secret: mysecret" \
    https://{YOUR_URL}
```

## 오류 처리

HTTP 엔드포인트가 `4xx` 또는 `5xx` 상태 코드를 반환하는 경우, Panther는 해당 요청을 자동으로 재시도하지 않습니다. 서버 가용성에 일시적인 문제가 있었을 수 있으므로 발신자가 요청을 재시도하는 것이 권장됩니다. 오류가 계속되면 [Panther 지원팀에 문의하세요](/ko/resources/help.md#contact-panther-support).

## 수집된 로그 보기

로그 소스가 구성된 후 다음을 사용하여 수집된 데이터를 검색할 수 있습니다: [검색](/ko/search/search-tool.md) 또는 [데이터 탐색기](/ko/search/data-explorer.md).


---

# 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/data-transports/http.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.
