
# Google Cloud Organization を接続する

同じ Google Cloud 組織に属する複数の GCP プロジェクトがある場合、そのうちの 1 つを接続して組織レベルで権限を付与すれば、残りのプロジェクト（今後作成するプロジェクトを含む）を Aikido が自動的に接続します。

### Google Cloud Organization を接続する理由 <a href="#why-connect-aws-organization" id="why-connect-aws-organization"></a>

組織レベルでオンボーディングすることで、次のメリットが得られます：

* **迅速なセットアップ**：手動で接続する必要があるのは 1 つのプロジェクトだけです。
* **プロジェクトの自動検出**：今後作成するプロジェクトも含め、プロジェクトが自動的に Aikido に追加されます。
* **コンテナスキャンの自動セットアップ**：Aikido は、すべてのプロジェクトの Artifact Registry にあるコンテナを自動的にスキャンします。

### 前提条件 <a href="#prerequisites" id="prerequisites"></a>

* Pro、Advanced、または Enterprise プランを利用していること。
* Google Cloud 組織へのアクセス権があり、組織レベルで権限を付与できること。
* GCP プロジェクトの 1 つを「管理」プロジェクトとして指定すること。このプロジェクト内にサービスアカウント/Workload Identity Federation プールを作成し、Aikido にオンボーディングします。

### はじめに <a href="#getting-started" id="getting-started"></a>

Google Cloud 組織を接続するには、[GCP オンボーディングウィザード](https://app.aikido.dev/clouds/add/gcp)で「Full GCP Organization」オプションを選択します。

<figure><img src="https://help.aikido.dev/_assets/46bde7d1e124/image-49.png" alt=""><figcaption></figcaption></figure>

「管理」プロジェクトの ID と番号を入力した後、以下の情報を入力する必要があります：

* **Organization ID**：「783352941112」のような形式です。
* **Included Folder IDs（任意）**：このオプションを使用すると、組織の一部（例：フォルダとそのすべての子孫）をオンボーディングできます。
* **Excluded Folder IDs（任意）**：このオプションを使用すると、フォルダ全体を自動オンボーディングから除外できます。これは **Included Folders** オプションと組み合わせて使用することもできます。
* **Excluded Project IDs**：任意で、特定の GCP プロジェクトを Aikido への追加対象から除外できます。
* **Artifact Registry Scanning** を有効にすることで、プロジェクト全体のコンテナスキャンを自動的に設定することもできます。

これらの情報は、[Google Cloud Resource Manager ページ](https://console.cloud.google.com/cloud-resource-manager)（プロジェクトセレクターから組織を選択）で確認できます。

{% hint style="info" %}
オンボーディング中に認証情報の検証が失敗した場合、IAM 権限が Google Cloud 組織内でまだ反映中である可能性があります。数分待ってから再試行してください。反映にかかる時間は組織の規模によって異なります。
{% endhint %}

#### 既存の組織接続を編集する <a href="#editing-an-existing-connection" id="editing-an-existing-connection"></a>

組織を接続した後は、**Clouds** → 対象の GCP 組織 → **Actions** → **Configure** からスコープを変更できます。これにより **Edit organization** モーダルが開き、オンボーディングウィザードと同じ包含/除外設定が、より少ないフィールドにまとめて表示されます：

* **Organization or Folder IDs**：組織 ID、または組織の一部に同期のスコープを限定するための 1 つ以上のフォルダ ID を指定できます。ここでのフォルダ ID はプレフィックス付きの形式を使用します。
* **Excluded Folder IDs**：特定のフォルダとその配下のすべてを除外します。ここでのフォルダ ID はプレーンな形式（プレフィックスなし）を使用します。
* **Excluded Project IDs**：特定のプロジェクトを除外します。

{% hint style="info" %}
フォルダ ID の形式は、上記の 2 つのフィールドで異なります：

* **Organization or Folder IDs**：`folders/123456, folders/789012`
* **Excluded Folder IDs**：`123456, 987654`
{% endhint %}

{% hint style="warning" %}
スコープを狭めても、既に接続されているプロジェクトは削除されません。新しいスコープの対象外となったプロジェクトは、[clouds ページ](https://app.aikido.dev/clouds)から手動で削除するまで Aikido に残ります。
{% endhint %}

#### Terraform モジュール <a href="#terraform-module" id="terraform-module"></a>

Infrastructure as Code を利用したい場合は、Aikido の Terraform モジュールを使用して、組織レベルのオンボーディングに必要な Google Cloud IAM と Workload Identity Federation の設定を構成できます。このモジュールは、単一プロジェクトと組織全体の両方のセットアップに対応しており、Artifact Registry スキャンや VM スキャン権限もオプションでサポートしています。

[https://github.com/AikidoSec/gcp-onboarding-terraform-module](https://github.com/AikidoSec/gcp-onboarding-terraform-module)

組織レベルのオンボーディングには modules/org モジュールを使用し、クラウド接続フローの中で生成された `credential_config_json` を Aikido にアップロードしてください。

Aikido アカウントが EU インスタンス（app.aikido.dev）でない場合は、`aikido_region` を `us`、`me`、または `au` に適宜設定してください。

{% hint style="info" %}
**重要**

Terraform モジュールは、必要な Google Cloud IAM 設定を構成するだけです。クラウドアカウントを接続するには、生成された `credential_config_json` をアップロードし、残りのアプリ内の手順を完了して、Aikido でのオンボーディングフローを完了する必要があります。
{% endhint %}

#### クラウドの用途の判定 <a href="#cloud-purpose-determination" id="cloud-purpose-determination"></a>

GCP プロジェクトの用途/環境は、プロジェクト名に基づいて自動的に判定されます。Aikido は「production」「staging」「uat」などの語句を検索し、それに応じてクラウドの用途を設定します。一致するものが見つからない場合、用途は「mixed」になります。各クラウド接続の用途は、「Configure」ボタンを使用して手動で更新できます。

### よくある質問 <a href="#faqs" id="faqs"></a>

* **安全ですか？**

はい。GCP Organization の接続は、個別の GCP プロジェクトの接続と同じ仕組みに基づいています。[Workload Identity Federation](https://help.aikido.dev/cloud-scanning/connect-your-cloud/gcp/google-cloud-workload-identity-federation-setup) もサポートされており、推奨されています。

* **組織に GCP プロジェクトを追加した場合、Aikido に表示されますか？**

はい。Aikido は「管理」プロジェクトをスキャンするたびに GCP 組織をスキャンし、新しい GCP プロジェクトを自動的に接続します。特に GCP 組織に数千のプロジェクトがある場合、Aikido にプロジェクトが表示されるまで多少の遅延が生じることがあります（[Google Cloud API の制限](https://cloud.google.com/resource-manager/docs/limits)を遵守しているため）。

* **組織に新しい GCP プロジェクトを追加したのに、Aikido に表示されません。**

Aikido が GCP の「管理」プロジェクトをスキャンした後（手動でスキャンすることもできます）、15 分経っても新しいプロジェクトが表示されない場合は、プランのクラウド数の上限に達している可能性があります。上限を引き上げるには、お問い合わせください。

* **GCP プロジェクトをシャットダウンしたり、別の組織に移動したりするとどうなりますか？**

Aikido はプロジェクトがアクティブでなくなったこと、または組織に属さなくなったことを検出し、対応するクラウドを「not reachable」としてマークします。これは [clouds ページ](https://app.aikido.dev/clouds)で確認できます。
