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

# GCP 로그

## 개요

Panther는 수집을 지원합니다 [Google Cloud Platform(GCP)](https://cloud.google.com/) 로그를 공통 [데이터 전송](https://docs.panther.com/data-onboarding/data-transports) 옵션.

{% hint style="info" %}
GCP 로그를 Panther에 연결하려면 다음을 사용하는 것이 권장됩니다. [Pub/Sub Data Transport 소스](/ko/data-onboarding/data-transports/google/pubsub.md) 와 함께 [로그 싱크](https://cloud.google.com/logging/docs/routing/overview#sinks), 이는 지연 시간이 가장 짧아 대략 5분 정도이기 때문입니다.

대신 다음을 사용하면 [Google Cloud Storage(GCS) Data Transport 소스](/ko/data-onboarding/data-transports/google/cloud-storage.md) 와 로그 싱크를 함께 사용하면 로그가 Panther로 시간 단위로만 전달됩니다.
{% endhint %}

## GCP 로그를 Panther에 온보딩하는 방법

### 사전 요구 사항

* Google Cloud 서비스에 대한 기본 Data Access 감사 로깅 구성을 설정합니다:
  1. GCP 콘솔에서 다음으로 이동합니다: **IAM & Admin** 서비스로 이동합니다. 탐색 표시줄에서 **Audit Logs**.
  2. 다음을 클릭합니다: **Set Default Configuration**.\ <img src="/files/75ba469899b73bc9277bf8e0a5fe2857435e6a22" alt="The GCP IAM &#x26; Access console is shown. An arrow is drawn from the &#x22;Audit Log&#x22; option in the navigation bar to a &#x22;Set default configuration&#x22; button." data-size="original">
  3. 다음의 **로그 유형** 탭에서 다음 유형의 확인란을 선택합니다: **Admin Read**, **Data Read**, 그리고 **Data Write**.\
     ![A page title reads "Set default Data Access audit log configuration." Under a "Log types" header are three checked boxes—their labels read "Admin Read," "Data Read," and "Data Write"](/files/d398808956cc58aeddeeb98b3f354413f98b8076)
  4. 다음을 클릭합니다: **저장**.

{% hint style="info" %}
Google Cloud 서비스에 대한 기본 Data Access 감사 로그 구성을 설정하는 방법은 GCP 문서에서도 확인할 수 있습니다: [기본 구성을 설정합니다](https://cloud.google.com/logging/docs/audit/configure-data-access#config-console-default).
{% endhint %}

### 1단계: Panther에서 Google Cloud 소스 만들기

1. Panther 콘솔의 왼쪽 탐색 표시줄에서 다음을 클릭합니다: **설정 > 로그 소스**.
2. 다음을 클릭합니다: **새로 만들기**.
3. "GCP"를 검색한 다음 Google Cloud 타일을 클릭합니다.
4. 슬라이드아웃 패널의 **전송 메커니즘** 오른쪽 상단의 드롭다운에서 **Google Cloud Pub/Sub**.
   * 다음 중 어떤 옵션이든 사용할 수 있지만 [데이터 전송](/ko/data-onboarding/data-transports.md) 옵션을 사용할 수 있지만, Pub/Sub를 다음과 함께 사용하는 것이 권장됩니다. [로그 싱크](https://cloud.google.com/logging/docs/routing/overview#sinks)이는 다음 단계에서 구성합니다.
5. 선택한 [데이터 전송](/ko/data-onboarding/data-transports.md).
   * Pub/Sub를 선택한 경우 다음 [Pub/Sub Source 지침](/ko/data-onboarding/data-transports/google/pubsub.md#how-to-set-up-a-cloud-pub-sub-log-source-in-panther).

### 2단계: GCP가 로그를 Data Transport 소스로 전송하도록 구성합니다

* 선택한 Data Transport 소스로 로그를 전달하는 방법은 GCP 문서를 참조하세요.
  * 다음을 사용하는 경우 [Pub/Sub](/ko/data-onboarding/data-transports/google/pubsub.md) 또는 [Google Cloud Storage](/ko/data-onboarding/data-transports/google/cloud-storage.md) 를 Data Transport로 [로그 싱크를 구성합니다](https://cloud.google.com/logging/docs/routing/overview#sinks).
    * 로그 싱크에서 포함 또는 제외 필터를 구성하는 방법은 Panther Knowledge Base의 다음 문서를 참조하세요. [GCP 로그의 포함 필터](https://help.panther.com/articles/8343852886-what-inclusion-filter-should-i-use-in-my-gcs-logging-sink-to-only-push-panther-supported-gcp-logs-to-panther) 그리고 [GCP 통합에서 로그 제외](https://help.panther.com/articles/5981620705-how-can-i-exclude-logs-from-my-panther-gcp-integration).

## 동영상 안내: GCS를 사용한 설정

{% hint style="warning" %}
아래 동영상은 GCP 로그를 [GCS](/ko/data-onboarding/data-transports/google/cloud-storage.md)를 사용하여 전달하는 방법을 보여 주지만 [Pub/Sub](/ko/data-onboarding/data-transports/google/pubsub.md) GCS 대신 사용하는 것이 권장됩니다. 지연 시간이 더 짧기 때문입니다.
{% endhint %}

{% embed url="<https://www.youtube.com/watch?v=byp13_x-usg>" %}

## Panther에서 관리하는 탐지

참조 [Panther에서 관리하는](https://docs.panther.com/detections/panther-managed) Google Cloud Platform용 규칙은 [panther-analysis GitHub 저장소에 있습니다](https://github.com/panther-labs/panther-analysis/tree/main/rules).

## 지원되는 로그 유형

### GCP.AccessTransparency

Access Transparency 로그는 Google 직원이 고객 콘텐츠에 접근할 때 수행한 활동을 기록합니다. 이 로그는 Google Cloud 지원 작업에 대한 가시성을 제공하고, 접근 사유와 수행된 작업 등을 기록하여 규정 준수 요구 사항을 충족하는 데 도움이 됩니다.

자세한 내용은 다음을 참조하세요: [Access Transparency 로그에 대한 GCP 문서](https://cloud.google.com/assured-workloads/access-transparency/docs/reading-logs).

```yaml
스키마: GCP.AccessTransparency
설명: |
  Access Transparency 로그는 Google 직원이 고객 콘텐츠에 접근할 때 수행한 활동을 기록합니다.
  이 로그는 Google Cloud 지원 작업에 대한 가시성을 제공하고, 규정 준수 요구 사항을 충족하는 데 도움이 됩니다.
참조 URL: https://cloud.google.com/assured-workloads/access-transparency/docs/reading-logs
fields:
  - 이름: logName
    required: true
    설명: 이 로그 항목이 속한 로그의 리소스 이름입니다.
    type: string
    검증:
      허용 포함: ['cloudaudit.googleapis.com%2Faccess_transparency']
  - 이름: severity
    설명: 로그 항목의 심각도입니다. 기본값은 LogSeverity.DEFAULT입니다.
    type: string
  - 이름: insertId
    설명: 로그 항목의 고유 식별자입니다.
    type: string
  - 이름: resource
    설명: 이 로그 항목을 생성한 모니터링된 리소스입니다.
    type: object
    fields:
      - 이름: type
        required: true
        설명: 이 로그 항목을 생성한 리소스의 유형
        type: string
      - 이름: labels
        설명: 리소스를 설명하는 레이블
        유형: json
  - 이름: timestamp
    설명: 로그 항목에 설명된 이벤트가 발생한 시간입니다.
    type: timestamp
    timeFormats:
      - rfc3339
    isEventTime: true
  - 이름: receiveTimestamp
    설명: 로그 항목이 Logging에 수신된 시간입니다.
    type: timestamp
    timeFormats:
      - rfc3339
    isEventTime: true
  - 이름: labels
    설명: 로그 항목에 추가 정보를 제공하는 사용자 정의 (키, 값) 데이터 집합입니다.
    유형: json
  - 이름: operation
    설명: 해당하는 경우 로그 항목과 연결된 작업에 대한 정보입니다.
    type: object
    fields:
      - 이름: id
        설명이 동일한 로그 항목은 동일한 작업의 일부로 간주됩니다.
        type: string
      - 이름: producer
        설명: 임의의 producer 식별자입니다. id와 producer의 조합은 전역적으로 고유해야 합니다.
        type: string
      - 이름: first
        설명: 작업의 첫 번째 항목입니다
        유형: boolean
      - 이름: last
        설명: 작업의 마지막 항목입니다
        유형: boolean
  - 이름: trace
    설명: 해당하는 경우 로그 항목과 연결된 trace의 리소스 이름입니다. trace 필드는 로그와 trace 간의 연결을 제공합니다.
    type: string
  - 이름: spanId
    설명: 로그 항목과 연결된 trace 내의 span ID입니다.
    type: string
  - 이름: traceSampled
    설명: 로그 항목과 연결된 trace의 샘플링 결정입니다.
    유형: boolean
  - 이름: sourceLocation
    설명: 해당하는 경우 로그 항목과 연결된 소스 코드 위치 정보입니다.
    type: object
    fields:
      - 이름: file
        설명: 소스 파일 이름입니다. 런타임 환경에 따라 간단한 이름이거나 정규화된 전체 이름일 수 있습니다.
        type: string
      - 이름: line
        설명: 소스 파일 내의 줄입니다. 1부터 시작하며, 0은 사용할 수 있는 줄 번호가 없음을 나타냅니다.
        type: bigint
      - 이름: function
        설명: 호출되는 함수 또는 메서드의 사람이 읽을 수 있는 이름이며, 클래스나 패키지 이름과 같은 선택적 컨텍스트를 포함합니다. 형식은 언어에 따라 다를 수 있습니다
        type: string
  - 이름: jsonPayload
    required: true
    설명: Access Transparency 로그 페이로드
    type: object
    fields:
      - 이름: at_sign_type
        required: true
        설명: 페이로드 유형이며, type.googleapis.com/google.cloud.audit.TransparencyLog여야 합니다
        이름 변경:
          출처: '@type'
        type: string
      - 이름: location
        설명: 접근자에 대한 지리적 데이터
        type: object
        fields:
          - 이름: principalOfficeCountry
            설명: Google 직원의 영구 좌석 위치에 대한 ISO 3166-1 alpha-2 국가 코드
            type: string
          - 이름: principalEmployingEntity
            설명: Google 직원의 고용 주체(예: Google LLC)
            type: string
          - 이름: principalPhysicalLocationCountry
            설명: 접근이 시작된 물리적 위치에 대한 ISO 3166-1 alpha-2 국가 코드
            type: string
      - 이름: principalJobTitle
        설명: 리소스에 접근한 Google 직원의 직무 분류(예: Engineering, Support)
        type: string
      - 이름: product
        설명: 접근한 GCP 서비스 목록
        type: array
        element:
          type: string
      - 이름: reason
        설명: 접근에 대한 정당화 세부 정보
        type: array
        element:
          type: object
          fields:
            - 이름: type
              설명: 이유 분류(예: CUSTOMER_INITIATED_SUPPORT, GOOGLE_INITIATED_SERVICE, GOOGLE_INITIATED_REVIEW, THIRD_PARTY_DATA_REQUEST, GOOGLE_RESPONSE_TO_PRODUCTION_알러트)
              type: string
            - 이름: detail
              설명: 구체적인 정당화 텍스트(예: 사례 번호, 티켓 참조)
              type: string
      - 이름: permissionDetails
        설명: 접근에 대한 IAM 권한 정보
        type: array
        element:
          type: object
          fields:
            - 이름: permissionType
              설명: 최대 IAM 권한 범주(admin_read, admin_write, data_read, data_write)
              type: string
            - 이름: logAccessed
              설명: 접근이 로그 데이터로만 제한되었는지 나타내는 불리언 값
              유형: boolean
      - 이름: eventId
        설명: 이 접근 정당화에 대한 고유 이벤트 식별자
        type: string
      - 이름: accesses
        설명: Google 직원이 수행한 특정 작업
        type: array
        element:
          type: object
          fields:
            - 이름: methodName
              설명: 작업 유형(표준 API 메서드, 사용자 지정 메서드 또는 GoogleInternal 메서드)
              type: string
            - 이름: resourceName
              설명: 접근된 전체 리소스 식별자(예: //googleapis.com/storage/buckets/BUCKET_NAME/objects/OBJECT_NAME)
              type: string
      - 이름: accessApprovals
        설명: 이 접근과 연결된 Access Approval 요청 리소스 이름 목록
        type: array
        element:
          type: string
```

### GCP.AuditLog

GCP.AuditLog 스키마는 Google Cloud 감사 로그의 네 가지 유형 모두를 수집할 수 있습니다:

* [관리자 활동 감사 로그](https://cloud.google.com/logging/docs/audit#admin-activity)
* [Data Access 감사 로그](https://cloud.google.com/logging/docs/audit#data-access)
* [시스템 이벤트 감사 로그](https://cloud.google.com/logging/docs/audit#system-event)
* [정책 거부 감사 로그](https://cloud.google.com/logging/docs/audit#policy_denied)

자세한 내용은 다음을 참조하세요: [Cloud Audit Logs에 대한 GCP 문서.](https://cloud.google.com/logging/docs/audit)

```yaml
스키마: GCP.AuditLog
설명: |
    Cloud Audit Logs는 각 Google Cloud 프로젝트, 폴더, 조직에 대해 Admin Activity, Data Access, System Event, Policy Denied 감사 로그를 유지합니다.
    Google Cloud 서비스는 Google Cloud 리소스 내에서 "누가, 무엇을, 어디서, 언제 했는가?"라는 질문에 답하는 데 도움이 되도록 이러한 로그에 감사 로그 항목을 기록합니다.
참조 URL: https://cloud.google.com/logging/docs/audit
fields:
    - 이름: logName
      required: true
      설명: 이 로그 항목이 속한 로그의 리소스 이름입니다.
      type: string
    - 이름: severity
      설명: 로그 항목의 심각도입니다. 기본값은 LogSeverity.DEFAULT입니다.
      type: string
    - 이름: insertId
      설명: 로그 항목의 고유 식별자입니다.
      type: string
    - 이름: resource
      설명: 이 로그 항목을 생성한 모니터링된 리소스입니다.
      type: object
      fields:
        - 이름: type
          required: true
          설명: 이 로그 항목을 생성한 리소스의 유형
          type: string
        - 이름: labels
          설명: 리소스를 설명하는 레이블
          유형: json
    - 이름: timestamp
      설명: 로그 항목에 설명된 이벤트가 발생한 시간입니다.
      type: timestamp
      timeFormats:
        - rfc3339
      isEventTime: true
    - 이름: receiveTimestamp
      required: true
      설명: 로그 항목이 Logging에 수신된 시간입니다.
      type: timestamp
      timeFormats:
        - rfc3339
      isEventTime: true
    - 이름: labels
      설명: 로그 항목에 추가 정보를 제공하는 사용자 정의 (키, 값) 데이터 집합입니다.
      유형: json
    - 이름: operation
      설명: 해당하는 경우 로그 항목과 연결된 작업에 대한 정보입니다.
      type: object
      fields:
        - 이름: id
          설명이 동일한 로그 항목은 동일한 작업의 일부로 간주됩니다.
          type: string
        - 이름: producer
          설명: 임의의 producer 식별자입니다. id와 producer의 조합은 전역적으로 고유해야 합니다.
          type: string
        - 이름: first
          설명: 작업의 첫 번째 항목입니다
          유형: boolean
        - 이름: last
          설명: 작업의 마지막 항목입니다
          유형: boolean
    - 이름: trace
      설명: 해당하는 경우 로그 항목과 연결된 trace의 리소스 이름입니다. trace 필드는 로그와 trace 간의 연결을 제공합니다.
      type: string
    - 이름: httpRequest
      설명: 해당하는 경우 이 로그 항목과 연결된 HTTP 요청에 대한 정보입니다.
      type: object
      fields:
        - 이름: requestMethod
          설명: 요청 HTTP 메서드입니다.
          type: string
        - 이름: requestURL
          설명: 요청된 URL의 스킴(http, https), 호스트 이름, 경로 및 쿼리 부분입니다.
          type: string
          indicators:
            - url
        - 이름: requestSize
          설명: 요청 헤더와 요청 본문을 포함한 HTTP 요청 메시지의 바이트 단위 크기입니다.
          type: bigint
        - 이름: status
          설명: 응답 HTTP 상태 코드
          type: smallint
        - 이름: responseSize
          설명: 응답 헤더와 응답 본문을 포함하여 클라이언트로 다시 전송된 HTTP 응답 메시지의 바이트 단위 크기입니다.
          type: bigint
        - 이름: userAgent
          설명: 클라이언트가 보낸 사용자 에이전트입니다.
          type: string
        - 이름: remoteIP
          설명: HTTP 요청을 보낸 클라이언트의 IP 주소(IPv4 또는 IPv6)입니다.
          type: string
          indicators:
            - IP
        - 이름: serverIP
          설명: 요청이 전송된 원본 서버의 IP 주소(IPv4 또는 IPv6)입니다.
          type: string
          indicators:
            - IP
        - 이름: referer
          설명: 요청의 referer URL
          type: string
          indicators:
            - url
        - 이름: latency
          설명: 서버에서 요청이 수신된 시점부터 응답이 전송된 시점까지의 요청 처리 지연 시간(초)입니다.
          type: string
        - 이름: cacheLookup
          설명: 캐시 조회가 시도되었는지 여부입니다.
          유형: boolean
        - 이름: cacheHit
          설명: 엔터티가 캐시에서 제공되었는지 여부입니다(검증 유무와 관계없이).
          유형: boolean
        - 이름: cacheValidatedWithOriginServer
          설명: 엔터티가 캐시에서 제공되었는지 여부입니다(검증 유무와 관계없이).
          유형: boolean
        - 이름: cacheFillBytes
          설명: 엔터티가 캐시에서 제공되었는지 여부입니다(검증 유무와 관계없이).
          type: bigint
        - 이름: protocol
          설명: 요청에 사용된 프로토콜입니다.
          type: string
    - 이름: spanId
      설명: 로그 항목과 연결된 trace 내의 span ID입니다.
      type: string
    - 이름: traceSampled
      설명: 로그 항목과 연결된 trace의 샘플링 결정입니다.
      유형: boolean
    - 이름: sourceLocation
      설명: 해당하는 경우 로그 항목과 연결된 소스 코드 위치 정보입니다.
      type: object
      fields:
        - 이름: file
          설명: 소스 파일 이름입니다. 런타임 환경에 따라 간단한 이름이거나 정규화된 전체 이름일 수 있습니다.
          type: string
        - 이름: line
          설명: 소스 파일 내의 줄입니다. 1부터 시작하며, 0은 사용할 수 있는 줄 번호가 없음을 나타냅니다.
          type: bigint
        - 이름: function
          설명: 호출되는 함수 또는 메서드의 사람이 읽을 수 있는 이름이며, 클래스나 패키지 이름과 같은 선택적 컨텍스트를 포함합니다. 형식은 언어에 따라 다를 수 있습니다
          type: string
    - 이름: protoPayload
      required: true
      설명: AuditLog 페이로드
      type: object
      fields:
        - 이름: '@type'
          required: true
          설명: 페이로드 유형
          type: string
        - 이름: serviceName
          설명: 작업을 수행하는 API 서비스의 이름
          type: string
        - 이름: methodName
          설명: 서비스 메서드 또는 작업의 이름입니다. API 호출의 경우 API 메서드의 이름이어야 합니다.
          type: string
        - 이름: resourceName
          설명: 작업의 대상인 리소스 또는 컬렉션입니다. 이름은 API 서비스 이름을 포함하지 않는 스킴이 없는 URI입니다.
          type: string
        - 이름: numResponseItems
          설명: 해당하는 경우 List 또는 Query API 메서드에서 반환된 항목 수입니다.
          type: bigint
        - 이름: status
          설명: 전체 작업의 상태입니다.
          type: object
          fields:
            - 이름: code
              설명: 상태 코드이며, google.rpc.Code의 열거형 값이어야 합니다.
              유형: int
            - name: message
              설명: 개발자 대상 오류 메시지이며, 영어여야 합니다.
              type: string
            - 이름: details
              설명: 오류 세부 정보를 담고 있는 메시지 목록입니다. API가 사용할 수 있는 공통 메시지 유형 집합이 있습니다.
              유형: json
        - 이름: authenticationInfo
          설명: 인증 정보입니다.
          type: object
          fields:
            - 이름: principalSubject
              설명: 요청 주체의 신원 문자열 표현입니다. 1차 및 3차 신원 모두에 대해 채워집니다.
              type: string
            - 이름: serviceAccountKeyName
              설명: 서비스 계정의 인증용 자격 증명을 생성하거나 교환하는 데 사용된 서비스 계정 키의 이름입니다. 스킴이 없는 URI의 전체 리소스 이름입니다.
              type: string
              indicators:
                - domain
            - 이름: principalEmail
              설명: 요청을 하는 인증된 사용자의 이메일 주소입니다.
              type: string
              indicators:
                - 이메일
            - 이름: authoritySelector
              설명: 요청자가 지정한 권한 선택자입니다(있는 경우). 주체가 이 권한을 사용할 수 있었는지는 보장되지 않습니다.
              type: string
            - 이름: thirdPartyPrincipal
              설명: 요청을 하는 인증된 사용자의 제3자 식별 정보(있는 경우)입니다. 여기서 표현된 JSON 객체에 proto 대응 항목이 있는 경우 @type 속성에 proto 이름이 표시됩니다.
              유형: json
            - 이름: serviceAccountDelegationInfo
              설명: 요청을 하는 인증된 서비스 계정의 신원 위임 기록입니다. 서비스 계정 위임을 통해 GCP 리소스에 접근하려는 실제 권한 주체에 대한 정보가 포함됩니다. 여러 권한 주체가 있는 경우, 신원 위임 이벤트의 원래 순서를 기준으로 정렬되어 있음이 보장됩니다.
              type: array
              element:
                type: object
                fields:
                    - 이름: firstPartyPrincipal
                      설명: 실제 권한 주체로서의 1차( Google ) 신원입니다.
                      type: object
                      fields:
                        - 이름: principalEmail
                          설명: Google 계정의 이메일 주소입니다.
                          type: string
                          indicators:
                            - 이메일
                        - 이름: serviceMetadata
                          설명: 서비스 계정이 사용하는 서비스에 대한 메타데이터입니다.
                          유형: json
                    - 이름: thirdPartyPrincipal
                      설명: 실제 권한 주체로서의 제3자 신원입니다.
                      type: object
                      fields:
                        - 이름: thirdPartyClaims
                          설명: 제3자 신원에 대한 메타데이터입니다.
                          유형: json
                    - 이름: principalSubject
                      설명: 요청 주체의 신원 문자열 표현입니다.
                      type: string
        - 이름: authorizationInfo
          설명: 승인 정보입니다. 관련된 리소스 또는 권한이 여러 개이면 {resource, permission} 튜플마다 AuthorizationInfo 요소가 하나씩 있습니다.
          type: array
          element:
            type: object
            fields:
                - 이름: resource
                  설명: 접근 중인 리소스이며, REST 스타일 문자열입니다.
                  type: string
                - 이름: permission
                  설명: 필요한 IAM 권한
                  type: string
                - 이름: granted
                  설명: 리소스와 권한에 대한 권한 부여가 되었는지 여부입니다.
                  유형: boolean
                - 이름: resourceAttributes
                  설명: IAM 조건 평가에 사용되는 리소스 속성입니다. 이 필드에는 리소스 유형 및 리소스 이름과 같은 리소스 속성이 포함됩니다. IAM 조건 평가에 사용된 속성의 전체 보기를 얻으려면 사용자는 AuditLog.request_metadata.request_attributes도 확인해야 합니다.
                  type: object
                  fields:
                    - 이름: service
                      설명: 이 리소스가 속한 서비스의 이름입니다. 예: pubsub.googleapis.com. 서비스는 실제로 요청을 처리하는 DNS 호스트 이름과 다를 수 있습니다.
                      type: string
                    - 이름: name
                      설명: 서비스에서 리소스의 안정적인 식별자(이름)입니다.
                      type: string
                    - 이름: type
                      설명: 리소스의 유형입니다. 플랫폼마다 리소스를 다르게 정의하므로 구문은 플랫폼별로 다릅니다.
                      type: string
                    - 이름: labels
                      설명: AWS 리소스 태그 및 Kubernetes 리소스 레이블과 같은 리소스의 레이블 또는 태그입니다.
                      type: string
                    - 이름: uid
                      설명: 리소스의 고유 식별자입니다. UID는 이 서비스 범위 내에서 이 리소스에 대해 시간과 공간적으로 고유합니다. 일반적으로 리소스 생성에 성공하면 서버에서 생성되며 변경할 수 없습니다. UID는 리소스 이름 재사용 시 리소스를 고유하게 식별하는 데 사용됩니다. UUID4여야 합니다.
                      type: string
        - 이름: requestMetadata
          설명: 요청에 대한 메타데이터
          type: object
          fields:
            - 이름: callerIP
              설명: 호출자의 IP 주소입니다.
              type: string
              indicators:
                - IP
            - 이름: callerSuppliedUserAgent
              설명: 호출자의 사용자 에이전트입니다. 이 정보는 인증되지 않으므로 그에 맞게 처리해야 합니다.
              type: string
            - 이름: callerNetwork
              설명: 호출자의 네트워크입니다. 네트워크 호스트 프로젝트가 접근된 리소스와 동일한 GCP 조직(또는 프로젝트)에 속한 경우에만 설정됩니다.
              type: string
            - 이름: requestAttributes
              설명: IAM 조건 평가에 사용되는 요청 속성입니다. 이 필드에는 요청 시간 및 요청과 연결된 액세스 수준과 같은 요청 속성이 포함됩니다.
              유형: json
            - 이름: destinationAttributes
              설명: TCP 연결 수락과 같은 네트워크 활동의 대상입니다.
              유형: json
        - 이름: request
          설명: 작업 요청입니다. 여기에는 로그 레코드의 다른 곳에 너무 크거나, 개인정보에 민감하거나, 중복되어 있는 요청 매개변수 등 모든 요청 매개변수가 포함되지 않을 수 있습니다. 여기서 표현된 JSON 객체에 proto 대응 항목이 있는 경우 @type 속성에 proto 이름이 표시됩니다.
          유형: json
        - 이름: response
          설명: 작업 응답입니다. 여기에는 로그 레코드의 다른 곳에 너무 크거나, 개인정보에 민감하거나, 중복되어 있는 응답 매개변수 등 모든 응답 매개변수가 포함되지 않을 수 있습니다. 여기서 표현된 JSON 객체에 proto 대응 항목이 있는 경우 @type 속성에 proto 이름이 표시됩니다.
          유형: json
        - 이름: metadata
          설명: 현재 감사된 이벤트와 연결된 요청, 응답 및 기타 정보에 대한 서비스별 기타 데이터입니다.
          유형: json
        - 이름: serviceData
          설명: 요청, 응답 및 기타 활동에 대한 서비스별 기타 데이터입니다.
          유형: json
```

### GCP.DNS

Google Cloud DNS 쿼리 로그에는 Cloud DNS 영역이 수신하는 DNS 쿼리에 대한 자세한 정보가 포함됩니다. 이 로그는 쿼리 이름, 소스 및 대상 IP 주소, 프로토콜 정보 등을 캡처하여 DNS 활동을 모니터링하고 DNS 관련 문제를 해결하는 데 도움이 됩니다.

자세한 내용은 다음을 참조하세요: [DNS 쿼리 로깅에 대한 GCP 문서](https://cloud.google.com/dns/docs/monitoring).

```yaml
스키마: GCP.DNS
설명: Google Cloud DNS 쿼리 로그에는 Cloud DNS 영역이 수신하는 DNS 쿼리에 대한 자세한 정보가 포함됩니다.
참조 URL: https://cloud.google.com/dns/docs/monitoring
fields:
  - 이름: alias_query_response_code
    type: string
  - 이름: egressError
    type: string
  - 이름: healthyIps
    type: string
  - 이름: unHealthyIps
    type: string
  - 이름: insertId
    required: true
    type: string
  - 이름: jsonPayload
    required: true
    type: object
    fields:
      - 이름: authAnswer
        유형: boolean
      - 이름: dns64Translated
        유형: boolean
        설명: 응답이 DNS64를 사용하여 IPv4 주소에서 IPv6 주소로 변환되었는지 여부를 나타냅니다.
      - 이름: serverLatency
        type: float
      - 이름: queryName
        type: string
        indicators:
          - domain
      - 이름: vmProjectId
        type: string
      - 이름: vmZoneName
        type: string
      - 이름: vmInstanceName
        type: string
      - 이름: vmInstanceId
        type: float
        설명: 숫자형 VM 인스턴스 ID입니다. float 표현 때문에 매우 큰 값의 경우 정밀도가 손실될 수 있습니다. 정확한 값이 필요하면 vmInstanceIdString을 사용하세요.
      - 이름: vmInstanceIdString
        type: string
        설명: 전체 정밀도를 유지한 VM 인스턴스 ID의 문자열 표현입니다
      - 이름: responseCode
        type: string
      - 이름: destinationIP
        type: string
        indicators:
          - IP
      - 이름: protocol
        type: string
      - 이름: structuredRdata
        type: array
        element:
          type: object
          fields:
            - 이름: class
              type: string
            - 이름: ttl
              type: string
            - 이름: domainName
              type: string
              indicators:
                - domain
            - 이름: rvalue
              type: string
            - 이름: type
              type: string
      - name: queryType
        type: string
      - name: sourceIP
        type: string
        indicators:
          - IP
      - name: sourceNetwork
        type: string
      - name: egressIP
        type: string
        indicators:
          - IP
      - name: rdata
        유형: json
        description: 다양한 형식의 DNS 응답 데이터입니다. DNS 레코드 필드가 있는 객체이거나, NXDOMAIN 응답의 경우 빈 문자열이거나, 또는 완전히 생략될 수 있습니다.
  - 이름: resource
    required: true
    type: object
    fields:
      - 이름: type
        required: true
        type: string
      - 이름: labels
        type: object
        fields:
          - name: target_type
            type: string
          - 이름: location
            type: string
          - name: source_type
            type: string
          - name: project_id
            type: string
          - name: target_name
            type: string
  - 이름: timestamp
    type: timestamp
    timeFormats:
      - rfc3339
    isEventTime: true
  - 이름: severity
    required: true
    type: string
  - 이름: logName
    required: true
    type: string
    검증:
      allowContains: ['dns.googleapis.com%2Fdns_queries']
  - 이름: receiveTimestamp
    required: true
    type: timestamp
    timeFormats:
      - rfc3339
```

### GCP.Firewall

Google Cloud VPC Firewall 룰 Logging을 사용하면 방화벽 룰의 효과를 감사, 검증 및 분석할 수 있습니다. 이러한 로그는 방화벽 룰과 일치하는 네트워크 연결에 대한 정보를 수집합니다.

자세한 내용은 다음을 참조하세요: [VPC Firewall 룰 Logging에 대한 GCP 문서](https://cloud.google.com/vpc/docs/firewall-rules-logging).

```yaml
schema: GCP.Firewall
description: Google Cloud VPC Firewall 룰 Logging을 사용하면 방화벽 룰의 효과를 감사, 검증 및 분석할 수 있습니다.
referenceURL: https://cloud.google.com/vpc/docs/firewall-rules-logging
fields:
  - 이름: insertId
    required: true
    type: string
  - 이름: jsonPayload
    required: true
    type: object
    fields:
      - name: connection
        type: object
        fields:
          - name: dest_ip
            type: string
            indicators:
              - IP
          - name: dest_port
            type: bigint
          - 이름: protocol
            type: bigint
          - name: src_ip
            type: string
            indicators:
              - IP
          - name: src_port
            type: bigint
      - name: disposition
        type: string
      - name: instance
        type: object
        fields:
          - name: project_id
            type: string
          - name: region
            type: string
          - name: vm_name
            type: string
          - name: zone
            type: string
      - name: remote_instance
        type: object
        fields:
          - name: project_id
            type: string
          - name: region
            type: string
          - name: vm_name
            type: string
          - name: zone
            type: string
      - name: remote_location
        type: object
        fields:
          - name: city
            type: string
          - name: continent
            type: string
          - name: country
            type: string
          - name: region
            type: string
      - name: remote_vpc
        type: object
        fields:
          - name: project_id
            type: string
          - name: subnetwork_name
            type: string
          - name: vpc_name
            type: string
      - name: 룰_details
        type: object
        fields:
          - name: action
            type: string
          - name: destination_address_groups
            type: array
            element:
              type: string
          - name: destination_fqdn
            type: array
            element:
              type: string
              indicators:
                - domain
          - name: destination_range
            type: array
            element:
              type: string
          - name: destination_region_code
            type: array
            element:
              type: string
          - name: destination_threat_intelligence
            type: array
            element:
              type: string
          - name: direction
            type: string
          - name: ip_port_info
            type: array
            element:
              type: object
              fields:
                - name: ip_protocol
                  type: string
                - name: port_range
                  type: array
                  element:
                    type: string
          - name: priority
            type: bigint
          - name: reference
            type: string
          - name: source_address_groups
            type: array
            element:
              type: string
          - name: source_fqdn
            type: array
            element:
              type: string
              indicators:
                - domain
          - name: source_range
            type: array
            element:
              type: string
          - name: source_region_code
            type: array
            element:
              type: string
          - name: source_service_account
            type: array
            element:
              type: string
          - name: source_tag
            type: array
            element:
              type: string
          - name: source_threat_intelligence
            type: array
            element:
              type: string
          - name: target_service_account
            type: array
            element:
              type: string
          - name: target_tag
            type: array
            element:
              type: string
      - name: vpc
        type: object
        fields:
          - name: project_id
            type: string
          - name: subnetwork_name
            type: string
          - name: vpc_name
            type: string
  - 이름: logName
    required: true
    type: string
    검증:
      allowContains: ['compute.googleapis.com%2Ffirewall']
  - 이름: receiveTimestamp
    required: true
    type: timestamp
    timeFormats:
      - rfc3339
  - 이름: resource
    required: true
    type: object
    fields:
      - 이름: labels
        type: object
        fields:
          - name: firewall_룰_id
            type: string
          - 이름: location
            type: string
          - name: project_id
            type: string
          - name: subnetwork_id
            type: string
          - name: subnetwork_name
            type: string
      - 이름: type
        required: true
        type: string
  - 이름: timestamp
    type: timestamp
    timeFormats:
      - rfc3339
    isEventTime: true
```

### GCP.HTTPLoadBalancer

External HTTP(S) Load Balancing은 다양한 Google Cloud 플랫폼(예: Compute Engine, Google Kubernetes Engine (GKE), Cloud Storage 등)에서 호스팅되는 백엔드와 인터넷을 통해 또는 하이브리드 연결을 통해 연결된 외부 백엔드로 HTTP 및 HTTPS 트래픽을 분산합니다. HTTP(S) 로드 밸런싱 로그는 웹 트래픽을 모니터링하고 디버깅하기 위한 정보를 제공합니다.

자세한 내용은 다음을 참조하세요: [HTTPLoadBalancer](https://cloud.google.com/load-balancing/docs/https/https-logging-monitoring) 문서.

```yaml
schema: GCP.HTTPLoadBalancer
parser:
  native:
    name: GCP.HTTPLoadBalancer
fields:
  - 이름: httpRequest
    required: true
    description: httpRequest
    type: object
    fields:
      - 이름: referer
        description: referer
        type: string
        indicators:
          - url
      - 이름: latency
        required: true
        description: latency
        type: string
      - name: remoteIp
        required: true
        description: remoteIp
        type: string
        indicators:
          - IP
      - 이름: requestMethod
        required: true
        description: requestMethod
        type: string
      - 이름: requestSize
        required: true
        description: requestSize
        type: bigint
      - name: requestUrl
        required: true
        description: requestUrl
        type: string
        indicators:
          - url
      - 이름: responseSize
        description: responseSize
        type: bigint
      - name: serverIp
        description: serverIp
        type: string
        indicators:
          - IP
      - 이름: status
        description: status
        type: bigint
      - 이름: userAgent
        description: userAgent
        type: string
  - 이름: insertId
    required: true
    description: insertId
    type: string
  - 이름: jsonPayload
    required: true
    description: jsonPayload
    유형: json
  - 이름: logName
    required: true
    description: logName
    type: string
  - 이름: receiveTimestamp
    required: true
    description: receiveTimestamp
    type: timestamp
    timeFormat: rfc3339
  - 이름: resource
    required: true
    description: resource
    type: object
    fields:
      - 이름: labels
        required: true
        description: labels
        type: object
        fields:
          - name: backend_service_name
            required: true
            description: backend_service_name
            type: string
          - name: forwarding_룰_name
            required: true
            description: forwarding_룰_name
            type: string
          - name: project_id
            required: true
            description: project_id
            type: string
          - name: target_proxy_name
            required: true
            description: target_proxy_name
            type: string
          - name: url_map_name
            required: true
            description: url_map_name
            type: string
          - name: zone
            required: true
            description: zone
            type: string
      - 이름: type
        required: true
        description: type
        type: string
  - 이름: severity
    required: true
    description: severity
    type: string
  - 이름: spanId
    required: true
    description: spanId
    type: string
  - 이름: timestamp
    required: true
    description: timestamp
    type: timestamp
    timeFormat: rfc3339
    isEventTime: true
  - 이름: trace
    required: true
    description: trace
    type: string
    indicators:
      - trace_id
```


---

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