プロジェクトの移動

このガイドでは、組織内でプロジェクトを移動する方法について説明します。

プロジェクト リソースは、Google Cloud 組織での基本レベルの構成エンティティです。プロジェクトは組織の下に作成され、フォルダまたは組織リソース自体の下に配置でき、リソース階層を形成します。プロジェクト リソースをリソース階層内で移動することはできますが、移動を行う前に、ポリシーの違いを考慮する必要があります。

プロジェクトを移動すると、Identity and Access Management ポリシーまたは直接接続されている組織のポリシーがすべてそのプロジェクトとともに移動します。ただし、リソース階層のプロジェクトは、親リソースから継承するポリシーの影響も受けます。特定のサービスを使用する権限をユーザーに付与する IAM ロールがプロジェクトから継承されている場合、エクスポート先で権限を継承しない限り、ユーザーはエクスポート先でそのサービスにアクセスできません。

たとえば、サービス アカウントではフォルダ A のユーザーにバインドされたストレージ オブジェクト クリエイターのロールがあるとします。サービス アカウントには、フォルダ A の任意のプロジェクトの Cloud Storage にデータをアップロードする権限があります。同じ権限を継承していないプロジェクト フォルダ B の 1 つを移動すると、そのプロジェクトのサービス アカウントはデータをアップロードできなくなり、サービスの停止が発生します。

移動元と移動先のフォルダで組織ポリシーが定義されている場合も同様です。IAM ポリシーと同じように、組織ポリシーも継承されます。したがって、移動元と移動先のフォルダで組織のポリシーが一致していなければなりません。

組織のポリシーの詳細については、組織ポリシー サービスの概要をご覧ください。

プロジェクトを移動するには、次の IAM ロールが必要です。

  1. プロジェクトに対する resourcemanager.projects.update 権限があること。通常、プロジェクトに対するプロジェクト編集者またはプロジェクト オーナーのロールがあれば、この権限は付与されます。

  2. 移動先と移動元の両方のフォルダに対して resourcemanager.projects.move 権限があること。この権限は通常、プロジェクト オーナープロジェクト編集者フォルダ管理者、またはフォルダ移動のロールの一部です。リソースがフォルダ内にない場合は、組織ノードでこの権限が必要になります。

Console

プロジェクトを移動するには:

  1. Google Cloud Console で、[リソースの管理] ページに移動します。

    [リソースの管理] に移動

  2. ページの左上にある [組織] プルダウンから組織を選択します。

  3. プロジェクトの行をクリックし、リソースのリストからプロジェクトを選択します。プロジェクトの名前はクリックしないでください。クリックすると、プロジェクトの IAM ページに移動します。

  4. 行のオプション メニュー(3 つの点のアイコン)をクリックして、[移動] をクリックします。

  5. [参照] をクリックして、プロジェクトの移動先のフォルダを選択します。

  6. [移動] をクリックします。

gcloud

プロジェクトを移動するには、gcloud beta projects move コマンドを実行します。

gcloud beta projects move PROJECT_ID \
--DESTINATION_TYPE DESTINATION_ID

ここで

  • PROJECT_ID は、移動するプロジェクトの ID または番号です。

  • DESTINATION_TYPEorganizationfolder のどちらかです。

  • DESTINATION_ID は、プロジェクトの移動先の組織またはフォルダの ID です。指定できるターゲットは 1 つのみです。

API

プロジェクトを移動するには、v3 projects.move メソッドを使用します。

リクエスト:

POST https://cloudresourcemanager.googleapis.com/v3/{name=PROJECT_NAME}:move
{
  "destinationParent": DESTINATION_PARENT
}

ここで

  • PROJECT_NAME は、更新するプロジェクトの名前です。例: projects/415104041262

  • DESTINATION_PARENT は、移動するプロジェクトの新しい親組織またはフォルダです。例: organizations/12345678901

成功した場合、リクエストによってオペレーションが返され、これを使用してプロジェクトの移動を追跡できます。