> 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 로그 수집 기능을 사용하면, 웹훅으로 로그 이벤트를 Panther로 직접 보낼 수 있습니다(본인 또는 제3자가). 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로 데이터를 보낼 때는 특정 사양이 적용됩니다.

### 최대 크기

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

다음을 할 수 있습니다 [압축](#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와 요청을 보내는 엔터티 간에 공유되므로 공유 비밀이라고 불립니다. 예를 들어 로그 이벤트를 전송하는 타사 SaaS 도구처럼요. `POST` 요청을 보내는

### HMAC

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

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

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

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

1. Panther에 입력한 비밀 키를 사용해 HMAC hex digest로 요청 페이로드의 해시를 계산합니다.
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

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

### 기본

기본 인증을 사용하면, 소스 설정 중에 사용자 이름과 비밀번호를 정의합니다. 요청을 보내는 엔터티는 `POST` Panther로의 요청에 다음 형식의 헤더를 포함해야 합니다 `Authorization: Basic aGVsbG8=`. "Basic" 뒤의 문자열은 `기본` 키워드 다음에 [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 콘솔의 왼쪽 탐색 표시줄에서 다음을 클릭합니다: **구성** > **로그 소스**.
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 Token**.
     * 입력하는 값에는 "Bearer"를 포함하지 마세요.
     * 반드시 **Bearer Token** 값을 안전하게 보관하세요. 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).
   * 해당 **이벤트가 처리되지 않을 때 알러트를 트리거** 설정의 기본값은 **YES**. 일정 시간이 지나 로그 소스에서 데이터 흐름이 중지되면 알림을 받게 되므로 이 기능을 활성화한 상태로 두는 것을 권장합니다. 기간은 구성 가능하며 기본값은 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 로그 소스를 만든 후에는, 다음을 수행하여 Panther로 데이터를 보낼 수 있습니다 `POST` 소스 URL로 요청을 보냅니다.

요청이 다음을 통과하는지 확인하세요 [인증 방법](#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) 또는 [Data Explorer](/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:

```
GET https://docs.panther.com/ko/data-onboarding/data-transports/http.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.
