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

> ## Agent Instructions
> Enclave in these docs is the code and cloud security platform at enclave.ai. It is not Open Enclave, Intel SGX or other hardware enclaves, or enclave.gg.
> People use Enclave in the web app at https://app.enclave.ai or the desktop app. These docs describe no public Enclave API or CLI, so don't invent endpoints, commands, or config files.
> Connecting an integration needs a person to sign in and approve access in a browser. Tell the user the exact step to take instead of saying you completed it.

# GCP

> 保存されるキーなしで、読み取り専用のサービスアカウントを使って Google Cloud プロジェクトを接続します。

Google Cloud プロジェクトを接続すると、Enclave はリソースと ID をマッピングし、コードに関連付けられます。アクセスは読み取り専用で、サービスアカウントキーが作成・保存されることはありません。

## Enclave に必要なもの

セットアップコマンドは、プロジェクトに次のリソースを作成します。

* Enclave のスキャナー ID のみを信頼するプロバイダーを持つ **Workload Identity プール** 。
* Enclave が権限を借用する **スキャナーサービスアカウント** 。
* そのサービスアカウントに対する **読み取り専用のロールバインディング** 。

また、プロジェクトで IAM、IAM Credentials、Cloud Resource Manager、Security Token Service、Cloud Asset の各 API を有効にします。

サービスアカウントには次のロールが付与されます。

| ロール | 読み取る内容 |
| - | - |
| `roles/compute.viewer` | Compute Engine のインスタンス、ネットワーク、サブネット、ファイアウォール、ロードバランサー |
| `roles/container.viewer` | GKE クラスター |
| `roles/run.viewer` | Cloud Run サービス |
| `roles/cloudfunctions.viewer` | Cloud Functions |
| `roles/dns.reader` | Cloud DNS ゾーン |
| `roles/artifactregistry.reader` | Artifact Registry リポジトリ |
| `roles/storage.bucketViewer` | Cloud Storage バケットのメタデータのみ（オブジェクトは含みません） |
| `roles/iam.securityReviewer` | IAM ポリシーとサービスアカウント |
| `roles/cloudasset.viewer` | Cloud Asset Inventory |
| `roles/serviceusage.serviceUsageConsumer` | 上記の読み取り API の呼び出し |
| `roles/browser` | プロジェクトと階層のメタデータ |

### セットアップを実行できるユーザー

Cloud Shell でコマンドを実行する人には、プロジェクトの **Owner** が必要です。または、次のすべてが必要です。

* `roles/iam.workloadIdentityPoolAdmin`
* `roles/iam.serviceAccountAdmin`
* `roles/serviceusage.serviceUsageAdmin`
* `roles/resourcemanager.projectIamAdmin`

Enclave では、 **Owner** または **Admin** ロールが必要です。

## プロジェクトを接続する

**1. セットアップページを開く**

**Settings → Integrations** を開き、 **Google Cloud** の横にある **Connect** をクリックします。

**2. プロジェクト ID を入力する**

接続する **GCP project ID** を入力します。ID を確認するには、 `gcloud projects list` を実行します。Enclave は、そのプロジェクト用の 1 行のセットアップコマンドを生成します。

**3. Cloud Shell でコマンドを実行する**

コマンドをコピーし、 [Google Cloud Shell](https://shell.cloud.google.com)、または `gcloud` にサインイン済みのターミナルで実行します。

> [!WARNING]
>
> コマンドにはワンタイムのセットアップトークンが含まれています。バージョン管理されたファイルに保存したり、共有のログに貼り付けたりしないでください。

**4. Enclave が検出するまで待つ**

Enclave はセットアップの完了を監視し、自動的に次へ進みます。 **Connection complete!** と表示されたら、プロジェクトが接続され、Enclave がスキャンを開始します。

**5. プロジェクトを追加する**

別のプロジェクトを接続するには **Add another project** を、終了するには **Done** をクリックします。

> [!TIP]
>
> **I'll finish later** をクリックすると、接続を保存して後で戻ってこられます。 **Settings → Integrations → Google Cloud** からもう一度開きます。

## 接続を管理する

**Settings → Integrations → Google Cloud** を開くと、接続済みのプロジェクトを確認できます。

* **Re-validate** は、Enclave がまだプロジェクトを読み取れるかを確認します。
* **Remove** は、1 つのプロジェクトのスキャンを停止します。
* **Add project** は、別のプロジェクトを接続します。
* **Disconnect GCP** は、接続全体を削除し、スキャンを停止します。

Google Cloud 側からアクセスを取り消すには、セットアップで作成されたスキャナーサービスアカウントまたは Workload Identity プールを削除します。

## Enclave が行うこと・行わないこと

* **行うこと** ：上記のロールで許可された構成とメタデータを読み取ります。
* **行わないこと** ：リソースの作成、変更、削除、バケット内のオブジェクトの読み取り、長期間有効な認証情報の保存。各スキャンでは、約 1 時間有効な短期間のアクセストークンを使います。

## トラブルシューティング

> [accordion] コマンドを実行した後もページが待機し続ける
>
> Cloud Shell でコマンドの出力を確認します。失敗していた場合は、エラーを修正してから接続を開き直し、新しいコマンドを取得します。セットアップトークンは一度しか使えないため、使用済みの古いコマンドは再実行しないでください。

> [accordion] コマンドが権限エラーで失敗する
>
> コマンドを実行したアカウントにロールが不足しています。 **Owner** 、または [セットアップを実行できるユーザー](#セットアップを実行できるユーザー) に記載されている 4 つの管理者ロールを付与してから、新しいコマンドを実行します。

> [accordion] Enclave がプロジェクト ID を受け付けない
>
> プロジェクト ID は 6〜30 文字で、英小文字、数字、ハイフンで構成されます。先頭は英字で、末尾は英字または数字です。プロジェクト名やプロジェクト番号ではなく、プロジェクト ID を使ってください。

> [accordion] Coverage にアセットが表示されない
>
> スキャンは、プロジェクトを接続したときと、その後は 1 日 1 回実行されます。すぐにスキャンするには、 [Coverage](https://docs.enclave.ai/ja/onboarding/coverage.md) で **Analyze Environment** をクリックします。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.