> 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의 [데이터 탐색기](/ko/search/data-explorer.md) 및 [검색](/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/tree/main/docs/gitbook/search/scheduled-searches/broken-reference/README.md)저장된 검색과 예약된 검색은 종종 쿼리라고도 합니다.
{% endhint %}

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

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

저장된 검색에 변수를 추가하여 템플릿화된 쿼리를 만들 수도 있습니다. 자세한 내용은 [템플릿화된 쿼리와 매크로](/ko/search/scheduled-searches/templated-searches.md).

{% tabs %}
{% tab title="콘솔" %}
**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 사양 참조](#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](#saved-search-specification-reference) 필수 및 선택 필드의 전체 목록을 보려면.
{% endtab %}

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

* 다음을 참조하세요 `POST` 에서의 작업 [쿼리](/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에서 저장된 검색 또는 예약된 검색 만들기](/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` 에서의 작업 [쿼리](/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" 시간은 예정된 시간으로 대체됩니다(실제 현재 시간이 아님). 이렇게 하면 룩백 윈도우가 정확해집니다. 실행될 때마다 검색은 일정에 따라 시간상 앞으로 이동합니다.\n\n사용하면 `p_occurs_since` 데이터 레이크나 클라우드 제공업체의 장애로 인한 중단을 방지할 수 있습니다. 장애 때문에 예약된 검색을 실행할 수 없으면 예정 시간이 앞으로 진행되지 않습니다. 장애가 복구되고 쿼리를 다시 실행할 수 있게 되면, 예약된 검색은 현재 일정에 따라 따라잡을 때까지 시간상 앞으로 이동하며 더 이상 뒤처지지 않게 됩니다.

### 예약된 검색 crontab 사용 방법

Panther의 예약된 검색 crontab은 분, 시간, 월 중 일, 월, 요일의 5개 필드로 구성된 표준 crontab 표기법을 사용합니다. 또한 검색 타임아웃 선택기(현재 최대값은 10분으로 설정됨)를 찾을 수 있습니다. 이 표현식은 UTC 기준으로 실행됩니다.

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

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

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

crontab을 사용하면 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개의 이메일 보고를 보내는 다른 예약된 검색이 하나 있다면, 기존 구성의 빈도를 줄이지 않는 한 추가 예약된 검색을 이메일 보고 생성용으로 구성할 수 없습니다.

이메일 보고 구성은 예약된 검색만 가능합니다—왜냐하면 [검색](/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="콘솔" %}
**Panther Console에서 이메일 보고를 생성하도록 예약된 검색을 구성하는 방법**

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

     <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 데이터 첨부**: 전환 **켜기** 이메일 보고에 쿼리 결과가 포함된 CSV 첨부 파일(최대 10MB)이 들어가길 원하면
   * **검색 결과가 0개여도 이메일 보내기**: 전환 **켜기** 예약된 검색 결과가 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 워크플로에서 이메일 보고를 생성하도록 예약된 검색을 구성하는 방법**

YAML 파일의 루트 수준에 `EmailConfig` 객체를 추가하고 `수신자`, `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` 에서의 작업 [쿼리](/ko/panther/api/rest/queries.md).
  {% endtab %}
  {% endtabs %}

## 저장된 검색과 예약된 검색 사용

### 저장된 검색 삭제 또는 다운로드 방법

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

1. Panther Console의 왼쪽 탐색 모음에서 **저장된 검색**.
2. 저장된 검색 목록에서 다운로드하거나 삭제하려는 검색을 찾으세요. 각 검색 이름의 왼쪽에 있는 체크박스를 선택합니다.
3. 페이지 상단에서 다음 중 하나를 클릭하세요 **다운로드** 또는 **삭제**.\
   ![The top of the Saved Queries page is shown, with two buttons: "Download" and "Delete"](/files/ab06aa48d33df01c07352a5d066d669d00b43dbf)
   * 다음을 클릭했다면 **다운로드**, `saved_queries.zip` 파일이 다운로드됩니다.
   * 다음을 클릭했다면 **삭제**, **주의!** 모달이 나타납니다. 다음을 클릭하세요 **확인**.\
     ![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의 왼쪽 탐색 모음에서 **저장된 검색**.
2. 비활성화하려는 예약된 검색을 찾은 다음, 타일의 오른쪽 상단 모서리에 있는 점 3개 아이콘을 클릭하세요.<br>

   <figure><img src="/files/141d9631d7f466331e159cb7ca55606e9539e97e" alt=""><figcaption></figcaption></figure>
3. 드롭다운 메뉴에서 다음을 클릭하세요 **검색 메타데이터 편집**.
4. 다음 **Update Search** 양식에서 설정을 전환하세요 **활성 상태입니까?** 에서 **끔** 를 비활성화하여 쿼리를 끄세요.\
   ![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. 클릭합니다 **쿼리 업데이트** 변경 사항을 저장합니다.

### Saved Search의 메타데이터 업데이트

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

1. Panther Console의 왼쪽 탐색 모음에서 **저장된 검색**.
2. 편집할 쿼리를 찾은 다음, 타일의 오른쪽 상단 모서리에 있는 점 3개 아이콘을 클릭하세요.\
   ![The 3 dots icon is expanded to a dropdown menu. The option "Edit Search Metadata" is highlighted.](/files/f3bc97086c7e5cc624ab9d3c58787d2a517148f9)
3. 드롭다운 메뉴에서 다음을 클릭하세요 **검색 메타데이터 편집**.
4. 다음에서 필요한 변경을 하세요 **Update Search** 양식.
5. 클릭합니다 **Update Search**.

### 저장된 검색 검색

저장된 검색 페이지에서는 다음을 사용해 쿼리를 검색할 수 있습니다:

* 쿼리 목록 상단의 검색창
* 오른쪽 상단 모서리의 날짜 범위 선택기
* 다음 **필터** 오른쪽 상단 모서리의 옵션
  * 쿼리가 예약되어 있는지, 활성 상태인지, 유형(**Native SQL**, **검색**, 또는 **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`s가 예약된 검색에서

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

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

1. Panther Console의 왼쪽 탐색 모음 하단에서 **설정**을 클릭한 다음 **Data Lake** > **Data Lake 설정**.<br>
2. 아래로 스크롤하여 다음으로 이동합니다: **예약된 쿼리** 헤더로 이동하세요. 헤더 아래에서 LIMIT 절 토글 설정을 볼 수 있습니다:<br>
3. 다음의 envelope 필드 보존 **`LIMIT` 예약된 쿼리의 절** 설정을 **켜기** 로 바꾸어 예약된 쿼리에서 LIMIT 적용을 시작하세요.<br>

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

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

<img src="/files/b9ea53d5026030d8d00fc038323d76c8222e0514" alt="이미지는 쿼리 생성 화면을 보여줍니다. 상단에는 &#x22;Saved query를 만들 수 없습니다. 이 예약된 쿼리에는 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. 오른쪽 상단에서 다음을 클릭하세요: **업로드**.
3. 다음 **대량 업로더** 모달에서 다음을 클릭하세요 **모든 엔터티 다운로드**.

## Saved Search 사양 참조

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

Saved Search 사양 필드의 전체 목록:

<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>이 분석이 룰, Policy, 예약된 검색, 저장된 검색, 또는 global인지 나타냅니다.</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>Tags</code></td><td>이 룰을 분류하는 데 사용되는 태그입니다.</td><td>문자열 목록</td></tr><tr><td><code>설명</code></td><td>룰에 대한 간단한 설명입니다.</td><td>문자열</td></tr><tr><td><strong><code>Query</code></strong></td><td>데이터 쿼리입니다.\nSQL로 작성해야 합니다(즉, <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>이 분석이 룰, Policy, 예약된 검색, 저장된 검색, 또는 global인지 나타냅니다.</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>Tags</code></td><td>이 룰을 분류하는 데 사용되는 태그입니다.</td><td>문자열 목록</td></tr><tr><td><code>설명</code></td><td>룰에 대한 간단한 설명입니다.</td><td>문자열</td></tr><tr><td><strong><code>Query</code></strong></td><td>데이터 쿼리입니다.</td><td>문자열</td></tr><tr><td><strong><code>Schedule</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 첨부 파일이 포함됩니다(결과가 10MB 첨부 파일 크기 제한 내에 들어가는 경우).</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.
