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

# Google Workspace 로그

## 개요

Panther는 가져올 수 있습니다 [Google Workspace](https://workspace.google.com/) (이전에는 G Suite로 알려짐) 다음을 쿼리하여 로그 이벤트를 가져옵니다 [Google Workspace Reports API](https://developers.google.com/admin-sdk/reports/v1/get-start/getting-started). Panther는 60초마다 Reports API를 새 이벤트에 대해 쿼리합니다.

Panther는 다음 애플리케이션의 Google Workspace 로그를 가져옵니다:

* Access Transparency
* 관리자
* Calendar
* Chat
* Chrome
* Classroom
* Context-Aware Access
* Data Studio (Looker Studio)
* Drive
* GCP
* Gemini for Workspace
* Gmail
* 그룹
* Groups Enterprise
* Keep
* 로그인
* Meet
* Mobile
* 룰
* SAML
* 토큰
* User Accounts
* Vault

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

Panther가 Google Workspace Reports API에 액세스하려면 Google Cloud 앱을 생성 및 구성하고 해당 자격 증명을 Panther에 제공해야 합니다.

### 사전 요구 사항

아래 단계를 완료하려면 Google 사용자에게 다음 권한이 있어야 합니다:

* 조직의 활동 기록을 읽도록 승인되어 있어야 합니다
  * 사용자에게 이 권한이 없다면, 다음을 따르세요 [이 Google Workspace 안내](https://support.google.com/a/answer/2406043) 를 사용하여 Reports 액세스 권한이 있는 새 역할을 만들고 해당 역할을 사용자에게 할당합니다.
* (사용자 프로필을 사용 설정할 계획이라면 [Google Workspace 사용자 프로필](/ko/enrichment/google-workspace.md))도 사용자 읽기 권한이 있어야 합니다

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

1. Panther Console의 왼쪽 사이드바 메뉴에서 **구성** > **로그** **소스**.
2. 다음을 클릭합니다: **새로 만들기.**
3. "Google Workspace"를 검색한 다음 해당 타일을 클릭합니다.
4. 슬라이드아웃 패널에서 다음을 클릭합니다 **설정 시작**.
5. 다음에서 **구성** 페이지에서 다음 필드를 구성합니다:
   * **이름**: 소스의 설명적인 이름을 입력합니다. 예: `내 Google Workspace 로그`.
6. 다음을 클릭합니다: **설정.**

### 2단계: Google Cloud 앱 만들기 및 구성

Google Cloud 앱을 설정하기 전에 인증 방법을 선택해야 합니다. 다음 중 하나를 사용할 수 있습니다 [서비스 계정](https://cloud.google.com/iam/docs/service-account-overview), [Workload Identity Federation](https://docs.cloud.google.com/iam/docs/workload-identity-federation), 또는 [OAuth](https://developers.google.com/identity/protocols/oauth2) —아래의 최상위 탭을 참조하세요.

{% hint style="warning" %}
Panther에 Google Workspace 로그 소스를 만든 후에는 인증 방법을 변경할 수 없습니다. 설정을 진행하기 전에 원하는 인증 방법을 신중하게 선택하세요. 이 선택은 로그 소스에 대해 영구적입니다.
{% endhint %}

{% tabs %}
{% tab title="서비스 계정" %}

1. Google Cloud에서 새 앱을 만듭니다:
   1. 계정에 로그인하세요. [Google Cloud 콘솔](https://console.developers.google.com/project).
   2. 다음을 클릭합니다: **+ 프로젝트 만들기.**\
      ![In Google Cloud console, the "+Create Project" button appears at the top of the page under the search bar. In this image, there is a teal circle around it.](/files/8faa73c1d50d9b144aa0c62eaa9cabf5dd5b17d7)
   3. 설명적인 **프로젝트 이름** (예: `Panther Integration`) 그리고 다음을 선택합니다: **위치**.
   4. 다음을 클릭합니다: **만들기**.
      * 프로젝트를 만드는 데 몇 초가 걸립니다. 생성되면 페이지에 알림이 표시됩니다.
   5. 왼쪽 사이드바 메뉴에서 세 줄 아이콘을 클릭한 다음 **Cloud Overview** > **대시보드**.
   6. 방금 만든 프로젝트가 페이지 상단의 드롭다운에서 이미 선택되어 있지 않다면, 드롭다운을 열어 선택합니다.\
      ![At the top of the Google Cloud dashboard, there is a dropdown. "Panther integration test" has been selected, and the select box is circled.](/files/cffd2d533779d8e4598e9531c841d5074d8eb80b)
2. Admin SDK API를 사용 설정합니다:
   1. 검색창에 "Admin SDK API"를 입력한 다음 **Admin SDK API**.
   2. 다음에서 **Admin SDK API** 페이지에서 다음을 클릭합니다: **사용 설정을 선택합니다.**\
      ![In the Google Cloud console, an Admin SDK API page is shown. An Enable button is circled.](/files/8ac4c94240e7473dfd09a1f4fe0582f5e7050da3)
      * 새 화면으로 리디렉션됩니다.
3. [새 Google Cloud 서비스 계정을 만듭니다](https://cloud.google.com/iam/docs/creating-managing-service-accounts).
4. [JSON 키 파일 생성](https://cloud.google.com/iam/docs/creating-managing-service-account-keys) 서비스 계정의 경우:

   1. 다음의 **IAM & Admin** 섹션에서 다음을 클릭합니다 **서비스 계정**.
   2. 방금 만든 서비스 계정의 행에서 **Actions**, 그런 다음 **키 관리**.

      <figure><img src="/files/0156cbaf3e5dde01c26b304a9de72f051d659cdd" alt="" width="563"><figcaption></figcaption></figure>
   3. 다음을 클릭합니다: **키 추가** > **새 키 만들기**.

      <figure><img src="/files/3281f79697e35db8f5b4a7d50f510b5e10770480" alt="" width="563"><figcaption></figcaption></figure>
   4. 다음에서 **키 유형**, 다음을 선택합니다: **JSON**를 클릭한 다음 **만들기**.
      * JSON 파일이 다운로드됩니다.

   <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p>이 파일은 안전한 곳에 보관하세요. 여기에는 이 서비스 계정의 자격 증명이 들어 있습니다.</p></div>
5. 도메인 전체 위임을 사용 설정합니다:
   1. 방금 만든 서비스 계정의 행에서 **Actions**, 그런 다음 **세부정보 관리**.

      <figure><img src="/files/53063a8904c4a6dff6c6da0aedeeb469e210db57" alt="" width="563"><figcaption></figcaption></figure>
   2. 다음을 클릭합니다: **고급 설정**, 그런 다음 다음을 복사합니다 **클라이언트 ID**.<br>

      <figure><img src="/files/128e1f724ad77be28c537c938658a66dadadc2fe" alt="" width="563"><figcaption></figcaption></figure>
   3. 다음을 클릭합니다: **Google Workspace Admin Console 보기**.
   4. 관리자 계정으로 로그인합니다.
   5. 다음을 클릭합니다: **보안** → **액세스 및 데이터 제어** → **API 제어**.
   6. 다음을 클릭합니다: **도메인 전체 위임 관리**.
   7. 다음을 클릭합니다: **새로 추가**.\
      ![](/files/ccc46f2a82e4390a5eb99414d21b4fadaa692a11)
   8. 다음 필드를 채우세요:
      1. **클라이언트 ID**: 위에서 복사한 Client ID를 입력합니다.
      2. **OAuth 범위** (쉼표로 구분, 공백 없음): 다음을 입력합니다 `https://www.googleapis.com/auth/admin.reports.audit.readonly`
         * (선택 사항) 사용자 프로필이 필요한 경우, 다음도 입력합니다( `https://www.googleapis.com/auth/admin.directory.user.readonly`
   9. 다음을 클릭합니다: **승인**.
6. 다음을 선택합니다 **Google Admin 사용자** 데이터를 가져올 때 가장할 대상입니다. 두 가지 옵션이 있습니다:
   * SuperAdmin 계정을 사용: 설정은 더 간단하지만, 꼭 필요한 것보다 더 광범위한 권한이 부여됩니다.
   * 최소 권한 원칙을 따르기(권장): 필요한 권한만 있는 전용 Google Workspace 사용자를 만들고 사용합니다
     1. [최소한의 권한만 있는 Google Workspace 사용자 지정 관리자 역할을 만듭니다](https://support.google.com/a/answer/9807615?hl=en).
     2. 역할에 최소 필수 권한을 부여합니다:
        1. 필수: Reports → Audit/Usage 읽기 액세스

           <div align="left"><figure><img src="/files/dd3b11cff9b26113a0c4c85d5c1d53150d744099" alt="" width="188"><figcaption></figcaption></figure></div>
        2. 선택 사항: Directory → Users 읽기 액세스(사용자 프로필을 사용하는 경우)

           <div align="left"><figure><img src="/files/b46ddf0217614e8c5f428aa663d05112bbe988c1" alt="" width="188"><figcaption></figcaption></figure></div>
        3. 선택 사항: Vault → Google Vault 모든 로그 액세스

           <div align="left"><figure><img src="/files/17ffd8d5fc08e7842c0e83ddb9475cd229af4de5" alt="" width="188"><figcaption></figcaption></figure></div>
     3. 이 사용자 지정 역할을 전용 Google Workspace 사용자에게 할당합니다.
7. Panther에서 소스 설정을 완료합니다:
   1. 다음에서 **pull 구성 및 JSON 키 파일을 제공하고,** JSON 키 파일을 업로드합니다.\
      ![](/files/4ede3d967f7ac97a85178d674500a1aec60ac038)
   2. 다음의 **관리자 사용자 이메일** 필드에 다음의 이메일 주소를 입력합니다 **Google Admin 사용자** 서비스 계정이 가장할 사용자(이전 단계에서 선택한)의

      <div align="left"><figure><img src="/files/692c3200e033bbf0e3e32497b6c243399328dcef" alt="" width="375"><figcaption></figcaption></figure></div>
   3. 다음에서 **보강** 페이지에서 다음을 사용 설정하려면 [Google Workspace 사용자 프로필](/ko/enrichment/google-workspace.md), 다음의 오른쪽에 **User Profiles**, 토글을 클릭합니다 `켬`.
      * 다음에 주목하세요: [Google Workspace 프로필 사용 설정을 위한 전제 조건](/ko/enrichment/google-workspace.md#prerequisites-for-google-workspace-user-profiles).
      * 토글을 켰다면 **User Profiles** `켬`, 또한 다음도 설정합니다 **새로 고침 주기(분)**. 이는 Panther가 Google Workspace에 저장된 내용으로 프로필 데이터를 업데이트하는 주기를 나타냅니다.\
        ![](/files/971b91384bba9695e504aaa2ef2e06fef4001ffa)
   4. 다음을 클릭합니다: **설정**. 성공 화면으로 이동됩니다:

      <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).
      * 아직 하지 않았다면 다음을 클릭합니다: **스키마 연결 또는 추론** 소스에 하나 이상의 스키마를 연결합니다.
      * 해당 **이벤트가 처리되지 않을 때 알러트를 트리거** 설정의 기본값은 **YES**. 이 옵션은 활성화된 상태로 두는 것을 권장합니다. 일정 시간이 지난 후 로그 소스에서 데이터 흐름이 중단되면 알림을 받게 되기 때문입니다. 이 시간은 구성 가능하며 기본값은 24시간입니다.
        {% endtab %}

{% tab title="Workload Identity Federation" %}

1. Google Cloud에서 새 앱을 만듭니다:
   1. 계정에 로그인하세요. [Google Cloud 콘솔](https://console.developers.google.com/project).
   2. 다음을 클릭합니다: **+ 프로젝트 만들기.**\
      ![In Google Cloud console, the "+Create Project" button appears at the top of the page under the search bar. In this image, there is a teal circle around it.](/files/8faa73c1d50d9b144aa0c62eaa9cabf5dd5b17d7)
   3. 설명적인 **프로젝트 이름** (예: `Panther Integration`) 그리고 다음을 선택합니다: **위치**.
   4. 다음을 클릭합니다: **만들기**.
      * 프로젝트를 만드는 데 몇 초가 걸립니다. 생성되면 페이지에 알림이 표시됩니다.
   5. 왼쪽 사이드바 메뉴에서 세 줄 아이콘을 클릭한 다음 **Cloud Overview** > **대시보드**.
   6. 방금 만든 프로젝트가 페이지 상단의 드롭다운에서 이미 선택되어 있지 않다면, 드롭다운을 열어 선택합니다.\
      ![At the top of the Google Cloud dashboard, there is a dropdown. "Panther integration test" has been selected, and the select box is circled.](/files/cffd2d533779d8e4598e9531c841d5074d8eb80b)
2. Admin SDK API를 사용 설정합니다:
   1. 검색창에 "Admin SDK API"를 입력한 다음 **Admin SDK API**.
   2. 다음에서 **Admin SDK API** 페이지에서 다음을 클릭합니다: **사용 설정을 선택합니다.**\
      ![In the Google Cloud console, an Admin SDK API page is shown. An Enable button is circled.](/files/8ac4c94240e7473dfd09a1f4fe0582f5e7050da3)
      * 새 화면으로 리디렉션됩니다.
3. [새 Google Cloud 서비스 계정을 만듭니다](https://cloud.google.com/iam/docs/creating-managing-service-accounts).
   1. 방금 만든 서비스 계정의 행에서 다음을 기록합니다 **이메일**. 다음 단계에서 필요합니다.
4. 다음 안내를 따라 AWS와 함께 Workload Identity Federation을 구성합니다: [AWS 또는 Azure와 함께 Workload Identity Federation 구성](https://cloud.google.com/iam/docs/workload-identity-federation-with-other-clouds) 문서.
   1. 다음을 [속성 매핑 및 조건을 정의하는](https://cloud.google.com/iam/docs/workload-identity-federation-with-other-clouds#mappings-and-conditions)동안 다음 예를 참고하세요:

      * 예시 [속성 매핑](https://cloud.google.com/iam/docs/workload-identity-federation#mapping):

        <table><thead><tr><th width="195.8271484375">Google</th><th width="523.1220703125">AWS</th></tr></thead><tbody><tr><td><code>google.subject</code></td><td><code>assertion.arn.extract('arn:aws:sts::{account_id}:')+":"+assertion.arn.extract('assumed-role/{role_and_session}').extract('/{session}')</code></td></tr><tr><td><code>attribute.account</code></td><td><code>assertion.account</code></td></tr></tbody></table>
      * 예시 [속성 조건](https://cloud.google.com/iam/docs/workload-identity-federation#conditions):\
        `attribute.account=="<PANTHER_AWS_ACCOUNT_ID>"`

      <div data-gb-custom-block data-tag="hint" data-style="warning" class="hint hint-warning"><p>다음의 값은 <code>google.subject</code> 속성 <a href="https://cloud.google.com/iam/docs/workload-identity-federation#mapping">은 127자를 초과할 수 없습니다</a>. 다음을 사용할 수 있습니다 <a href="https://cloud.google.com/iam/docs/workload-identity-federation#mapping">공통 표현 언어(CEL) 표현식</a> 을 사용하여 AWS에서 발급한 토큰의 속성을 변환하거나 결합할 수 있습니다. 위 표에서 제안한 표현식은 이 제한을 고려한 것이며, ARN을 Panther 엔터티를 고유하게 식별하는 값으로 변환하려는 시도입니다. AWS 속성에 대한 자세한 내용은 다음의 "예 2 - AssumeRole로 생성된 사용자가 호출"을 참조하세요: <a href="https://docs.aws.amazon.com/STS/latest/APIReference/API_GetCallerIdentity.html">이 AWS 문서 페이지</a>.</p></div>
   2. 당신이 [아이덴티티 풀에 제공자를 추가할 때](https://cloud.google.com/iam/docs/workload-identity-federation-with-other-clouds#aws), 다음을 선택합니다: **AWS**.
   3. 다음으로 이동합니다 **IAM & Admin** → **Workload Identity Federation.**
      1. 방금 만든 Workload Identity Pool의 표시 이름을 클릭합니다.
      2. 다음을 기록합니다 **IAM 주체** 이 페이지에 표시된 값을 기록합니다. 다음 단계에서 필요합니다.
5. IAM 권한 부여

   1. 다음으로 이동합니다 **IAM & Admin** → **서비스 계정**
   2. 방금 만든 서비스 계정의 행에서 다음을 클릭합니다 **이메일**
   3. “**액세스 권한이 있는 주체**” 탭
   4. “**액세스 부여**”

      <div align="left"><figure><img src="/files/9b920bca2e4dbab032978c2c50c2b4746f3f9ceb" alt="" width="563"><figcaption></figcaption></figure></div>
   5. “새 주체” 필드에 다음을 추가해야 합니다 **2개 항목**.
      1. 첫 번째 주체: Workload Identity 주체
         1. 이전에 복사한 IAM 주체는 다음과 비슷하게 표시됩니다:

            <pre class="language-bash" data-overflow="wrap"><code class="lang-bash">principal://iam.googleapis.com/projects/&#x3C;PROJECT_NUMBER>/locations/global/workloadIdentityPools/&#x3C;POOL_ID>/subject/SUBJECT_ATTRIBUTE_VALUE
            </code></pre>
         2. **수정** 합니다:
            * 다음을 바꾸기 `principal://` 와 함께 `principalSet://`
            * /subject/부터 시작하는 모든 항목을 제거합니다
            * 이를 /\*로 바꿉니다
         3. 변경 후, **다음과 같아야 합니다:**

            <pre class="language-bash" data-overflow="wrap"><code class="lang-bash">principalSet://iam.googleapis.com/projects/&#x3C;PROJECT_NUMBER>/locations/global/workloadIdentityPools/&#x3C;POOL_ID>/*
            </code></pre>
         4. 이 수정된 값을 다음에 붙여넣습니다 **새 주체** 필드에 붙여넣습니다.
      2. 두 번째 주체: 서비스 계정 이메일
         1. 다음을 붙여넣습니다. **서비스 계정 이메일** 이전 단계에서 기록한 주소.
            1. 예시 형식:

               <pre class="language-bash" data-overflow="wrap"><code class="lang-bash">my-service-account@my-project.iam.gserviceaccount.com
               </code></pre>
      3. 다음을 확인합니다 **두 항목 모두** 가 있는지.
   6. "역할 할당" 필드에서 다음을 선택합니다 `Service Account Token Creator` 역할

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

   1. “**저장**”
6. [자격 증명 구성 파일을 다운로드합니다](https://docs.cloud.google.com/iam/docs/workload-download-cred-and-grant-access#download-configuration)이 파일은 Panther에서 Google Workspace 로그 API에 인증할 때 사용됩니다.
7. 도메인 전체 위임을 사용 설정합니다:
   1. 다음으로 이동합니다 **IAM & Admin** → **서비스 계정**
   2. 방금 만든 서비스 계정의 행에서 **Actions**, 그런 다음 **세부정보 관리**.

      <figure><img src="/files/53063a8904c4a6dff6c6da0aedeeb469e210db57" alt="" width="563"><figcaption></figcaption></figure>
   3. 다음을 클릭합니다: **고급 설정**, 그런 다음 다음을 복사합니다 **클라이언트 ID**.<br>

      <figure><img src="/files/128e1f724ad77be28c537c938658a66dadadc2fe" alt="" width="563"><figcaption></figcaption></figure>
   4. 다음을 클릭합니다: **Google Workspace Admin Console 보기**.
   5. 관리자 계정으로 로그인합니다.
   6. 다음을 클릭합니다: **보안** → **액세스 및 데이터 제어** → **API 제어**.
   7. 다음을 클릭합니다: **도메인 전체 위임 관리**.
   8. 다음을 클릭합니다: **새로 추가**.\
      ![](/files/ccc46f2a82e4390a5eb99414d21b4fadaa692a11)
   9. 다음 필드를 채우세요:
      1. **클라이언트 ID**: 위에서 복사한 Client ID를 입력합니다.
      2. **OAuth 범위** (쉼표로 구분, 공백 없음): 다음을 입력합니다 `https://www.googleapis.com/auth/admin.reports.audit.readonly`
         * (선택 사항) 사용자 프로필이 필요한 경우, 다음도 입력합니다( `https://www.googleapis.com/auth/admin.directory.user.readonly`
   10. 다음을 클릭합니다: **승인**.
8. 데이터를 가져올 때 서비스 계정이 가장할 Google 관리자 사용자 계정을 선택합니다. 다음을 참조하세요 [가장에 관리자 사용자 이메일이 필요한 이유는 무엇인가요?](https://help.panther.com/articles/6633569239-why-does-setting-up-google-workspace-with-workload-identity-federation-in-panther-require-an-admin-user-email-for-impersonation?lang=en) 자세한 내용은 다음을 참조하세요.\
   두 가지 옵션이 있습니다:
   * SuperAdmin 계정을 사용: 설정은 더 간단하지만, 꼭 필요한 것보다 더 광범위한 권한이 부여됩니다.
   * 최소 권한 원칙을 따르기(권장): 필요한 권한만 있는 전용 Google Workspace 사용자를 만들고 사용합니다.
     1. [최소한의 권한만 있는 Google Workspace 사용자 지정 관리자 역할을 만듭니다](https://support.google.com/a/answer/9807615?hl=en).
     2. 역할에 최소 필수 권한을 부여합니다:
        1. 필수: Reports → Audit/Usage 읽기 액세스

           <div align="left"><figure><img src="/files/dd3b11cff9b26113a0c4c85d5c1d53150d744099" alt="" width="188"><figcaption></figcaption></figure></div>
        2. 선택 사항: Directory → Users 읽기 액세스(사용자 프로필을 사용하는 경우)

           <div align="left"><figure><img src="/files/b46ddf0217614e8c5f428aa663d05112bbe988c1" alt="" width="188"><figcaption></figcaption></figure></div>
        3. 선택 사항: Vault → Google Vault 모든 로그 액세스

           <div align="left"><figure><img src="/files/17ffd8d5fc08e7842c0e83ddb9475cd229af4de5" alt="" width="188"><figcaption></figcaption></figure></div>
     3. 이 사용자 지정 역할을 전용 Google Workspace 사용자에게 할당합니다.
9. Panther에서 소스 설정을 완료합니다:
   1. 다음에서 **pull 구성 및 자격 증명 구성 파일을 제공하고,** 자격 증명 구성 파일을 업로드합니다.

      <figure><img src="/files/97befe08ef68f30458377698a39d5298640d13c3" alt=""><figcaption></figcaption></figure>
   2. 다음의 **관리자 사용자 이메일** 필드에 다음의 이메일 주소를 입력합니다 **Google Admin 사용자** 서비스 계정이 가장할 사용자(이전 단계에서 선택한)의

      <div align="left"><figure><img src="/files/e049943c73a6a019b53dcbf1d04b0ee317a54e30" alt="" width="375"><figcaption></figcaption></figure></div>
   3. 다음에서 **보강** 페이지에서 다음을 사용 설정하려면 [Google Workspace 사용자 프로필](/ko/enrichment/google-workspace.md), 다음의 오른쪽에 **User Profiles**, 토글을 클릭합니다 `켬`.
      * 다음에 주목하세요: [Google Workspace 프로필 사용 설정을 위한 전제 조건](/ko/enrichment/google-workspace.md#prerequisites-for-google-workspace-user-profiles).
        * 토글을 켰다면 **User Profiles** `켬`, 또한 다음도 설정합니다 **새로 고침 주기(분)**. 이는 Panther가 Google Workspace에 저장된 내용으로 프로필 데이터를 업데이트하는 주기를 나타냅니다.\
          ![](/files/971b91384bba9695e504aaa2ef2e06fef4001ffa)
   4. 다음을 클릭합니다: **설정**. 성공 화면으로 이동됩니다:

      <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).
      * 아직 하지 않았다면 다음을 클릭합니다: **스키마 연결 또는 추론** 소스에 하나 이상의 스키마를 연결합니다.
      * 해당 **이벤트가 처리되지 않을 때 알러트를 트리거** 설정의 기본값은 **YES**. 이 옵션은 활성화된 상태로 두는 것을 권장합니다. 일정 시간이 지난 후 로그 소스에서 데이터 흐름이 중단되면 알림을 받게 되기 때문입니다. 이 시간은 구성 가능하며 기본값은 24시간입니다.
        {% endtab %}

{% tab title="OAuth" %}

1. 다음에서 **자격 증명** 페이지에서 리디렉션 URL을 복사하여 안전한 위치에 저장합니다. 다음 단계에서 필요합니다.

   <div align="left"><figure><img src="/files/0029f71f3306532804cb5f82fe6e4720802950ed" alt="" width="375"><figcaption></figcaption></figure></div>
2. Google Cloud에서 새 앱을 만듭니다:
   1. 계정에 로그인하세요. [Google Cloud 콘솔](https://console.developers.google.com/project).
   2. 다음을 클릭합니다: **+ 프로젝트 만들기.**\
      ![In Google Cloud console, the "+Create Project" button appears at the top of the page under the search bar. In this image, there is a teal circle around it.](/files/8faa73c1d50d9b144aa0c62eaa9cabf5dd5b17d7)
   3. 설명적인 **프로젝트 이름** (예: `Panther Integration`) 그리고 다음을 선택합니다: **위치**.
   4. 다음을 클릭합니다: **만들기**.
      * 프로젝트를 만드는 데 몇 초가 걸립니다. 생성되면 페이지에 알림이 표시됩니다.
   5. 왼쪽 사이드바 메뉴에서 세 줄 아이콘을 클릭한 다음 **Cloud Overview** > **대시보드**.
   6. 방금 만든 프로젝트가 페이지 상단의 드롭다운에서 이미 선택되어 있지 않다면, 드롭다운을 열어 선택합니다.\
      ![At the top of the Google Cloud dashboard, there is a dropdown. "Panther integration test" has been selected, and the select box is circled.](/files/cffd2d533779d8e4598e9531c841d5074d8eb80b)
   7. 상단 검색창에서 "OAuth consent screen"을 검색한 다음 일치하는 결과를 선택합니다.\
      ![The search bar at the top of Google Cloud Console has the search term "oauth consent screen" typed in it. the first result, "OAuth consent screen," is circled](/files/cd1f998db4ba84fbb1b6b02fed76d3eb981b20e8)
   8. 다음에서 **OAuth 동의 화면** 페이지에서 다음을 클릭합니다: **시작하기**.
3. 새 Google Cloud 앱을 구성하고 Admin SDK API를 사용 설정합니다:
   1. 다음에서 **OAuth 동의 화면** > **브랜딩** 페이지에서 다음 정보를 입력합니다:
      * **앱 이름**: 프로젝트 이름 또는 프로젝트 ID를 입력합니다.
      * **사용자 지원 이메일**: 이메일 주소를 선택합니다.
      * **대상:** 선택 `내부`.
      * **개발자 연락처 정보**: 이메일 주소를 입력합니다.
      * 다른 필드는 비워 둡니다.
   2. 다음을 클릭합니다: **저장하고 계속**.
   3. 다음에서 **데이터 액세스** > **범위** 페이지에서 다음을 클릭합니다: **범위 추가 또는 삭제**.
   4. 다음의 **수동으로 범위 추가** 섹션에 다음을 입력합니다 `https://www.googleapis.com/auth/admin.reports.audit.readonly`
      * (선택 사항) 사용자 프로필이 필요한 경우, 다음도 입력합니다\
        `https://www.googleapis.com/auth/admin.directory.user.readonly`
   5. 다음을 클릭합니다: **표에 추가** 그리고 **업데이트**.\
      ![In the Manually add scopes section of the Google Cloud page, a URL has been entered. There is an arrow pointing from the Add to table button to the Update button.](/files/28c6689bb2962c953f1de6b1d89b1309cc59675d)
   6. 다음을 클릭합니다: **저장합니다.**
   7. 검색창에서 "Admin SDK API"를 검색한 다음 선택합니다 **Admin SDK API**.
   8. 다음에서 **Admin SDK API** 페이지에서 다음을 클릭합니다: **사용 설정을 선택합니다.**\
      ![In the Google Cloud console, an Admin SDK API page is shown. An Enable button is circled.](/files/8ac4c94240e7473dfd09a1f4fe0582f5e7050da3)
      * 새 화면으로 리디렉션됩니다.
4. 새 Google Cloud 앱의 OAuth 자격 증명을 만듭니다:
   1. 왼쪽 탐색 메뉴에서 다음을 클릭합니다 **자격 증명.**
   2. 페이지 상단에서 다음을 클릭합니다 **+ 자격 증명 만들기**.
   3. 다음을 클릭합니다: **OAuth 클라이언트 ID.**\
      ![In Google Cloud console, the Credentials link in the left sidebar is highlighted. There is an arrow pointing from it to the "+ Create Credentials" link. There is an arrow pointing from "+ Create Credentials" to one of the dropdown options, "OAuth Client ID"](/files/da7a6fe859ba0a070e911378e29729648fc0988b)
      * 다른 페이지로 리디렉션됩니다.
   4. 다음에서 **OAuth 클라이언트 ID 만들기** 페이지에서, **애플리케이션 유형** 필드에서 **웹 애플리케이션** 그리고 알아보기 쉬운 **이름**, 예: `Panther`.
   5. 아래로 스크롤하여 **승인된 리디렉션 URI** 섹션에서, 다음을 클릭합니다 **+ URI 추가**.
   6. 다음의 **URI 1** 필드에 위에서 복사한 리디렉션 URL을 2.1단계에서 붙여넣습니다. 이는 Panther Console의 로그 소스 **자격 증명 설정** 페이지를 참조하세요.\
      ![There is an "Authorized Redirect URIs" header. There is a field labeled "URIs 1". At the bottom, there is a blue "Create" button.](/files/748944d57e9d59937e1964c411d1c66e1cbba1a6)
   7. 다음을 클릭합니다: **만들기**.
   8. 팝업 모달에 다음이 표시됩니다 **클라이언트 ID** 그리고 **클라이언트 시크릿**. 안전한 방법으로 ClientID와 Client Secret을 기록해 둡니다. 보고서를 가져오려면 Panther Console에 이를 제공해야 합니다.
5. Panther에서 Google Workspace 소스 설정을 완료합니다:

   1. 이전 문서에서 [Panther Console에서 로그 소스 설정을 시작한 브라우저 창 또는 탭을 엽니다](#step-1-create-a-new-google-workspace-source-in-panther).
   2. 다음에서 **자격 증명** 페이지에서 다음을 입력합니다 **클라이언트 ID** 그리고 **클라이언트 시크릿** Google Cloud 콘솔에 제공된

      <div align="left"><figure><img src="/files/0029f71f3306532804cb5f82fe6e4720802950ed" alt="" width="375"><figcaption></figcaption></figure></div>

      * 이전 단계에서 이 값을 저장하지 않았다면, Google Cloud 콘솔의 다음 위치에서 찾을 수 있습니다 **APIs & Services** > **자격 증명** > **OAuth 2.0 Client IDs**.
   3. 다음을 클릭합니다: **계속**.
   4. 다음에서 **보강** 페이지에서 다음을 사용 설정하려면 [Google Workspace 사용자 프로필](/ko/enrichment/google-workspace.md), 다음의 오른쪽에 **User Profiles**, 토글을 클릭합니다 `켬`.
      * 다음에 주목하세요: [Google Workspace 프로필 사용 설정을 위한 전제 조건](/ko/enrichment/google-workspace.md#prerequisites-for-google-workspace-user-profiles).
      * 토글을 켰다면 **User Profiles** `켬`, 또한 다음도 설정합니다 **새로 고침 주기(분)**. 이는 Panther가 Google Workspace에 저장된 내용으로 프로필 데이터를 업데이트하는 주기를 나타냅니다.\
        ![](/files/971b91384bba9695e504aaa2ef2e06fef4001ffa)
   5. 다음을 클릭합니다: **설정**.
   6. 다음에서 **검증** 페이지에서 다음을 클릭합니다: **액세스 허용**.

      * 이렇게 하면 이전에 만든 Google Workspace App이 계정에서 Google Workspace 로그를 가져오도록 승인하라는 메시지가 표시됩니다.
      * 다음을 클릭합니다: **허용**.

      <div align="center" data-full-width="false"><img src="/files/f4b0112c4e0e0b454a433728c74adcf9a210f4dd" alt="Google 프롬프트 제목은 &#x22;Panther integration app wants to access your Google Account.&#x22;입니다. 아래에는 &#x22;This will allow Panther integration app to: View audit reports for your G Suite domain.&#x22;라고 표시됩니다. 아래에 허용 및 취소 버튼이 있습니다." width="188"></div>
   7. Panther Console로 다시 이동하며, 성공 화면이 표시됩니다:

   <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).
   * 해당 **이벤트가 처리되지 않을 때 알러트를 트리거** 설정의 기본값은 **YES**. 이 옵션은 활성화된 상태로 두는 것을 권장합니다. 일정 시간이 지난 후 로그 소스에서 데이터 흐름이 중단되면 알림을 받게 되기 때문입니다. 이 시간은 구성 가능하며 기본값은 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>

{% endtab %}
{% endtabs %}

## Panther가 관리하는 탐지

참조 [Panther에서 관리하는](/ko/detections/panther-managed.md) 의 Google Workspace 규칙 [panther-analysis GitHub 저장소](https://github.com/panther-labs/panther-analysis/tree/master/rules) (다음으로 시작하는 디렉터리에서 `gsuite_`).

## 지원되는 로그 유형

Panther는 Google의 [Reports Activities API](https://developers.google.com/admin-sdk/reports/reference/rest/v1/activities) 에서 데이터를 가져오며, 여기에는 관리자 활동, 로그인 활동, 토큰 활동, Google Drive 활동 등이 포함됩니다.

이 데이터는 다음 두 가지 모두로 저장됩니다 [`GSuite.ActivityEvent`](#gsuite.activityevent) 그리고 [`GSuite.Reports`](#gsuite.reports) 로그 유형으로 저장됩니다. 이 두 스키마는 동일한 데이터를 포함하지만, 다음을 사용하는 것이 좋습니다 `Gsuite.ActivityEvent` 이벤트를 평탄화하여 쿼리와 탐지에서 필드를 더 쉽게 참조할 수 있기 때문입니다.

두 스키마는 동일한 데이터를 캡처하지만, 데이터 레이크에는 다르게 저장합니다. 예를 들어, `GSuite.Reports` 데이터 레이크의 로그 수가 약간 더 적을 수 있습니다. 여러 이벤트가 하나의 페이로드로 묶이기 때문입니다. 반면 `GSuite.ActivityEvent`에서는 각 이벤트가 Panther의 단일 이벤트가 됩니다. 이 동작에 대한 자세한 내용은 Knowledge Base 문서에서 확인할 수 있습니다: [Panther 로그 유형 GSuite.Reports와 GSuite.ActivityEvent의 차이점은 무엇인가요?](https://help.panther.com/articles/4763221133-what-is-the-difference-between-the-panther-log-types-gsuite-reports-and-gsuite-activityevent)

{% hint style="info" %}
Google Workspace 로그는 다음 두 곳 모두에 저장되지만 `GSuite.ActivityEvent` 그리고 `GSuite.Reports` 데이터 레이크의 테이블에 저장되더라도, 수집 할당량에는 한 번만 계산됩니다.
{% endhint %}

### GSuite.ActivityEvent

Admin console 애플리케이션이나 Google Drive 애플리케이션과 같이 특정 계정 및 애플리케이션의 활동 이벤트를 포함합니다.

참조: [Reports API Activities List에 대한 Google Workspace 문서.](https://developers.google.com/admin-sdk/reports/v1/reference/activities/list#response)

```yaml
fields:
    - 이름: id
      required: true
      설명: 각 활동 레코드의 고유 식별자.
      type: object
      fields:
        - name: applicationName
          설명: 이벤트가 속한 애플리케이션 이름.
          type: string
        - name: customerId
          설명: Google Workspace 계정의 고유 식별자.
          type: string
        - 이름: time
          설명: 활동이 발생한 시각.
          type: timestamp
          timeFormat: rfc3339
          isEventTime: true
        - name: uniqueQualifier
          설명: 여러 이벤트의 시간이 같은 경우의 고유 식별자.
          type: string
    - 이름: actor
      설명: 작업을 수행하는 사용자.
      type: object
      fields:
        - 이름: email
          설명: 작업자의 기본 이메일 주소. 작업자와 연결된 이메일 주소가 없으면 없을 수 있습니다.
          type: string
          표시자:
            - 이메일
        - name: profileId
          설명: 작업자의 고유 Google Workspace 프로필 ID. 작업자가 Google Workspace 사용자가 아니면 없을 수 있습니다.
          type: string
        - name: callerType
          설명: 작업자의 유형.
          type: string
        - 이름: key
          설명: callerType이 KEY인 경우에만 존재합니다. OAuth 2LO API 요청의 경우 요청자의 consumer_key이거나 로봇 계정의 식별자일 수 있습니다.
          type: string
    - 이름: kind
      required: true
      설명: API 리소스의 유형입니다. 활동 보고서의 경우 값은 reports#activities입니다.
      type: string
    - name: ownerDomain
      설명: 보고서 이벤트의 영향을 받는 도메인입니다. 예를 들어 Admin console의 도메인이나 Drive 애플리케이션의 문서 소유자 도메인입니다.
      type: string
      표시자:
        - domain
    - 이름: ipAddress
      설명: 작업을 수행하는 사용자의 IP 주소입니다. 이는 Google Workspace에 로그인할 때 사용자의 인터넷 프로토콜(IP) 주소이며, 사용자의 실제 위치를 반영할 수도 있고 그렇지 않을 수도 있습니다. 예를 들어 IP 주소는 사용자의 프록시 서버 주소 또는 가상 사설망(VPN) 주소일 수 있습니다. API는 IPv4와 IPv6를 지원합니다.
      type: string
      표시자:
        - ip
    - 이름: type
      설명: 이벤트 유형입니다. 관리자가 변경한 Google Workspace 서비스 또는 기능은 type 속성에서 식별되며, 이 속성은 eventName 속성을 사용하여 이벤트를 식별합니다. API의 전체 type 범주 목록은 위의 applicationName에서 다양한 애플리케이션의 이벤트 이름 목록을 참조하세요.
      type: string
    - 이름: name
      설명: 이벤트 이름입니다. 이는 API가 보고한 활동의 구체적인 이름입니다. 각 eventName은 특정 Google Workspace 서비스 또는 기능과 관련되며, API는 이를 이벤트 유형으로 구성합니다.
      type: string
    - name: parameters
      설명: 다양한 애플리케이션의 매개변수 값 쌍입니다. eventName 매개변수에 대한 자세한 내용은 위의 applicationName에서 다양한 애플리케이션의 이벤트 이름 목록을 참조하세요.
      유형: json
```

### GSuite.Reports

{% hint style="warning" %}
다음을 사용하는 것이 좋습니다 [`GSuite.ActivityEvent`](#gsuite.activityevent) 대신 `GSuite.Reports`. 두 스키마는 동일한 데이터를 포함하지만, `GSuite.ActivityEvent` 의 구조는 더 평면적이므로 쿼리와 탐지에서 참조하기가 더 쉽습니다.
{% endhint %}

Admin console 애플리케이션이나 Google Drive 애플리케이션과 같이 특정 계정 및 애플리케이션의 활동 이벤트를 포함합니다.

참조: [Reports API Activities List에 대한 Google Workspace 문서.](https://developers.google.com/admin-sdk/reports/v1/reference/activities/list#response)

<pre class="language-yaml"><code class="lang-yaml">schema: GSuite.Reports
설명: 
<strong>referenceURL: https://developers.google.com/admin-sdk/reports/v1/reference/activities/list#response
</strong>fields:
    - 이름: id
      required: true
      설명: 각 활동 레코드의 고유 식별자.
      type: object
      fields:
        - name: applicationName
          설명: 이벤트가 속한 애플리케이션 이름.
          type: string
        - name: customerId
          설명: Google Workspace 계정의 고유 식별자.
          type: string
        - 이름: time
          설명: 활동이 발생한 시각.
          type: timestamp
          timeFormat: rfc3339
          isEventTime: true
        - name: uniqueQualifier
          설명: 여러 이벤트의 시간이 같은 경우의 고유 식별자.
          type: string
    - 이름: actor
      설명: 작업을 수행하는 사용자.
      type: object
      fields:
        - 이름: email
          설명: 작업자의 기본 이메일 주소. 작업자와 연결된 이메일 주소가 없으면 없을 수 있습니다.
          type: string
          표시자:
            - 이메일
        - name: profileId
          설명: 작업자의 고유 Google Workspace 프로필 ID. 작업자가 Google Workspace 사용자가 아니면 없을 수 있습니다.
          type: string
        - name: callerType
          설명: 작업자의 유형.
          type: string
        - 이름: key
          설명: callerType이 KEY인 경우에만 존재합니다. OAuth 2LO API 요청의 경우 요청자의 consumer_key이거나 로봇 계정의 식별자일 수 있습니다.
          type: string
    - 이름: kind
      required: true
      설명: API 리소스의 유형입니다. 활동 보고서의 경우 값은 reports#activities입니다.
      type: string
    - name: ownerDomain
      설명: 보고서 이벤트의 영향을 받는 도메인입니다. 예를 들어 Admin console의 도메인이나 Drive 애플리케이션의 문서 소유자 도메인입니다.
      type: string
      표시자:
        - domain
    - 이름: ipAddress
      설명: 작업을 수행하는 사용자의 IP 주소입니다. 이는 Google Workspace에 로그인할 때 사용자의 인터넷 프로토콜(IP) 주소이며, 사용자의 실제 위치를 반영할 수도 있고 그렇지 않을 수도 있습니다. 예를 들어 IP 주소는 사용자의 프록시 서버 주소 또는 가상 사설망(VPN) 주소일 수 있습니다. API는 IPv4와 IPv6를 지원합니다.
      type: string
      표시자:
        - ip
    - name: events
      설명: 보고서의 활동 이벤트.
      type: array
      element:
        type: object
        fields:
            - 이름: type
              설명: 이벤트 유형입니다. 관리자가 변경한 Google Workspace 서비스 또는 기능은 type 속성에서 식별되며, 이 속성은 eventName 속성을 사용하여 이벤트를 식별합니다. API의 전체 type 범주 목록은 위의 applicationName에서 다양한 애플리케이션의 이벤트 이름 목록을 참조하세요.
              type: string
            - 이름: name
              설명: 이벤트 이름입니다. 이는 API가 보고한 활동의 구체적인 이름입니다. 각 eventName은 특정 Google Workspace 서비스 또는 기능과 관련되며, API는 이를 이벤트 유형으로 구성합니다.
              type: string
            - name: parameters
              설명: 다양한 애플리케이션의 매개변수 값 쌍입니다. eventName 매개변수에 대한 자세한 내용은 위의 applicationName에서 다양한 애플리케이션의 이벤트 이름 목록을 참조하세요.
              type: array
              element:
                type: object
                fields:
                    - 이름: name
                      설명: 매개변수의 이름.
                      type: string
                    - 이름: value
                      설명: 매개변수의 문자열 값.
                      type: string
                    - name: intValue
                      설명: 매개변수의 정수 값.
                      type: bigint
                    - name: boolValue
                      설명: 매개변수의 불리언 값.
                      유형: boolean
                    - name: multiValue
                      설명: 매개변수의 문자열 값들.
                      type: array
                      element:
                        type: string
                    - name: multiIntValue
                      설명: 매개변수의 정수 값들.
                      type: array
                      element:
                        type: bigint
                    - name: messageValue
                      설명: '이 매개변수와 연결된 중첩된 매개변수 값 쌍입니다. 매개변수의 복합 값 유형은 매개변수 값 목록으로 반환됩니다. 예를 들어 address 매개변수는 [{parameter: [{name: city, value: abc}]}]와 같은 값일 수 있습니다]'
                      유형: json
                    - name: multiMessageValue
                      설명: messageValue 객체 목록.
                      type: array
                      element:
                        유형: json
</code></pre>


---

# 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/googleworkspace.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.
