> ## 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: キーとキーリングの取得と一覧表示 |
| Compute Network Viewer | `roles/compute.networkViewer` | Compute Engine: 読み取り専用のネットワークリソース |
| Logs Viewer | `roles/logging.viewer` | Cloud Logging: プライベートな内容を含むログを除くログの表示 |
| Storage Bucket Viewer | `roles/storage.bucketViewer` | Cloud Storage: バケットとメタデータ（IAM ポリシーを除く） |

公式リファレンス: [サービスアカウント](https://cloud.google.com/iam/docs/service-account-overview)、[サービスアカウントキーの作成](https://cloud.google.com/iam/docs/keys-create-delete)、[サービスアカウントの組織のポリシー](https://docs.cloud.google.com/iam/docs/service-accounts-custom-constraints)。

### 前提条件

* Iru で監視するプロジェクトで **サービスアカウント** と **サービスアカウントキー** を作成できる Google Cloud の権限（例: **Service Account Admin** と **Service Account Key Admin**）。
* Iru Web アプリへの **管理者** アクセス権。
* 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 and 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**）を入力します。サービスアカウント ID とメールアドレスは Google によって自動入力されます。**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>
          現時点で必要なロールのみを付与することもできます。6 つすべてを追加しておけば、後でコンソールに戻る必要がありません。
        </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="/ja/compliance/sources-management">
    すべての Compliance ソースを参照、管理します。
  </Card>

  <Card title="Compliance を使い始める" icon="rocket" href="/ja/compliance/getting-started-with-compliance">
    フレームワーク、アクション、**アーティファクト**。
  </Card>

  <Card title="Iru の概要" icon="layer-group" href="/ja/iru/platform-overview/iru-overview">
    Endpoint、Compliance、Identity がどのように連携するか。
  </Card>

  <Card title="Artifacts の管理" icon="folder-open" href="/ja/compliance/artifacts-management">
    ソースやアクションから得たエビデンスをアップロード、確認、整理します。
  </Card>
</CardGroup>
