> 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/panther/overview.md).

# Panther 개발자 워크플로 개요

Panther Developer Workflows는 Panther Console이 아닌 워크플로우로, Panther 계정과 상호작용하는 데 사용할 수 있으며, 다음을 포함합니다 [지속적 통합 및 지속적 배포(CI/CD)](/ko/panther/detections-repo/ci-cd.md), [API](/ko/panther/api.md), the [Panther Analysis Tool (PAT)](/ko/panther/detections-repo/pat.md), the [pantherlog 도구](/ko/panther/pantherlog.md), 그리고 기타 운영 도구.

이 페이지에서는 Panther와 함께 사용할 수 있는 개발자 워크플로우와 도구를 설명합니다. Panther Developer Workflows는 비-Console 워크플로우를 사용하는 데 익숙한 기술 사용자층을 대상으로 합니다.

{% hint style="info" %}
웹 애플리케이션 기반 워크플로우 사용에 대한 정보를 찾고 계신가요?

* Panther Console 시작하기에 대해 자세히 알아보려면 [빠른 시작 가이드](/ko/quick-start.md).
* Panther Console에서 디택션을 관리하는 방법에 대한 정보는 [디택션 문서를 참조하세요.](/ko/detections.md).
  {% endhint %}

## Panther가 관리하는 디택션 사용하기

CI/CD 사용자는 GitHub의 [panther-analysis 저장소](https://github.com/panther-labs/panther-analysis). 이 작업은 저장소의 공개 포크를 유지하거나 복제된 비공개 저장소를 유지함으로써 수행할 수 있습니다.

panther-analysis의 디택션은 광범위하게 적용 가능하지만, 조직에 가장 중요한 알림만 수신하도록 사용자 지정할 수 있습니다. 새로운 디택션의 이점을 활용하려면 panther-analysis에서 업데이트를 가져와야 합니다.

지침은 [panther-analysis 사용하기](/ko/panther/detections-repo.md).

## CI/CD 워크플로를 구성할 수 있습니다.

CI/CD 워크플로우로 디택션 파이프라인을 자동화하고 보안을 강화하세요: GitHub의 panther-analysis 저장소에서 Panther가 관리하는 Python 디택션을 활용하고, 디택션을 CI/CD 파이프라인에 맞게 조정한 다음, 디택션을 Panther Console에 업로드하세요.

Panther는 다음 플랫폼 사용에 특화된 CI/CD 문서를 제공합니다:

* [CircleCI](/ko/panther/detections-repo/ci-cd/deployment-workflows/circle-ci.md)
* [GitHub Actions](/ko/panther/detections-repo/ci-cd/deployment-workflows/github-actions.md)

이 지침은 다른 워크플로우에 맞게 조정할 수 있습니다.

### Panther Analysis Tool 사용하기

[PAT](https://github.com/panther-labs/panther_analysis_tool) 는 소스 코드를 사용해 Panther 디택션을 테스트, 패키징, 배포하기 위한 오픈 소스 유틸리티입니다. 이는 Panther 디택션을 프로그래밍 방식으로 또는 CI/CD 파이프라인 내에서 관리하는 것과 같은 개발자 중심 워크플로우를 위해 설계되었습니다. 자세히 알아보려면 [Panther Analysis Tool](/ko/panther/detections-repo/pat.md).

### CLI 워크플로우가 Panther Console과 상호작용하는 방식

업로드한 디택션은 Panther Console에서 수동으로 생성한 디택션 옆에 표시됩니다.

### Panther Console에서 GitHub 풀 리퀘스트 만들기

{% hint style="warning" %}
Panther Console에서 GitHub 풀 리퀘스트 만들기는 Panther 버전 1.125부터 오픈 베타입니다. 버그 보고와 기능 요청은 Panther 지원 팀과 공유해 주세요.
{% endhint %}

팀에 GitHub에 Panther 디택션 콘텐츠 저장소가 있다면, [Panther GitHub App을 설치할 수 있습니다](/ko/panther/detections-repo/github-app.md) 해당 저장소에 설치하면 Panther Console에서 디택션을 생성하거나 업데이트할 때 Panther에 디택션을 즉시 저장하는 대신 GitHub에서 풀 리퀘스트가 열립니다.

이를 통해 팀은 CLI와 Panther Console 양쪽에서 동시에 작업할 수 있으며, Console에서 변경한 내용이 다음 CLI 업로드 시 덮어써질까 걱정할 필요가 없습니다.

저장소 구성을 저장하면 **설정** > **Developer Tools** > **Git Sync**, Panther Console은 일반적인 **배포** 또는 **저장** 버튼을 **PR 만들기** 로 대체합니다. 지원되는 디택션을 생성하거나 편집할 때. **PR 만들기** 를 클릭하면 Console에서 수행한 변경 사항이 반영된 풀 리퀘스트가 GitHub 저장소에서 열립니다. Panther는 구성한 브랜치에서 새 기능 브랜치를 생성하고 그 브랜치로 풀 리퀘스트를 다시 제출합니다. (Panther GitHub App이 해당 저장소에 설치되고 연결되기 전까지 **PR 만들기** 는 실패합니다—자세한 내용은 [Panther GitHub App 설정하기](/ko/panther/detections-repo/github-app.md) 전체 설정 절차를 참조하세요.)

<figure><img src="/files/f2d0178b7d72d137d95691984ed8b45d45d9c973" alt="The detection editor in the Panther Console with a Name field, Configure tab, and Log Types selector; the top-right toolbar shows an Enabled toggle, a Cancel button, and a Create PR button."><figcaption></figcaption></figure>

#### 풀 리퀘스트의 모습

Console에서 저장할 때마다 자체 풀 리퀘스트가 생성됩니다—Panther는 여러 편집 내용을 하나의 PR로 일괄 처리하지 않습니다. 브랜치 이름은 `panther-pr-{디택션-id}-{timestamp}-{random}` 이며, 구성한 브랜치에서 분기됩니다.

다음 경우 **새 디택션 생성 중**, the **PR 만들기** 모달에서 YAML 파일 경로, PR 제목, PR 설명을 설정할 수 있습니다. 비워 둔 필드에는 기본값이 사용됩니다:

<figure><img src="/files/c9977c9017713c0fed6fc867aa023ad20e50dc9d" alt="The &#x27;Create Pull Request&#x27; modal in the Panther Console, with fields for YAML file path, PR title (optional), and PR description (optional), and Cancel and Create Pull Request buttons. A note above the title field reads &#x27;PR will contain an additional file: detection-repo/rules/custom/test_rule.py&#x27;."><figcaption></figcaption></figure>

* **YAML 파일 경로**: `rules/custom/{디택션-id}.yml`. Python 디택션의 경우, 같은 경로에 Python 파일이 추가되며 `.py` 확장.
* **PR 제목**: `Panther 자동 디택션 {디택션-id}에 대한 PR 생성`
* **PR 설명**: `이것은 새 디택션을 위한 자동 생성된 끌어오기 요청입니다: {detection-id}`

다음 경우 **기존 디택션 편집**, 저장 시 모달 없이 PR이 인라인으로 생성됩니다. 기존 파일 경로가 재사용되며, 제목과 설명은 항상 이러한 기본값을 사용합니다(현재 편집 시에는 사용자 지정할 수 없습니다):

* **PR 제목**: `Panther 자동 디택션 편집 PR, {디택션-id}용`
* **PR 설명**: `이것은 디택션 편집을 위한 자동 생성된 끌어오기 요청입니다: {detection-id}`

커밋은 가능한 경우 Panther 사용자(이름과 이메일은 Panther 계정에서 가져옴)에 의해 작성되며, 그렇지 않으면 다음으로 대체됩니다 `panther-디택션-bot <do-not-reply@panther.com>` 그렇지 않으면.

GitHub에서 풀 리퀘스트가 병합된 후에도, 여전히 다음을 사용해야 합니다. [Panther Analysis Tool (PAT)](/ko/panther/detections-repo/pat.md) 디택션 콘텐츠를 업로드하기 위해, 아마도 GitHub Action을 사용하게 될 것입니다—참조: [GitHub Actions를 통해 Panther 콘텐츠 관리](/ko/panther/detections-repo/ci-cd/deployment-workflows/github-actions.md).

#### GitHub 풀 리퀘스트 생성의 제한 사항

* 이 워크플로는 현재 디택션으로만 제한되며, Query, Data Model, Global Helper 또는 Look Up Table에는 사용할 수 없습니다

## Panther API

Panther는 공개 GraphQL-over-HTTP API를 제공합니다. 즉, GraphQL 쿼리를 작성하고 일반적인 HTTP 요청을 사용하여 API를 호출할 수 있습니다. GraphQL에 대한 자세한 내용은 다음을 참조하세요.[ GraphQL 문서](https://graphql.org/learn/).\
\
Panther API는 이미 사용 중인 어떤 도구와도 통합할 수 있습니다. 스크립트든 CI/CD 워크플로든 상관없이, API를 사용하면 일반적으로 Panther Console에 수동으로 로그인해야 하는 프로세스를 코드로 정의하여 워크플로를 자동화하고 작업을 빠르게 완료할 수 있습니다.

Panther API는 토큰 순환, 알림, 클라우드 계정 관리, 로그 소스 관리, 사용자 및 역할 관리, 데이터 레이크 쿼리, 사용자 메트릭에 대한 작업을 지원합니다.

### API 워크플로가 Panther Console과 상호작용하는 방식

Panther 자체는 내부적으로 API의 확장된 버전을 사용하므로, Panther API를 사용해 변경하는 내용은 즉시 Panther Console에 반영됩니다.

### 일반적인 API 사용 사례

일반적인 사용 사례는 다음과 같습니다:

* IaaC를 통해 사용자를 관리하고 Role 생성을 자동화하기
* 자체 대시보드에서 사용할 최신 Panther 메트릭 가져오기
* 외부 워크플로의 일부로 Panther에서 알러트를 해결하기
* 특정 이벤트가 발생할 때마다 사용자 지정 Data Explorer 쿼리 실행하기

전체 문서와 Python 및 NodeJS의 엔드투엔드 예시는 다음을 참조하세요 [Panther API](/ko/panther/api.md).

## Terraform

Panther 로그 소스 인프라의 일부를 다음을 사용해 관리할 수 있습니다 [Terraform](https://www.terraform.io/). Terraform을 사용하면 코드를 통해 인프라를 정의하고 프로비저닝할 수 있어, 프로젝트 수명 주기 전반에 걸쳐 변경 사항을 쉽게 관리하고 추적할 수 있습니다. [Panther는 공급자입니다](https://registry.terraform.io/providers/panther-labs/panther/latest) Terraform 레지스트리의

Terraform을 사용해 S3 로그 소스를 관리하는 전체 예시는 다음에서 확인하세요: [Terraform을 사용한 AWS S3 로그 소스 관리](/ko/panther/terraform/s3.md).

## Panther 도구

Panther는 워크플로 내에서 사용할 수 있는 두 가지 개발자 도구를 제공합니다:

* **Panther Analysis Tool (PAT)**: 소스 코드에서 Panther 탐지를 테스트, 패키징 및 배포하기 위한 오픈 소스 유틸리티입니다.
  * PAT 사용 방법은 다음을 참조하세요: [Panther Analysis Tool 문서](/ko/panther/detections-repo/pat.md).
* **Pantherlog**: 로그를 추론하고 파싱하고, 스키마 파일을 검증하며, 단위 테스트를 실행하는 데 사용할 수 있는 CLI 도구입니다.
  * pantherlog 사용 방법에 대한 지침은 [pantherlog 도구 문서](/ko/panther/pantherlog.md).

## Panther MCP 서버

The Panther [Model Context Protocol (MCP)](https://modelcontextprotocol.io/introduction) 서버는 MCP에서 Panther와 자연어로 상호작용할 수 있게 해줍니다 [클라이언트](https://modelcontextprotocol.io/clients) 중 원하는 것을 사용하세요. 자세한 내용은 [MCP 서버](/ko/ai/mcp/mcp-server.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/panther/overview.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.
