> ## Documentation Index
> Fetch the complete documentation index at: https://docs.iru.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Google Cloud Platform

> 읽기 전용 서비스 계정과 JSON 키를 사용하여 Google Cloud Platform을 Iru Compliance에 연결하고 IAM, 스토리지, 로깅 및 네트워크 증거를 수집합니다.

### Google Cloud Platform 정보

Iru는 **서비스 계정**과 **JSON 키**를 사용하여 **Google Cloud** 프로젝트에 연결합니다. 계정을 한 번 생성하고 필요한 **읽기 전용** 역할을 부여한 다음 Iru에 키를 업로드합니다. Iru는 구성 및 인벤토리 증거를 수집하며, 프로젝트의 리소스를 변경하지 **않습니다**.

### 작동 방식

Iru는 커넥터 마법사에서 업로드한 서비스 계정 **JSON 키**로 인증합니다. Iru가 프로젝트의 리소스를 읽을 수 있도록 **프로젝트** 수준에서 역할을 부여합니다.

| 항목 | 값 |
| - | - |
| **범주** | 클라우드 인프라 |
| **인증** | 서비스 계정 JSON 키 |

#### Iru가 수집하는 항목

| 소스 | Iru가 수집하는 증거 |
| - | - |
| BigQuery | 데이터 세트 및 테이블 인벤토리, 데이터 세트 액세스, 암호화 및 만료 설정 |
| Identity and Access Management (IAM) | 리소스 계층 전반의 주 구성원, 서비스 계정, 커스텀 역할 및 역할 바인딩 |
| Cloud Key Management Service (Cloud KMS) | 보호 수준, 순환 일정 및 상태를 포함한 키링 및 키 |
| Cloud Logging | 로그 싱크, 보존 설정 및 관리자 활동 기록(비공개 콘텐츠가 포함된 로그 제외) |
| Cloud Storage | 버킷 인벤토리 및 공개 액세스 방지, 균일한 버킷 수준 액세스, 버전 관리, 보존, 암호화, 액세스 로깅 등의 설정 |
| Compute Engine | VPC 네트워크, 서브넷, 방화벽 규칙 및 경로 |

#### 읽기 전용 역할

필요한 각 역할을 추가합니다. 이 역할들은 모두 읽기 전용입니다.

| 역할 | 역할 ID | 다루는 범위 |
| - | - | - |
| Security Auditor | `roles/iam.securityAuditor` | IAM: 리소스, 폴더 및 프로젝트 계층, 정책, 보안 구성 |
| BigQuery Data Viewer | `roles/bigquery.dataViewer` | BigQuery: 데이터 세트 및 해당 콘텐츠 |
| Cloud KMS Viewer | `roles/cloudkms.viewer` | Cloud KMS: 키 및 키링에 대한 get 및 list |
| Compute Network Viewer | `roles/compute.networkViewer` | Compute Engine: 읽기 전용 네트워킹 리소스 |
| Logs Viewer | `roles/logging.viewer` | Cloud Logging: 비공개 콘텐츠가 포함된 로그를 제외한 로그 보기 |
| Storage Bucket Viewer | `roles/storage.bucketViewer` | Cloud Storage: 버킷 및 메타데이터(IAM 정책 제외) |

공식 참고 자료: [Service accounts](https://cloud.google.com/iam/docs/service-account-overview), [Create service account keys](https://cloud.google.com/iam/docs/keys-create-delete), [Organization policies for service accounts](https://docs.cloud.google.com/iam/docs/service-accounts-custom-constraints).

### 사전 요구 사항

* Iru가 모니터링할 프로젝트에서 **서비스 계정** 및 **서비스 계정 키**를 생성할 수 있는 Google Cloud 권한(예: **Service Account Admin** 및 **Service Account Key Admin**).
* Iru 웹 앱에 대한 **관리자** 액세스 권한.
* Iru가 모니터링할 Google Cloud **프로젝트**. 증거가 해당 프로젝트의 리소스를 포괄하도록 프로젝트에 역할을 부여합니다.

### Google Cloud Platform을 Iru에 연결

**Google Cloud**에서 서비스 계정과 JSON 키를 생성한 다음 **Iru Compliance**에 키를 업로드합니다.

<Tabs>
  <Tab title="Google Cloud">
    <Note>
      **Iru Compliance**에서 **Google Cloud Platform**을 켜기 전에 이 탭을 완료하세요.
    </Note>

    #### 서비스 계정 생성 및 역할 부여

    <Steps>
      <Step title="로그인 및 프로젝트 선택">
        [Google Cloud 콘솔](https://console.cloud.google.com/)을 열고 Iru가 모니터링할 **프로젝트**를 선택합니다.
      </Step>

      <Step title="Service Accounts 열기">
        탐색 메뉴에서 **IAM & Admin** → **Service Accounts**로 이동합니다.

        <Frame>
          <img src="https://mintcdn.com/iru/HMIBk0Tq7gdyWA0i/assets/media/images/iru-compliance-source-google-service-account.png?fit=max&auto=format&n=HMIBk0Tq7gdyWA0i&q=85&s=447d80eb8fd9ad7a60f4de5f976611de" alt="IAM 및 Admin에서 Service Accounts가 선택된 Google Cloud 콘솔 탐색" width="1116" height="1214" data-path="assets/media/images/iru-compliance-source-google-service-account.png" />
        </Frame>
      </Step>

      <Step title="서비스 계정 생성">
        **Create service account**를 선택합니다. **Service account name**(예: **Iru Compliance**)을 입력합니다. Google이 서비스 계정 ID와 이메일을 자동으로 채웁니다. **Create and continue**를 선택합니다.
      </Step>

      <Step title="읽기 전용 역할 부여">
        **권한** 단계에서 [**읽기 전용 역할**](#read-only-roles) 표에서 필요한 각 역할을 추가한 다음 **계속**과 **완료**를 선택합니다.

        <Frame>
          <img src="https://mintcdn.com/iru/HMIBk0Tq7gdyWA0i/assets/media/images/iru-compliance-source-google-permissions.png?fit=max&auto=format&n=HMIBk0Tq7gdyWA0i&q=85&s=4d5a4ee57340eab8d5a01b7b58d4083d" alt="Security Auditor, BigQuery Data Viewer, Cloud KMS Viewer, Compute Network Viewer, Logs Viewer 및 Storage Bucket Viewer 역할이 표시된 Google Cloud Permissions 단계" width="1027" height="1807" data-path="assets/media/images/iru-compliance-source-google-permissions.png" />
        </Frame>

        <Tip>
          지금 필요한 역할만 부여할 수 있습니다. 여섯 가지 역할을 모두 추가하면 나중에 콘솔로 다시 돌아올 필요가 없습니다.
        </Tip>
      </Step>
    </Steps>

    #### JSON 키 생성 및 다운로드

    <Steps>
      <Step title="서비스 계정 열기">
        **IAM & Admin** → **Service Accounts**로 이동한 다음 생성한 계정을 엽니다.
      </Step>

      <Step title="Keys 탭 선택">
        **Keys** 탭을 선택합니다.
      </Step>

      <Step title="Add key 선택">
        **Add key**를 선택합니다.

        <Frame>
          <img src="https://mintcdn.com/iru/HMIBk0Tq7gdyWA0i/assets/media/images/iru-compliance-source-google-add-key.png?fit=max&auto=format&n=HMIBk0Tq7gdyWA0i&q=85&s=127325d179363697d9b34581aa2e12db" alt="Iru Compliance의 Add key가 표시된 Google Cloud 서비스 계정 Keys 탭" width="1692" height="1092" data-path="assets/media/images/iru-compliance-source-google-add-key.png" />
        </Frame>
      </Step>

      <Step title="새 키 생성">
        **Create new key**를 선택합니다.
      </Step>

      <Step title="JSON 선택 및 키 생성">
        **JSON**을 선택한 다음 **만들기**를 선택합니다. 키 파일이 컴퓨터에 다운로드됩니다.

        <Frame>
          <img src="https://mintcdn.com/iru/HMIBk0Tq7gdyWA0i/assets/media/images/iru-compliance-source-google-json-key.png?fit=max&auto=format&n=HMIBk0Tq7gdyWA0i&q=85&s=b71d635a8b30cf01a36637f045df46c1" alt="JSON이 선택된 Iru Compliance용 Create private key 대화 상자" width="767" height="453" data-path="assets/media/images/iru-compliance-source-google-json-key.png" />
        </Frame>
      </Step>

      <Step title="키를 안전하게 보관">
        이 파일을 분실하면 Google은 복구할 수 없습니다. 파일을 가진 사람은 누구나 서비스 계정의 액세스 권한을 갖게 됩니다. 비밀번호 관리자나 시크릿 보관소에 저장하고, Iru에서 소스를 연결한 후 로컬 사본을 삭제하세요.
      </Step>
    </Steps>

    <AccordionGroup>
      <Accordion title="조직에서 사전 정의된 역할을 제한하는 경우">
        일부 조직에서는 관리자가 부여할 수 있는 사전 정의된 역할을 제한합니다. 대신 동일한 읽기 전용 권한을 가진 커스텀 역할을 만드세요.

        1. **IAM & Admin** → **Roles**로 이동하여 **Create role**을 선택합니다.
        2. 필요한 권한을 추가합니다. 각 사전 정의된 역할에 포함된 내용은 [**읽기 전용 역할**](#read-only-roles)의 역할 ID를 참고하세요.
        3. 사전 정의된 역할 대신 커스텀 역할을 서비스 계정에 할당합니다.
      </Accordion>

      <Accordion title="선택 사항: gcloud로 서비스 계정 생성">
        CLI를 선호하는 경우 프로젝트에서 서비스 계정과 키를 생성할 수 있는 사용자로 로그인한 상태에서 **gcloud**로 다음을 실행합니다. `PROJECT_ID`를 설정한 다음 스크립트를 실행합니다.

        ```bash theme={null}
        # Set these two values, then run the script.
        PROJECT_ID="your-project-id"
        SA_NAME="iru-compliance"
        SA_EMAIL="${SA_NAME}@${PROJECT_ID}.iam.gserviceaccount.com"

        gcloud config set project "$PROJECT_ID"

        # 1. Create the service account
        gcloud iam service-accounts create "$SA_NAME" \
          --display-name="Iru Compliance"

        # 2. Bind the read-only roles at the project level
        for ROLE in \
          roles/iam.securityAuditor \
          roles/bigquery.dataViewer \
          roles/cloudkms.viewer \
          roles/compute.networkViewer \
          roles/logging.viewer \
          roles/storage.bucketViewer
        do
          gcloud projects add-iam-policy-binding "$PROJECT_ID" \
            --member="serviceAccount:${SA_EMAIL}" \
            --role="$ROLE"
        done

        # 3. Create the JSON key in the current directory
        gcloud iam service-accounts keys create iru-compliance-key.json \
          --iam-account="$SA_EMAIL"
        ```

        스크립트는 실행한 디렉터리에 `iru-compliance-key.json`을 생성합니다. 이 파일을 [**Iru Compliance**](#iru-compliance) 탭에서 업로드하세요.
      </Accordion>
    </AccordionGroup>

    <Note>
      [**Iru Compliance**](#iru-compliance) 탭에서 계속 진행하세요.
    </Note>
  </Tab>

  <Tab title="Iru Compliance">
    <Note>
      JSON 키 파일을 확보할 수 있도록 먼저 [**Google Cloud**](#google-cloud) 탭을 완료하세요.
    </Note>

    <Steps>
      <Step title="소스 열기">
        Iru Compliance의 왼쪽 탐색 모음에서 **컴플라이언스**를 펼치고 **소스**를 선택합니다.

        <Frame>
          <img src="https://mintcdn.com/iru/tI0HDLDwHj8r9Ile/assets/media/images/iru-navigation-compliance-sources.png?fit=max&auto=format&n=tI0HDLDwHj8r9Ile&q=85&s=87dcef15fc17d2fb9a6e53f454e41710" alt="왼쪽 탐색: Compliance가 펼쳐지고 Sources가 선택됨" width="410" height="1024" data-path="assets/media/images/iru-navigation-compliance-sources.png" />
        </Frame>
      </Step>

      <Step title="Google Cloud Platform 켜기">
        **Google Cloud Platform**을 찾습니다(**범주**를 **Cloud infrastructure**로 설정하거나 **이름 또는 설명으로 검색** 사용). 해당 카드에서 **토글**을 켭니다. 커넥터 마법사를 위한 브라우저 탭 또는 창이 열릴 수 있습니다.
      </Step>

      <Step title="JSON 키 업로드">
        설정 화면에서 **Choose File**을 선택하고 다운로드한 JSON 키를 선택합니다. 파일 내용이 아래 필드에 표시됩니다.
      </Step>

      <Step title="연결 완료">
        **저장**을 선택한 다음 **Connect**를 선택합니다. 연결에 성공하면 마법사에 **연결 구성됨**이 표시됩니다.
      </Step>

      <Step title="소스가 활성인지 확인">
        **Iru가 외부 서비스에 대한 액세스를 요청하고 있습니다** 브라우저 탭을 닫은 다음 **컴플라이언스** → **소스**로 돌아가 **Google Cloud Platform** 카드가 **활성**인지 확인합니다.
      </Step>
    </Steps>
  </Tab>
</Tabs>

### 문제 해결

<AccordionGroup>
  <Accordion title="소스를 켜도 아무것도 열리지 않음">
    Iru 사이트에 대한 **팝업 차단** 설정을 확인한 후 다시 시도하세요.
  </Accordion>

  <Accordion title="조직 정책으로 인해 키 생성이 차단됨">
    **만들기**에서 정책 오류가 반환되면 조직에서 `constraints/iam.disableServiceAccountKeyCreation`을 적용하고 있을 수 있습니다. 키를 다운로드하려면 조직 정책 관리자가 프로젝트에 대한 예외를 추가해야 합니다. Google의 [서비스 계정에 대한 조직 정책](https://docs.cloud.google.com/iam/docs/service-accounts-custom-constraints) 가이드를 참조하세요.
  </Accordion>

  <Accordion title="연결이 실패하거나 증거가 불완전함">
    JSON 키가 올바른 **프로젝트**의 서비스 계정에 속하는지, 그리고 계정에 필요한 증거에 해당하는 [**읽기 전용 역할**](#read-only-roles)에 나열된 역할이 있는지 확인하세요.
  </Accordion>
</AccordionGroup>

### 관련 문서

<CardGroup cols={2}>
  <Card title="Sources 관리" icon="plug" href="/ko/compliance/sources-management">
    모든 Compliance 소스를 찾아보고 관리합니다.
  </Card>

  <Card title="Compliance 시작하기" icon="rocket" href="/ko/compliance/getting-started-with-compliance">
    프레임워크, 작업 및 **아티팩트**.
  </Card>

  <Card title="Iru 개요" icon="layer-group" href="/ko/iru/platform-overview/iru-overview">
    Endpoint, Compliance 및 Identity가 함께 작동하는 방식.
  </Card>

  <Card title="Artifacts 관리" icon="folder-open" href="/ko/compliance/artifacts-management">
    소스 및 작업에서 수집한 증거를 업로드, 검토 및 정리합니다.
  </Card>
</CardGroup>
