> 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/search/scheduled-searches.md).

# 저장 및 예약 검색

## 개요

Panther의 [Data Explorer](/ko/search/data-explorer.md) 및 [Search](/ko/search/search-tool.md) 에서 같은 검색을 반복해서 만들지 않도록 검색을 저장할 수 있습니다. 또한 Data Explorer에서 만든 검색을 예약할 수도 있으며, 이를 통해 결과를 나중에 룰에 대해 실행할 수 있습니다. 이 워크플로에는 다음 기능이 포함됩니다:

* [저장된 검색 만들기](#how-to-create-a-saved-search)— 보존된 검색 식입니다.
* [예약된 검색 만들기](#how-to-create-a-scheduled-search)— 지정된 간격으로 실행되도록 예약할 수 있는 저장된 검색입니다.
* [예약된 룰 만들기](/ko/detections/rules.md#how-to-write-scheduled-rules)— 예약된 검색과 연결된 디택션입니다. 검색이 실행될 때마다 반환되는 데이터는 디택션에 대해 실행되며, 일치 항목이 발견되면 알러트가 생성됩니다.

기본적으로 각 Panther 계정은 최대 10개의 활성 예약된 검색으로 제한됩니다. 이 제한은 예방 차원일 뿐이며, 지원 요청을 통해 늘릴 수 있습니다. 이 제한을 높이더라도 Panther에서 추가 비용은 발생하지 않지만, 처리되는 데이터 양에 따라 데이터베이스 백엔드에서 추가 요금이 발생할 수 있습니다.

{% hint style="info" %}
에서 [CLI 워크플로](https://github.com/panther-labs/panther-docs/blob/main/docs/gitbook/search/scheduled-searches/broken-reference/README.md)에서는 저장된 검색과 예약된 검색을 종종 쿼리라고 부릅니다.
{% endhint %}

## 저장된 검색을 만드는 방법

저장된 검색은 보존된 검색 식입니다. 팀이 자주 실행하는 검색을 저장하면 중복 작업을 줄이는 데 도움이 됩니다. Panther Console에서 저장된 검색을 만들 수 있으며( Search 또는 Data Explorer에서), CLI 워크플로(PAT)를 사용하거나 Panther API로도 만들 수 있습니다.

또한 저장된 검색에 변수를 추가하여 템플릿 쿼리를 만들 수 있습니다. 자세한 내용은 [Templated Queries and Macros](/ko/search/scheduled-searches/templated-searches.md).

{% tabs %}
{% tab title="Console" %}
**Panther Console에서 저장된 검색을 만드는 방법**

Panther의 Data Explorer 또는 Search에서 검색을 저장할 수 있습니다. 두 도구에서 저장한 검색은 모두 저장된 검색으로 간주됩니다. 다음을 따르세요. [Data Explorer에서 검색을 저장하는 방법](/ko/search/data-explorer.md#create-a-saved-or-scheduled-search-in-data-explorer)을 참고하고, [Search에서 검색을 저장하는 방법](/ko/search/search-tool.md#creating-a-saved-search).
{% endtab %}

{% tab title="CLI (PAT)" %}
**CLI 워크플로에서 저장된 검색을 만드는 방법**

로컬에서 저장된 검색을 작성한다는 것은 자신의 컴퓨터에서 SQL 쿼리를 정의하는 파일을 만든 다음, 이를 Panther 인스턴스에 업로드하는 것을 의미합니다(일반적으로 [Panther Analysis Tool](/ko/resources/help/glossary.md#panther-analysis-tool-pat)).

로컬 디택션 파일은 GitHub 또는 GitLab 같은 버전 관리 시스템에서 관리하는 것을 권장합니다.

{% hint style="info" %}
Panther의 [오픈 소스 분석 저장소](https://github.com/panther-labs/panther-analysis)를 포크해서 사용하는 것이 가장 좋지만, 처음부터 직접 저장소를 만들 수도 있습니다.
{% endhint %}

**파일 설정**

각 저장된 검색은 다음으로 구성됩니다:

* YAML 파일(`.yml` 또는 `.json` 확장자) 안에 [저장된 검색의 메타데이터 속성](#saved-search-specification-reference).

**폴더 설정**

쿼리를 폴더로 그룹화하는 경우, 업로드 중에 찾을 수 있도록 각 폴더 이름에 `쿼리` 가 포함되어 있어야 합니다(PAT 또는 Console의 대량 업로더 사용).

로그/리소스 유형을 기준으로 검색을 폴더별로 그룹화하는 것을 권장합니다. 오픈 소스 [Panther Analysis](https://github.com/panther-labs/panther-analysis) 리포를 참고로 사용할 수 있습니다.

**저장된 검색 작성**

저장된 검색 파일에서(예: `new-saved-search.yml`) 아래 템플릿에 따라 저장된 검색을 작성하세요.

사용 가능한 전체 필드 목록은 [저장된 검색 사양 참조](#saved-search-specification-reference).

```yaml
AnalysisType: saved_query
QueryName: MySavedQuery
Description: PAT용 저장된 쿼리 예시
Query: |-
    여기에 쿼리를 작성하세요
Tags:
  - 태그
```

**PAT로 콘텐츠 업로드**

* PAT 업로드 명령을 사용하세요:\
  `panther_analysis_tool upload --path <path-to-your-search> --api-token <your-api-token> --api-host https://api.<your-panther-instance-name>.runpanther.net/public/graphql`
  * 값을 다음과 같이 바꾸세요:
    * `<api-token>` : [API 키](https://docs.panther.com/panther-developer-workflows/api#step-1-creating-an-api-token) 를 생성한 것입니다.
    * `<your-panther-instance-name>` : 인스턴스의 동화 같은 이름(예: **carrot-tuna**.runpanther.net).
    * `<path-to-your-query>` : 자신의 컴퓨터에 있는 저장된 검색 경로입니다.

저장된 검색이 업로드되면 Panther Console에서 일반적으로 입력하던 각 필드가 자동으로 채워집니다. 자세한 내용은 [저장된 검색 사양 참조](#saved-search-specification-reference) 에서 필수 및 선택 필드의 전체 목록을 확인하세요.
{% endtab %}

{% tab title="API" %}
**Panther API에서 저장된 검색을 만드는 방법**

* 다음을 참조하세요. `POST` 작업 [Queries](/ko/panther/api/rest/queries.md).
  {% endtab %}
  {% endtabs %}

## 예약된 검색을 만드는 방법

예약된 검색은 일정에 따라 실행되도록 구성된 저장된 검색입니다. Panther Console을 사용할 때 현재는 Data Explorer에서 만든 저장된 검색만 예약할 수 있으며, Search에서 만든 저장된 검색( SQL 및 [PantherFlow](/ko/pantherflow.md)) *을 포함하여)은* 예약할 수 없습니다. 대신 CLI 워크플로 또는 Panther API를 사용해 예약된 검색을 만들고 업로드할 수 있습니다.

{% hint style="info" %}
다음을 사용하는 것을 강력히 권장합니다. `p_occurs_since` 을 예약된 검색에서 —[아래에서 자세히 알아보세요](#using-p_occurs_since-to-define-a-lookback-window).
{% endhint %}

예약된 검색을 만드는 것만으로는 반환된 데이터를 디택션에 대해 실행하거나 [시그널](/ko/detections/signals.md)을 생성하지 않습니다. 이를 수행하려면 [예약된 룰을 만들고](/ko/detections/rules.md#how-to-write-rules-and-scheduled-rules)이를 예약된 검색과 연결해야 합니다.

{% hint style="warning" %}
[고객이 구성한 Snowflake](/ko/system-configuration/panther-deployment-types/legacy-configurations/snowflake-setup.md#customer-configured-snowflake) 계정: 예약된 검색이 실행될 때마다 회사는 데이터베이스 백엔드에서 비용이 발생합니다. 검색이 지정된 시간 제한 내에 완료될 수 있는지 확인하세요. 이 내용은 Panther가 관리하는 Snowflake를 사용하는 계정에는 적용되지 않습니다.
{% endhint %}

{% tabs %}
{% tab title="Data Explorer" %}
**Data Explorer에서 예약된 검색을 만드는 방법**

Data Explorer에서 만든 저장된 검색을 예약하는 방법은 아래 지침 세트 중 하나를 따르세요:

* 아직 Data Explorer에서 저장된 검색을 만들지 않았다면 다음을 따르세요. [Data Explorer에서 저장된 검색 또는 예약된 검색 만들기](/ko/search/data-explorer.md#create-a-saved-or-scheduled-search-in-data-explorer) 지침을 따르되, **4단계의 예약된 검색 만들기** 에 유의하세요.
* 이미 Data Explorer에 검색을 저장했다면 다음을 따르세요. [Data Explorer에서 저장된 검색 또는 예약된 검색 업데이트하기](/ko/search/data-explorer.md#update-a-saved-or-scheduled-search-in-data-explorer) 지침을 따르되 6단계에 유의하세요.
  {% endtab %}

{% tab title="CLI (PAT)" %}
**CLI 워크플로에서 예약된 검색을 만드는 방법**

로컬에서 예약된 검색을 작성한다는 것은 자신의 컴퓨터에서 SQL 쿼리를 정의하는 파일을 만든 다음, 이를 Panther 인스턴스에 업로드하는 것을 의미합니다(일반적으로 [Panther Analysis Tool](/ko/resources/help/glossary.md#panther-analysis-tool-pat)).

로컬 디택션 파일은 GitHub 또는 GitLab 같은 버전 관리 시스템에서 관리하는 것을 권장합니다.

{% hint style="info" %}
Panther의 [오픈 소스 분석 저장소](https://github.com/panther-labs/panther-analysis)를 포크해서 사용하는 것이 가장 좋지만, 처음부터 직접 저장소를 만들 수도 있습니다.
{% endhint %}

**파일 설정**

각 예약된 쿼리는 다음으로 구성됩니다:

* YAML 파일(`.yml` 또는 `.json` 확장자) 안에 [예약된 검색의 메타데이터 속성](#scheduled-search-specification-reference).

다음의 [예시 예약된 검색 YAML 파일을 보세요](https://github.com/panther-labs/panther-analysis/blob/master/templates/example_scheduled_query.yml).

**폴더 설정**

검색을 폴더로 그룹화하는 경우, 각 폴더 이름에 `쿼리` 가 포함되어 있어야 합니다(PAT 또는 Console의 대량 업로더 사용).

로그/리소스 유형을 기준으로 검색을 폴더별로 그룹화하는 것을 권장합니다. 오픈 소스 [Panther Analysis](https://github.com/panther-labs/panther-analysis) 리포를 참고로 사용할 수 있습니다.

**예약된 쿼리 작성**

예약된 검색 파일에서(예: `new-scheduled-search.yml`) 아래 템플릿에 따라 예약된 검색을 작성하세요.

사용 가능한 전체 필드 목록은 [예약된 검색 사양 참조](#scheduled-search-specification-reference).

```yaml
AnalysisType: scheduled_query
QueryName: ScheduledQuery_Example
Description: PAT용 예약된 쿼리 예시
Enabled: true
Query: |-
    Select 1
Tags:
  - 태그   
Schedule:
  CronExpression: "0 0 29 2 *"
  RateMinutes: 0
  TimeoutMinutes: 2
```

**PAT로 콘텐츠 업로드**

* PAT 업로드 명령을 사용하세요:\
  `panther_analysis_tool upload --path <path-to-your-search> --api-token <your-api-token> --api-host https://api.<your-panther-instance-name>.runpanther.net/public/graphql`
  * 값을 다음과 같이 바꾸세요:
    * `<api-token>` : [API 키](https://docs.panther.com/panther-developer-workflows/api#step-1-creating-an-api-token) 를 생성한 것입니다.
    * `<your-panther-instance-name>` : 인스턴스의 동화 같은 이름(예: **carrot-tuna**.runpanther.net).
    * `<path-to-your-query>` : 자신의 컴퓨터에 있는 저장된 쿼리 경로입니다.

예약된 검색이 업로드되면 Panther Console에서 일반적으로 입력하던 각 필드가 자동으로 채워집니다. 자세한 내용은 [예약된 검색 사양 참조](#scheduled-search-specification-reference) 에서 필수 및 선택 필드의 전체 목록을 확인하세요.
{% endtab %}

{% tab title="API" %}
**Panther API에서 예약된 검색을 만드는 방법**

* 다음을 참조하세요. `POST` 작업 [Queries](/ko/panther/api/rest/queries.md).
  {% endtab %}
  {% endtabs %}

### 사용하여 `p_occurs_since` 룩백 창을 정의하기

예약된 검색에서 룩백 창을 정의하려면 Panther SQL 매크로 [`p_occurs_since`](/ko/search/data-explorer.md#time-offset-from-present-p_occurs_since).

를 사용하는 것을 강력히 권장합니다. 예약된 검색이 실행될 때 `p_occurs_since` 의 "now" 시간은 예약된 시간으로 대체됩니다(실제 현재 시간이 아님). 이렇게 하면 룩백 창이 정확해집니다. 각 실행마다 Search는 일정에 따라 시간상 앞으로 진행됩니다.\
\
&#x20;`p_occurs_since` 를 사용하면 데이터 레이크 또는 클라우드 제공업체 중단으로 인한 장애를 방지할 수 있습니다. 중단으로 인해 예약된 검색을 실행할 수 없는 경우 예약된 시간은 진행되지 않습니다. 중단이 복구되고 쿼리를 다시 실행할 수 있게 되면, 예약된 검색은 현재 일정에 따라 따라잡을 때까지 시간상 앞으로 진행되며 더 이상 뒤처지지 않습니다.

### 예약된 검색 크론탭을 사용하는 방법

Panther의 예약된 검색 크론탭은 분, 시, 일, 월, 요일의 다섯 필드로 이루어진 표준 크론탭 표기법을 사용합니다. 또한 검색 시간 제한 선택기(현재 최대값은 10분)도 있습니다. 이 표현식은 UTC에서 실행됩니다.

인터프리터는 표준 크론탭 표기법의 하위 집합을 사용합니다:

```
┌───────── 분 (0 - 59)
│ ┌──────── 시 (0 - 23)
│ │ ┌────── 일 (1 - 31)
│ │ │ ┌──── 월 (1 - 12)
│ │ │ │ ┌── 요일 (0 - 6 => 일요일 - 토요일)
│ │ │ │ │               
↓ ↓ ↓ ↓ ↓
* * * * *
```

요일을 지정하고 싶다면 대시(`1-5` 은 월요일부터 금요일까지입니다) 또는 쉼표로 구분할 수 있습니다. 예를 들어 `0,1,4` 에서 `요일` 필드에 입력하면 명령은 일요일, 월요일, 목요일에만 실행됩니다. 현재는 요일 이름이나 월 이름을 사용하는 것은 지원하지 않습니다.

크론탭을 사용하면 Period 빈도 옵션보다 일정 설정을 더 세밀하게 할 수 있습니다:

<figure><img src="/files/cb43971cc49ec85a8be50267571f03e72a5041a7" alt="The Cron expression screen displays options for selecting a time range for the scheduled query to run."><figcaption></figcaption></figure>

### 이메일 보고서를 생성하도록 예약된 검색을 구성하는 방법

예약된 검색이 실행될 때마다 이메일 보고서를 보내도록 구성할 수 있습니다. 이메일 보고서에는 결과 다운로드 링크(0개 초과인 경우), Data Explorer의 검색 링크, 그리고 선택적으로 검색 결과가 포함된 CSV 첨부 파일이 들어 있습니다. 예약된 검색이 어떤 예약된 룰과 연결되어 있다면, 해당 예약된 룰은 반환된 데이터를 평소처럼 처리합니다.

{% hint style="info" %}
이메일 보고서는 다음 주소에서 전송됩니다. `do-not-reply@panther-notifications.email`. 이메일이 스팸으로 표시되지 않도록 개인 또는 조직의 허용 목록에 이 주소를 추가하는 것이 좋습니다.
{% endhint %}

<figure><img src="/files/9628808da6b0bef43e91bdf9ed8106df5be3d706" alt="Under the Panther logo, a title reads, &#x22;1 events found by your scheduled search.&#x22; Below that is a &#x22;Download search results as CSV&#x22; button." width="563"><figcaption></figcaption></figure>

이메일 보고서에는 다음 매개변수가 적용됩니다:

* 각 이메일 보고서는 최대 10명의 수신자에게 보낼 수 있습니다.
* CSV 첨부 파일의 최대 크기는 10MB입니다. 쿼리 결과가 너무 커서 CSV가 이 크기를 초과하면 이메일에 CSV가 첨부되지 않습니다.
* Panther 인스턴스의 모든 예약된 검색을 합쳐 하루에 최대 20개의 이메일 보고서를 보낼 수 있습니다.
  * 하루에 전송되는 이메일 보고서 수는 예약된 검색이 얼마나 자주 실행되는지에 따라 달라집니다.
  * 예를 들어, 하루에 15개의 이메일 보고서를 보내는 예약된 검색 하나와 하루에 5개의 이메일 보고서를 보내는 다른 하나가 있다면, 기존 구성의 빈도를 낮추지 않는 한 이메일 보고서를 생성하도록 추가 예약된 검색을 구성할 수 없습니다.

이메일 보고서는 예약된 검색만 구성할 수 있습니다. 왜냐하면 [Search](/ko/search/search-tool.md) 에서 [PantherFlow](/ko/pantherflow.md) 또는 [필터 식](/ko/search/search-tool.md#creating-filter-expressions) 을 사용해 만든 검색은 [저장할 수 있지만 예약할 수는 없기](/ko/search/search-tool.md#creating-a-saved-search)때문에 이메일 보고서를 생성하도록 구성할 수 없습니다.

{% tabs %}
{% tab title="Console" %}
**Panther Console에서 이메일 보고서를 생성하도록 예약된 검색을 구성하는 방법**

1. 다음 [Data Explorer에서 저장된 검색 또는 예약된 검색 만들기](/ko/search/data-explorer.md#create-a-saved-or-scheduled-search-in-data-explorer) 지침을 따르되, **예약된 검색 결과 이메일** 토글이 **ON**.
   * 으로 설정되어 있는지 확인하세요. **검색 업데이트** 모달을 열려면 다음 [저장된 검색의 메타데이터 업데이트](#update-a-saved-searchs-metadata) 지침을 따르세요. 그리고 **예약된 검색 결과 이메일** 토글을 **ON**.

     <figure><img src="/files/16dbdc6a8b8903762e670a2a0a3c4ff8ef51be4e" alt="In a &#x22;Save Search&#x22; modal, various fields, such as &#x22;Tags&#x22; and &#x22;Description&#x22; are visible.  An &#x22;Email scheduled search results&#x22; toggle is circled." width="375"><figcaption></figcaption></figure>
2. 이메일 보고서 설정 구성:

   * **수신자**: 최대 10명의 수신자를 선택하거나 입력하세요. 드롭다운 목록의 값은 Panther Console의 사용자이지만 추가 이메일 주소를 직접 입력할 수도 있습니다.
   * **이메일에 CSV 데이터 첨부**: **ON** 쿼리 결과가 포함된 CSV 첨부 파일(최대 10MB)을 이메일 보고서에 넣고 싶다면 토글하세요.
   * **검색 결과가 0개여도 이메일 보내기**: **ON** 예약된 검색 결과가 0개여도 이메일 보고서가 전송되게 하려면 토글하세요.

   <figure><img src="/files/b5b153245472fe55ed6af081f482dd1e706b42d3" alt="Three toggles are shown: Email scheduled search results, Attach CSV data to the email, and Send an email even if search returns 0 results."><figcaption></figcaption></figure>

{% endtab %}

{% tab title="CLI (PAT)" %}
**CLI 워크플로에서 이메일 보고서를 생성하도록 예약된 검색을 구성하는 방법**

다음 항목을 추가하여 이메일 보고서를 위한 예약된 검색을 구성할 수 있습니다. `EmailConfig` YAML 파일의 최상위 수준에 객체를 추가하고, `수신자`, `SendEmpty`을 참고하고, `PreferAttachment` 중첩 필드와 함께 사용합니다. 아래의 [예약된 검색 사양 참조](#scheduled-search-specification-reference).

```yaml
AnalysisType: scheduled_query
QueryName: ScheduledQuery_Example
Description: PAT용 이메일 보고서 예시
Enabled: true
Schedule:
  RateMinutes: 900
  TimeoutMinutes: 2
EmailConfig:
  Recipients:
    - myemail@example.com
    - otheruser@otherexample.com
  SendEmpty: true
  PreferAttachment: true
```

{% endtab %}

{% tab title="API" %}
**Panther API에서 이메일 보고서를 생성하도록 예약된 검색을 구성하는 방법**

* 다음을 참조하세요. `POST` 작업 [Queries](/ko/panther/api/rest/queries.md).
  {% endtab %}
  {% endtabs %}

## 저장된 검색 및 예약된 검색 사용하기

### 저장된 검색을 삭제하거나 다운로드하는 방법

저장된 검색은 개별적으로 또는 일괄로 삭제할 수 있습니다. 저장된 검색이 예약되어 있다면(즉, 예약된 검색이라면) 삭제하려면 먼저 연결된 모든 예약된 룰과 연결을 해제해야 합니다.

1. Panther Console의 왼쪽 탐색 표시줄에서 **Investigate** > **Saved Searches**.
2. 저장된 검색 목록에서 다운로드하거나 삭제하려는 검색을 찾습니다. 각 검색 이름 왼쪽의 확인란을 선택하세요.
3. 페이지 상단에서 다음 중 하나를 클릭하세요. **Download** 또는 **Delete**.\
   ![The top of the Saved Queries page is shown, with two buttons: "Download" and "Delete"](/files/ab06aa48d33df01c07352a5d066d669d00b43dbf)
   * 만약 **Download**를 클릭했다면, `saved_queries.zip` 파일이 다운로드됩니다.
   * 만약 **Delete**를 클릭했다면, **Attention!** 모달이 표시됩니다. **Confirm**.\
     ![A modal titled "Attention!" is shown, with the text, "Are you sure you want to delete these (2) selected Saved Queries" and there are "Cancel" and "Confirm" buttons](/files/57a560b328e6af2a6142b8ab74ab009f28f762cd)

### 예약된 검색을 비활성화하는 방법

1. Panther Console의 왼쪽 탐색 표시줄에서 **Investigate** > **Saved Searches**.
2. 비활성화하려는 예약된 검색을 찾은 다음, 타일의 오른쪽 상단 모서리에 있는 세 점 아이콘을 클릭하세요.<br>

   <figure><img src="/files/141d9631d7f466331e159cb7ca55606e9539e97e" alt=""><figcaption></figcaption></figure>
3. 드롭다운 메뉴에서 **Edit Search Metadata**.
4. 에서 **검색 업데이트** 양식에서 설정을 **활성인가요?** 에서 **OFF** 로 바꿔 쿼리를 비활성화하세요.\
   ![The "Update Search" form is displayed. It contains fields for Search Name, Tags, Description, and Default Database. The toggle next to "Is it active?" is set to "Off."](/files/bf685cecccf5395723b189b498eec918fa279783)
5. 클릭하세요. **Update Query** 를 눌러 변경 사항을 저장하세요.

### 저장된 검색의 메타데이터 업데이트

저장된 검색의 이름, 태그, 설명, 기본 데이터베이스를 편집하려면(그리고 예약된 검색의 경우 활성 여부, 빈도, 그리고 [이메일 보고서 설정](#how-to-configure-a-scheduled-search-to-generate-an-email-report)):

1. Panther Console의 왼쪽 탐색 표시줄에서 **Investigate** > **Saved Searches**.
2. 편집하려는 쿼리를 찾아 타일의 오른쪽 상단 모서리에 있는 세 점 아이콘을 클릭하세요.\
   ![The 3 dots icon is expanded to a dropdown menu. The option "Edit Search Metadata" is highlighted.](/files/f3bc97086c7e5cc624ab9d3c58787d2a517148f9)
3. 드롭다운 메뉴에서 **Edit Search Metadata**.
4. 필요에 따라 **검색 업데이트** 양식에서 변경하세요.
5. 클릭하세요. **검색 업데이트**.

### 저장된 검색 검색

Saved Searches 페이지에서 다음을 사용하여 쿼리를 검색할 수 있습니다:

* 쿼리 목록 상단의 검색창
* 오른쪽 상단 모서리의 날짜 범위 선택기
* 오른쪽 상단 모서리의 **필터** 옵션
  * 쿼리가 예약되어 있는지, 활성인지, 유형(**Native SQL**, **Search**또는 **PantherFlow Search**)인지, 또는 최대 100개의 태그로 필터링할 수 있습니다.

<figure><img src="/files/3008957bce82fd2ecc512ea62002d801ae41e3b7" alt="in the Saved Searches list, use the date range or filters in the upper right corner to search for queries. In the image, the date range selector is circled and the Filters button is circled."><figcaption></figcaption></figure>

저장된 검색의 이름을 클릭하면 쿼리가 채워진 상태로 Data Explorer(쿼리의 경우) 또는 Search(검색의 경우)로 바로 이동합니다. **Native SQL** 쿼리 **Search** 및 **PantherFlow Search** 검색

### 사용 `LIMIT`을 예약된 검색에서

Panther Data Lake 설정 페이지에서 예약된 검색에 `LIMIT` 절이 지정되어 있는지 확인하는 설정을 선택적으로 활성화할 수 있습니다. 예약된 검색이 의도치 않게 수천 개의 결과를 반환하여 알러트 지연, 하위 시스템에 대한 서비스 거부(DoS), 그리고 제대로 조정되지 않은 쿼리로 인한 일반적인 정리 오버헤드가 발생할 수 있다고 우려되는 경우 이 옵션을 사용하세요.

{% hint style="info" %}
시간 초과가 발생한 예약된 검색은 [`시스템 오류`](/ko/system-configuration/notifications/system-errors.md) 를 생성하여 해당 예약된 검색이 실패했음을 식별합니다.
{% endhint %}

1. Panther Console의 오른쪽 상단 모서리에서 톱니바퀴 아이콘을 클릭해 Settings를 연 다음 **Data Lake** > **Data Lake Configuration**.<br>
2. 아래로 스크롤해 **예약된 쿼리** 헤더로 이동합니다. 헤더 아래에 LIMIT 절 토글 설정이 보입니다:<br>
3. 토글하여 **`LIMIT` 예약된 쿼리용 절** 설정을 **ON** 로 바꾸어 예약된 쿼리에서 LIMIT 적용을 시작하세요.<br>

   <figure><img src="/files/01e59da0cd8a087688d695a5a2502941fc5781d2" alt="" width="563"><figcaption></figcaption></figure>

이 필드가 **ON**로 설정되면, 활성으로 표시된 새 예약된 검색은 쿼리 정의에 LIMIT 절이 지정되지 않으면 저장할 수 없습니다.

<img src="/files/b9ea53d5026030d8d00fc038323d76c8222e0514" alt="이미지는 쿼리 생성 화면을 보여줍니다. 상단에 빨간 배너가 있으며 &#x22;저장된 쿼리를 만들 수 없습니다. 이 예약된 쿼리에는 SQL 식에 LIMIT 절이 없습니다. 이 예약된 쿼리를 저장하려면 SQL 식을 업데이트하여 LIMIT 절을 추가하세요.&#x22;라고 표시됩니다." width="563">

LIMIT 절이 없는 기존 예약된 검색은 저장된 검색 목록에서 경고 메시지와 함께 표시되며, LIMIT 절이 포함되지 않으면 편집 내용을 저장할 수 없습니다.

<figure><img src="/files/eab3de1e8cc3e550f62e3fa317541b46b8afd716" alt="A Scheduled Query without a LIMIT clause shows a warning banner that says &#x22;This Scheduled Query does not contain a LIMIT clause in the SQL expression.&#x22;"><figcaption></figcaption></figure>

이 설정은 저장된 검색 어디에든 LIMIT 절이 있는지만 확인합니다. 특히 외부 LIMIT 절만 확인하지는 않습니다.

### Panther Console에서 예약된 검색 내보내기

Panther Console의 모든 디택션과 예약된 검색이 들어 있는 .zip 파일을 내보낼 수 있습니다:

1. Panther Console의 왼쪽 탐색 표시줄에서 **디택션**.
2. 오른쪽 상단에서 **Upload**.
3. 에서 **Bulk Uploader** 모달에서 **모든 엔터티 다운로드**.

## 저장된 검색 사양 참조

필수 필드는 **굵게**.

저장된 검색 사양 필드 전체 목록:

<table><thead><tr><th width="198.02310231023102">필드 이름</th><th width="395">설명</th><th width="291.976897689769">예상 값</th></tr></thead><tbody><tr><td><strong><code>AnalysisType</code></strong></td><td>이 분석이 룰, 정책, 예약된 검색, 저장된 검색 또는 전역인지 나타냅니다.</td><td><code>saved_query</code></td></tr><tr><td><strong><code>QueryName</code></strong></td><td>UI에 표시할 친숙한 이름입니다.</td><td>문자열</td></tr><tr><td><code>태그</code></td><td>이 룰을 분류하는 데 사용되는 태그.</td><td>문자열 목록</td></tr><tr><td><code>설명</code></td><td>룰에 대한 간단한 설명.</td><td>문자열</td></tr><tr><td><strong><code>쿼리</code></strong></td><td>데이터 쿼리.<br>SQL로 작성해야 합니다(즉, 작성할 수는 없습니다 <a href="/pages/804bd314c736e01a42c0fb6823aae3bee39f8e38">PantherFlow</a>).</td><td>문자열</td></tr></tbody></table>

## 예약된 검색 사양 참조

필수 필드는 **굵게**.

예약 검색 명세 필드의 전체 목록:

<table><thead><tr><th width="265.023102310231">필드 이름</th><th width="409">설명</th><th width="291.976897689769">예상 값</th></tr></thead><tbody><tr><td><strong><code>AnalysisType</code></strong></td><td>이 분석이 룰, 정책, 예약된 검색, 저장된 검색 또는 전역인지 나타냅니다.</td><td><code>scheduled_query</code></td></tr><tr><td><strong><code>QueryName</code></strong></td><td>UI에 표시할 친숙한 이름입니다.</td><td>문자열</td></tr><tr><td><strong><code>활성화됨</code></strong></td><td>이 룰이 활성화되어 있는지 여부.</td><td>불리언</td></tr><tr><td><code>태그</code></td><td>이 룰을 분류하는 데 사용되는 태그.</td><td>문자열 목록</td></tr><tr><td><code>설명</code></td><td>룰에 대한 간단한 설명.</td><td>문자열</td></tr><tr><td><strong><code>쿼리</code></strong></td><td>데이터 쿼리.</td><td>문자열</td></tr><tr><td><strong><code>일정</code></strong></td><td><p>이 쿼리가 실행되어야 하는 일정입니다. CronExpression 또는 Rate Minutes로 표현됩니다. 예상보다 오래 걸리는 경우 쿼리를 해제하려면 TimeoutMinutes가 필요합니다. cron과 rate minutes는 서로 배타적입니다.</p><pre><code>CronExpression: "0 0 29 2 *"
  RateMinutes: 0
  TimeoutMinutes: 2
</code></pre></td><td>맵</td></tr><tr><td><code>EmailConfig</code></td><td><p>제공된 경우, <a href="#how-to-configure-a-scheduled-search-to-generate-an-email-report">이메일 보고서를 생성하는</a> 예약 검색에 대해. 다음 세 개의 중첩 필드를 지원합니다:</p><ul><li>(필수) <code>수신자</code>: 이메일 보고서를 보낼 이메일 주소를 각각 포함하는 문자열 배열입니다. 수신자는 최대 10명까지 가능합니다.</li><li>(선택 사항) <code>PreferAttachment</code>기본값은 <code>false</code>. 다음과 같이 설정된 경우 <code>true</code>, 이메일 보고서에는 예약 검색 결과의 CSV 첨부 파일이 포함됩니다(결과가 10 MB 첨부 파일 크기 제한 내에 들어가는 경우).</li><li>(선택 사항) <code>SendEmpty</code>기본값은 <code>false</code>. 다음과 같이 설정된 경우 <code>true</code>, 예약 검색이 결과를 0개 생성하더라도 이메일 보고서가 전송됩니다.</li></ul><pre class="language-yaml"><code class="lang-yaml">EmailConfig:
  Recipients:
    - myemail1@example.com
    - myemail2@example.com
  PreferAttachment: true
  SendEmpty: false
</code></pre></td><td>맵</td></tr></tbody></table>


---

# 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/search/scheduled-searches.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.
