> 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/supported-logs/snowflake.md).

# Snowflake 감사 로그

## 개요

Panther는 가져올 수 있습니다 [Snowflake](https://www.snowflake.com/en/) 뷰를 쿼리하여 감사 정보를 [`ACCOUNT_USAGE` 스키마](https://docs.snowflake.com/en/sql-reference/account-usage) 에서 `SNOWFLAKE` 데이터베이스(또는 사용자 지정 데이터베이스/스키마에서 유사한 이름의 뷰). 이러한 뷰의 데이터는 Snowflake의 "state data"로 보강할 수 있습니다. 자세한 내용은 [Snowflake 보강](/ko/enrichment/snowflake.md).

{% hint style="info" %}
이 통합을 사용하여 모든 Snowflake 인스턴스를 모니터링할 수 있지만, Panther에 연결된 Snowflake 인스턴스를 모니터링하려면 대신 다음을 사용하는 것이 좋습니다. [예약 검색](/ko/search/scheduled-searches.md)—참조 [예약 검색 예시](/ko/search/scheduled-searches/examples.md#database-snowflake-monitoring).
{% endhint %}

모든 Snowflake 클라우드 또는 리전의 데이터베이스를 모니터링할 수 있지만, 이러한 요소는 영향을 미칠 수 있습니다 [발생 비용](#cost-considerations).

사용 가능한 뷰는 다음과 같습니다:

* [ACCESS\_HISTORY](https://docs.snowflake.com/en/sql-reference/account-usage/access_history)
* [DATA\_TRANSFER\_HISTORY](https://docs.snowflake.com/en/sql-reference/account-usage/data_transfer_history)
* [LOGIN\_HISTORY](https://docs.snowflake.com/en/sql-reference/account-usage/login_history)
* [QUERY\_HISTORY](https://docs.snowflake.com/en/sql-reference/account-usage/query_history)
* [SESSIONS](https://docs.snowflake.com/en/sql-reference/account-usage/sessions)

{% hint style="warning" %}
다음 [ACCESS\_HISTORY 뷰](https://docs.snowflake.com/en/sql-reference/account-usage/access_history) 다음이 필요합니다 [Snowflake Enterprise Edition](https://docs.snowflake.com/en/user-guide/intro-editions) 이상이어야 합니다.
{% endhint %}

### 지연 시간

전체 데이터 지연 시간은 Snowflake와 Panther 지연 시간의 조합입니다:

* 지연 시간은 사용 가능한 각 Snowflake 뷰마다 다르며, 경우에 따라 최대 3시간까지 걸릴 수 있습니다. 각 뷰의 지연 시간을 확인하려면 다음을 참조하세요: **지연 시간** 다음의 열 **ACCOUNT\_USAGE 뷰** 다음의 테이블에서 [이 Snowflake 문서](https://docs.snowflake.com/en/sql-reference/account-usage#account-usage-views).
* Panther는 최소 1시간의 지연 시간을 추가합니다.

### 비용 고려 사항

이 통합을 사용하면서 발생하는 Snowflake 컴퓨팅 비용은 다음을 포함한 여러 요인의 영향을 받습니다:

* 다음 [warehouse](https://docs.snowflake.com/en/user-guide/warehouses) Panther가 사용하도록 선택한
  * Panther는 데이터를 가져오기 위해 쿼리를 실행해야 하므로 활성 웨어하우스를 사용해야 합니다.
  * **다음과 같이 비용을 최소화할 수 있습니다.**: 이미 실행 중인 웨어하우스를 선택합니다.
* 데이터 새로 고침 간격
  * Panther에서 로그 소스를 설정할 때 Snowflake에서 데이터를 얼마나 자주 가져올지 선택합니다. 이는 1분마다처럼 자주 설정할 수도 있고, 최대 24시간마다로 설정할 수도 있습니다. 이 간격은 원하는 지연 시간과 비용의 균형에 따라 설정해야 합니다.
  * **다음과 같이 비용을 최소화할 수 있습니다.**: 더 긴 새로 고침 간격을 선택합니다.
* 모니터링 중인 Snowflake 인스턴스의 클라우드와 리전이 Panther Snowflake 인스턴스와 동일한지 여부
  * **다음과 같이 비용을 최소화할 수 있습니다.**: 클라우드와 리전이 Panther Snowflake 인스턴스와 동일합니다.

Snowflake의 [전체 비용 이해하기](https://docs.snowflake.com/en/user-guide/cost-understanding-overall) 문서.

### 제한 사항

다음을 초과하는 Snowflake 감사 로그 이벤트: [Panther의 15MB 한도](/ko/data-onboarding.md#data-ingestion-size-limit) 는 건너뜁니다.

## Snowflake 감사 로그를 Panther에 온보딩하는 방법

초기 통합을 설정한 후에는 [Snowflake 사용자와 연결된 RSA 키를 교체할 수 있습니다](#how-to-rotate-the-rsa-key-of-an-existing-snowflake-audit-logs-source).

### 사전 요구 사항

이 통합을 구성하려면 다음이 필요합니다:

* 다음을 보유해야 합니다: [Snowflake 계정 식별자](https://docs.snowflake.com/en/user-guide/admin-account-identifier). 마침표가 아니라 하이픈으로 다음과 같이 형식화해야 합니다: `<org_name>-<account_name>`
* Snowflake [warehouse](https://docs.snowflake.com/en/user-guide/warehouses) Panther가 쿼리를 실행하여 데이터를 가져오는 데 사용할 수 있는
* Snowflake에서 다음을 보유해야 합니다: `CREATE USER` , `CREATE ROLE`, 및 `GRANT USAGE` 권한
  * 이는 Panther가 사용할 Snowflake 서비스 사용자를 생성할 경우에만 필요합니다. Panther가 사용할 수 있는 서비스 사용자가 이미 있다면 이러한 권한이 필요하지 않습니다.

### 1단계: Snowsight에서 워크시트 만들기

{% hint style="info" %}
이 단계는 Panther가 데이터를 가져오는 데 사용할 Snowflake 서비스 사용자를 생성해야 할 때만 필요합니다. Panther가 사용할 수 있는 서비스 사용자가 이미 있다면 이 단계를 건너뛰세요.
{% endhint %}

* Snowsight에서, [워크시트를 만듭니다](https://docs.snowflake.com/en/user-guide/ui-snowsight-worksheets-gs#create-worksheets-in-sf-web-interface) 을(를) 다음으로 `CREATE USER` , `CREATE ROLE`, 및 `GRANT USAGE` 권한.

### 2단계: Panther에서 새 Snowflake 로그 소스 만들기

1. Panther Console의 왼쪽 탐색 모음에서 **로그 소스**.
2. 클릭합니다 **새로 만들기.**
3. “Snowflake Audit Logs”를 검색한 다음 해당 타일을 클릭합니다.
4. 슬라이드아웃 패널에서 다음을 클릭합니다 **설정 시작**.

   <figure><img src="/files/ca0470b583fa8998f697825465101c57c99151ba" alt="An arrow is drawn from a tile titled &#x22;Snowflake Audit Logs&#x22; to a button labeled &#x22;Start Setup.&#x22;" width="563"><figcaption></figcaption></figure>
5. 다음 페이지에서 **구성** 페이지에서 다음 필드의 값을 입력하세요:
   * **이름**: 소스에 설명적인 이름을 입력하세요. 예: `Snowflake Prod`.
   * **계정 식별자**: 다음 형식으로 Snowflake 계정 식별자를 입력하세요 `<org_name>-<account_name>`.
     * org 이름과 account 이름 사이에는 마침표가 아니라 하이픈을 사용하세요.
   * **웨어하우스**: Panther가 데이터를 가져오기 위해 쿼리를 실행하는 데 사용할 Snowflake 웨어하우스를 입력하세요.
   * (선택 사항) **사용자 지정 데이터베이스 및 스키마 사용**: 사용자 지정 데이터베이스와 스키마에 감사 로그 뷰를 복제해 두었고 이를 쿼리하려는 경우(기본 데이터베이스 대신, `SNOWFLAKE`, 그리고 스키마, `ACCOUNT_USAGE`), 이 옵션을 클릭하세요.
     * **데이터베이스**: Panther가 쿼리할 사용자 지정 데이터베이스 이름을 입력하세요.
     * **스키마**: Panther가 쿼리할 사용자 지정 스키마 이름을 입력하세요. \* **실행 주기**: 다음을 사용하세요: **숫자** 및 **주기** 필드를 사용하여 Panther가 Snowflake에서 데이터를 가져올 간격을 선택하세요.
   * 참고 [비용 고려 사항](#cost-considerations) 간격이 컴퓨팅 비용에 어떤 영향을 미치는지 알아보세요.
   * **모니터링할 로그 유형**: Panther가 가져올 Snowflake 뷰를 선택하세요.

{% hint style="warning" %}
사용자 지정 데이터베이스와 스키마를 사용하는 경우는 드뭅니다. 이후 단계에서 만들 서비스 역할의 권한을 특정 Snowflake 데이터베이스와 스키마로 제한하고 싶다면 그렇게 하는 것이 적합할 수 있습니다.\
\
사용자 지정 데이터베이스와 스키마를 사용하는 경우, 스키마 내 뷰 이름은 기본 제공 Snowflake 뷰 이름(다음에 나열됨)과 정확히 일치해야 합니다. [개요](#overview)), 이것이 Panther가 예상하는 이름이기 때문입니다. 예를 들어 쿼리 기록 로그를 가져오려면 뷰 이름은 다음과 같아야 합니다: `query_history`.
{% endhint %}

6. 클릭합니다 **설정.**
7. 다음 페이지에서 **자격 증명 설정** 페이지에서 양식 필드를 작성하세요. Panther는 이 값들을 기반으로 RSA 키를 생성합니다.
   * **사용자 이름**: Panther가 데이터를 가져오는 데 사용할 Snowflake 사용자의 사용자 이름입니다. 기본값은 `PANTHER_AUDIT_VIEW_USER`이지만, 필요에 따라 사용자 지정할 수 있습니다.
     * Panther가 사용할 서비스 사용자가 이미 있고 새로 만들 필요가 없다면, 여기 해당 사용자 이름을 입력하세요.
   * **역할**: Panther가 데이터를 가져오는 데 사용할 Snowflake 사용자가 보유한 역할 이름입니다. 기본값은 `PANTHER_AUDIT_VIEW_ROLE`이지만, 필요에 따라 사용자 지정할 수 있습니다.
     * Panther가 사용할 서비스 역할이 이미 있고 새로 만들 필요가 없다면, 여기 해당 이름을 입력하세요.
8. Panther가 사용할 서비스 사용자가 이미 있고 새로 만들 필요가 없다면, 다음을 클릭하세요: **내 RSA 키를 사용하고 싶습니다**, 그런 다음 RSA 키 파일을 업로드하세요.

   <figure><img src="/files/5a7c645f70178f38af8ddc0dbeb6e75a536d48bd" alt="" width="563"><figcaption></figcaption></figure>
9. 클릭합니다 **다음**.
10. 다음 페이지에서 **보강** 페이지에서, 들어오는 로그를 다음 항목 중 하나 이상으로 보강하려면 [지원되는 Snowflake 보강 유형](/ko/enrichment/snowflake.md#supported-enrichment-types), 활성화하려는 각 항목의 타일에서 토글을 클릭하세요 `켜기` 그리고 다음을 설정하세요: **새로고침 주기(분)**.

    * 최소 새로 고침 주기는 60분입니다. 데이터 변경이 드문 경우 이 값을 늘리는 것이 좋습니다.
    * 이러한 보강 소스 중 하나를 켜면 다음에서 표시됩니다: **보강** 페이지. 자세한 내용은 [Snowflake 보강](/ko/enrichment/snowflake.md).

    <figure><img src="/files/e165922230ca7f907e83f4831cb909f5d4d0e37a" alt="Under an &#x22;Enrichment settings&#x22; title, there are six tiles, each with a title, description, an ON/OFF toggle, and a Refresh period (min) field."><figcaption></figcaption></figure>
11. 클릭합니다 **설정**.
12. 자신의 RSA 키를 업로드하지 않았다면, 생성된 SQL 스니펫을 사용하여 Panther가 사용할 서비스 사용자를 생성하세요. Panther는 대신 RSA 키를 생성하며 공개 부분만 표시합니다.
    1. 생성된 SQL 스니펫을 복사하세요.
    2. SQL 스니펫을 다음에서 실행하세요: [Snowsight 워크시트](https://docs.snowflake.com/en/user-guide/ui-snowsight-worksheets-gs).
    3. 클릭합니다 **설정**.
13. 모든 것이 올바르면 성공 화면으로 이동합니다:

    <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>

    * 선택적으로 하나 이상의 [디택션 팩](https://docs.panther.com/detections/panther-managed/packs).
    * 다음 **이벤트가 처리되지 않으면 알러트를 발생시키기** 설정의 기본값은 **예**. 일정 시간 후 로그 소스에서 데이터 흐름이 중단되면 알러트를 받게 되므로 이 설정을 켠 상태로 두는 것을 권장합니다. 시간 범위는 구성 가능하며 기본값은 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>

## 기존 Snowflake Audit Logs 소스의 RSA 키를 교체하는 방법

기존 Snowflake Audit Logs 소스에 연결된 Snowflake 사용자와 연관된 RSA 키를 로그 수신 흐름을 중단하지 않고 교체하려면:

1. Panther Console의 왼쪽 탐색 모음에서 **로그 소스**.
2. 다음 **로그 소스** 목록에서 업데이트하려는 Snowflake Audit logs 소스를 찾아 이름을 클릭하세요.
3. 로그 소스의 세부 정보 페이지에서 다음을 클릭하세요: **구성** 탭을 클릭한 다음 **편집**.

   <figure><img src="/files/1e15b937808402800deb68c1b1b01fbd376f6d19" alt="Under a &#x22;Snowflake audit logs source,&#x22; an arrow is drawn from a &#x22;Configuration&#x22; tab to an &#x22;Edit&#x22; button."><figcaption></figcaption></figure>
4. 클릭합니다 **자격 증명 설정**.
5. 클릭합니다 **RSA 키 교체**.

   <figure><img src="/files/e75dc776d50ec789b88885da9d7905c3ea75d5a0" alt="An arrow is drawn from a &#x22;Set Credentials&#x22; button to a &#x22;Rotate RSA Key&#x22; button."><figcaption></figcaption></figure>
6. 다음 페이지에서 **RSA 키 교체** 팝업 모달에서 다음을 클릭하세요: **RSA 키 교체**.
7. 제공된 다음을 복사하세요: **RSA 키 교체 SQL**, 그리고 다음에서 실행하세요: [Snowsight 워크시트](https://docs.snowflake.com/en/user-guide/ui-snowsight-worksheets-gs) (다음과 같은 권한이 있는 사용자를 사용하여 `ACCOUNTADMIN`).
8. Panther에서 다음을 클릭하세요: **저장**.

## 지원되는 로그 유형

### Snowflake.AccessHistory

```yaml
스키마: Snowflake.AccessHistory
설명: Snowflake 액세스 기록 로그
참조 URL: https://docs.snowflake.com/en/sql-reference/account-usage/access_history
필드:
  - 이름: BASE_OBJECTS_ACCESSED
    설명: 쿼리 동안 액세스된 기본 객체 목록
    유형: array
    요소:
      유형: json
  - 이름: DIRECT_OBJECTS_ACCESSED
    설명: 쿼리 동안 액세스된 직접 객체 목록
    유형: array
    요소:
      유형: json
  - 이름: OBJECTS_MODIFIED
    설명: 쿼리 동안 수정된 객체 목록
    유형: array
    요소:
      유형: json
  - 이름: POLICIES_REFERENCED
    설명: 쿼리 동안 참조된 정책 목록
    유형: array
    요소:
      유형: json
  - 이름: OBJECT_MODIFIED_BY_DDL
    설명: 쿼리 동안 DDL로 수정된 객체
    유형: json
  - 이름: QUERY_ID
    설명: 쿼리의 고유 식별자
    유형: string
  - 이름: QUERY_START_TIME
    필수: true
    설명: 쿼리 시작 시간
    유형: timestamp
    시간 형식:
      - '%Y-%m-%d %H:%M:%S.%f %z'
      - '%a, %d %b %Y %H:%M:%S %z'
    이벤트 시간 여부: true
  - 이름: USER_NAME
    설명: 쿼리를 실행한 사용자 이름
    유형: string
    지표:
      - username
  - 이름: PARENT_QUERY_ID
    설명: 상위 작업의 쿼리 ID 또는 작업에 상위 항목이 없으면 NULL입니다.
    유형: string
  - 이름: ROOT_QUERY_ID
    설명: 체인에서 최상위 작업의 쿼리 ID 또는 작업에 상위 항목이 없으면 NULL입니다.
    유형: string
```

### Snowflake.DataTransferHistory

```yaml
스키마: Snowflake.DataTransferHistory
설명: Snowflake 데이터 전송 기록
필드:
    - 이름: ORGANIZATION_NAME
      필수: true
      유형: string
    - 이름: ACCOUNT_NAME
      필수: true
      유형: string
    - 이름: ACCOUNT_LOCATOR
      필수: true
      유형: string
    - 이름: REGION
      유형: string
    - 이름: USAGE_DATE
      필수: true
      유형: timestamp
      시간 형식:
        - '%Y-%m-%d %H:%M:%S.%f %z'
      이벤트 시간 여부: true
    - 이름: SOURCE_CLOUD
      유형: string
    - 이름: SOURCE_REGION
      유형: string
    - 이름: TARGET_CLOUD
      유형: string
    - 이름: TARGET_REGION
      유형: string
    - 이름: BYTES_TRANSFERRED
      필수: true
      유형: bigint
    - 이름: TRANSFER_TYPE
      유형: string
```

### Snowflake.LoginHistory

```yaml
스키마: Snowflake.LoginHistory
설명: Snowflake 로그인 기록 로그
필드:
    - 이름: CLIENT_IP
      설명: 로그인을 시작한 클라이언트의 IP 주소
      유형: string
      지표:
        - ip
    - 이름: EVENT_ID
      필수: true
      description: 이벤트의 고유 식별자
      유형: string
    - 이름: EVENT_TIMESTAMP
      필수: true
      설명: 이벤트의 타임스탬프
      유형: timestamp
      시간 형식:
        - '%Y-%m-%d %H:%M:%S.%f %z'
      이벤트 시간 여부: true
    - 이름: EVENT_TYPE
      설명: 이벤트 유형(예: LOGIN, LOGOUT)
      유형: string
    - 이름: FIRST_AUTHENTICATION_FACTOR
      설명: 사용된 첫 번째 인증 요소
      유형: string
    - 이름: IS_SUCCESS
      설명: 이벤트가 성공했는지 여부를 나타냅니다(YES/NO)
      유형: string
    - 이름: RELATED_EVENT_ID
      설명: 관련 이벤트가 있는 경우 해당 식별자
      유형: string
    - 이름: REPORTED_CLIENT_TYPE
      설명: 보고된 클라이언트 유형
      유형: string
    - 이름: REPORTED_CLIENT_VERSION
      설명: 보고된 클라이언트 버전
      유형: string
    - 이름: USER_NAME
      설명: 이벤트에 관련된 사용자 이름
      유형: string
      지표:
        - username
```

### Snowflake.QueryHistory

```yaml
스키마: Snowflake.QueryHistory
설명: Snowflake 쿼리 기록 로그
필드:
    - 이름: BYTES_DELETED
      설명: 삭제된 바이트 수
      유형: bigint
    - 이름: BYTES_READ_FROM_RESULT
      설명: 결과에서 읽은 바이트 수
      유형: bigint
    - 이름: BYTES_SCANNED
      설명: 스캔한 바이트 수
      유형: bigint
    - 이름: BYTES_SENT_OVER_THE_NETWORK
      설명: 네트워크를 통해 전송된 바이트 수
      유형: bigint
    - 이름: BYTES_SPILLED_TO_LOCAL_STORAGE
      설명: 로컬 저장소에 스필된 바이트 수
      유형: bigint
    - 이름: BYTES_SPILLED_TO_REMOTE_STORAGE
      설명: 원격 저장소에 스필된 바이트 수
      유형: bigint
    - 이름: BYTES_WRITTEN
      설명: 기록된 바이트 수
      유형: bigint
    - 이름: BYTES_WRITTEN_TO_RESULT
      설명: 결과에 기록된 바이트 수
      유형: bigint
    - 이름: CHILD_QUERIES_WAIT_TIME
      설명: 하위 쿼리 대기 시간
      유형: int
    - 이름: CLUSTER_NUMBER
      설명: 클러스터 번호
      유형: int
    - 이름: COMPILATION_TIME
      설명: 쿼리 컴파일에 걸린 시간
      유형: int
    - 이름: CREDITS_USED_CLOUD_SERVICES
      설명: 클라우드 서비스에 사용된 크레딧
      유형: float
    - 이름: DATABASE_ID
      설명: 데이터베이스 식별자
      유형: string
    - 이름: DATABASE_NAME
      설명: 데이터베이스 이름
      유형: string
    - 이름: END_TIME
      설명: 쿼리 종료 시간
      유형: timestamp
      시간 형식:
        - '%Y-%m-%d %H:%M:%S.%f %z'
    - 이름: EXECUTION_STATUS
      설명: 쿼리 실행 상태
      유형: string
    - 이름: EXECUTION_TIME
      설명: 쿼리 실행에 걸린 시간
      유형: int
    - 이름: EXTERNAL_FUNCTION_TOTAL_INVOCATIONS
      설명: 외부 함수 총 호출 횟수
      유형: int
    - 이름: EXTERNAL_FUNCTION_TOTAL_RECEIVED_BYTES
      설명: 외부 함수가 수신한 총 바이트 수
      유형: int
    - 이름: EXTERNAL_FUNCTION_TOTAL_RECEIVED_ROWS
      설명: 외부 함수가 수신한 총 행 수
      유형: int
    - 이름: EXTERNAL_FUNCTION_TOTAL_SENT_BYTES
      설명: 외부 함수가 전송한 총 바이트 수
      유형: int
    - 이름: EXTERNAL_FUNCTION_TOTAL_SENT_ROWS
      설명: 외부 함수가 전송한 총 행 수
      유형: int
    - 이름: INBOUND_DATA_TRANSFER_BYTES
      설명: 수신 데이터 전송 바이트 수
      유형: int
    - 이름: IS_CLIENT_GENERATED_STATEMENT
      설명: 문이 클라이언트에 의해 생성되었는지 여부
      유형: boolean
    - 이름: LIST_EXTERNAL_FILES_TIME
      설명: 외부 파일을 나열하는 데 걸린 시간
      유형: int
    - 이름: OUTBOUND_DATA_TRANSFER_BYTES
      설명: 발신 데이터 전송 바이트 수
      유형: int
    - 이름: PARTITIONS_SCANNED
      설명: 스캔한 파티션 수
      유형: int
    - 이름: PARTITIONS_TOTAL
      설명: 총 파티션 수
      유형: int
    - 이름: PERCENTAGE_SCANNED_FROM_CACHE
      설명: 캐시에서 스캔한 데이터 비율
      유형: float
    - 이름: QUERY_ACCELERATION_BYTES_SCANNED
      설명: 쿼리 가속을 위해 스캔한 바이트 수
      유형: int
    - 이름: QUERY_ACCELERATION_PARTITIONS_SCANNED
      설명: 쿼리 가속을 위해 스캔한 파티션 수
      유형: int
    - 이름: QUERY_ACCELERATION_UPPER_LIMIT_SCALE_FACTOR
      설명: 쿼리 가속의 상한 스케일 계수
      유형: int
    - 이름: QUERY_HASH
      설명: 쿼리 문자열의 해시
      유형: string
    - 이름: QUERY_HASH_VERSION
      설명: 해시 버전
      유형: string
    - 이름: QUERY_ID
      필수: true
      설명: 쿼리의 고유 식별자
      유형: string
    - 이름: QUERY_LOAD_PERCENT
      설명: 쿼리 중 로드 비율
      유형: float
    - 이름: QUERY_PARAMETERIZED_HASH
      설명: 매개변수화된 쿼리의 해시
      유형: string
    - 이름: QUERY_PARAMETERIZED_HASH_VERSION
      설명: 매개변수화된 쿼리의 해시 버전
      유형: string
    - 이름: QUERY_TAG
      설명: 쿼리와 연결된 태그
      유형: string
    - 이름: QUERY_TEXT
      설명: 쿼리 텍스트
      유형: string
    - 이름: QUERY_TYPE
      설명: 쿼리 유형
      유형: string
    - 이름: QUEUED_OVERLOAD_TIME
      설명: 과부하로 인해 큐에서 대기한 시간
      유형: int
    - 이름: QUEUED_PROVISIONING_TIME
      설명: 프로비저닝을 위해 큐에서 대기한 시간
      유형: int
    - 이름: QUEUED_REPAIR_TIME
      설명: 복구를 위해 큐에서 대기한 시간
      유형: int
    - 이름: RELEASE_VERSION
      설명: 릴리스 버전
      유형: string
    - 이름: ROLE_NAME
      설명: 역할 이름
      유형: string
    - 이름: ROLE_TYPE
      설명: 역할 유형
      유형: string
    - 이름: ROWS_DELETED
      설명: 삭제된 행 수
      유형: int
    - 이름: ROWS_INSERTED
      설명: 삽입된 행 수
      유형: int
    - 이름: ROWS_UNLOADED
      설명: 언로드된 행 수
      유형: int
    - 이름: ROWS_UPDATED
      설명: 업데이트된 행 수
      유형: int
    - 이름: ROWS_WRITTEN_TO_RESULT
      설명: 결과에 기록된 행 수
      유형: int
    - 이름: SCHEMA_ID
      설명: 스키마 식별자
      유형: string
    - 이름: SCHEMA_NAME
      설명: 스키마 이름
      유형: string
    - 이름: SECONDARY_ROLE_STATS
      설명: 보조 역할 통계
      유형: string
    - 이름: SESSION_ID
      설명: 세션 식별자
      유형: string
    - 이름: START_TIME
      필수: true
      설명: 쿼리 시작 시간
      유형: timestamp
      시간 형식:
        - '%Y-%m-%d %H:%M:%S.%f %z'
      이벤트 시간 여부: true
    - 이름: TOTAL_ELAPSED_TIME
      설명: 쿼리의 총 경과 시간
      유형: int
    - 이름: TRANSACTION_BLOCKED_TIME
      설명: 트랜잭션이 차단된 시간
      유형: int
    - 이름: TRANSACTION_ID
      설명: 트랜잭션 식별자
      유형: string
    - 이름: USER_NAME
      설명: 사용자 이름
      유형: string
      지표:
        - username
    - 이름: WAREHOUSE_ID
      설명: 웨어하우스 식별자
      유형: string
    - 이름: WAREHOUSE_NAME
      설명: 웨어하우스 이름
      유형: string
    - 이름: WAREHOUSE_SIZE
      설명: 웨어하우스 크기
      유형: string
    - 이름: WAREHOUSE_TYPE
      설명: 웨어하우스 유형
      유형: string
```

### Snowflake.Sessions

```yaml
스키마: Snowflake.Sessions
설명: Snowflake 세션 기록 로그
필드:
    - 이름: AUTHENTICATION_METHOD
      설명: 인증에 사용된 방법
      유형: string
    - 이름: CLIENT_APPLICATION_ID
      설명: 클라이언트 애플리케이션 ID
      유형: string
    - 이름: CLIENT_APPLICATION_VERSION
      설명: 클라이언트 애플리케이션 버전
      유형: string
    - 이름: CLIENT_BUILD_ID
      설명: 클라이언트 애플리케이션 빌드 ID
      유형: string
    - 이름: CLIENT_ENVIRONMENT
      설명: 클라이언트 애플리케이션의 환경 정보(예: OS, 버전)
      유형: json
      내장 JSON: true
    - 이름: CLIENT_VERSION
      설명: 클라이언트 버전
      유형: string
    - 이름: CLOSED_REASON
      설명: 세션이 닫힌 이유
      유형: string
    - 이름: CREATED_ON
      필수: true
      설명: 세션이 생성된 시각
      유형: timestamp
      시간 형식:
        - '%Y-%m-%d %H:%M:%S.%f %z'
      이벤트 시간 여부: true
    - 이름: LOGIN_EVENT_ID
      설명: 로그인 이벤트의 고유 식별자
      유형: string
    - 이름: SESSION_ID
      필수: true
      설명: 세션의 고유 식별자
      유형: string
    - 이름: USER_NAME
      설명: 사용자 이름
      유형: string
      지표: 
        - username
```


---

# 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/supported-logs/snowflake.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.
