プロジェクトの移動

組織リソース内で Google Cloud プロジェクトを移動して、リソース階層を再編成し、チームの再編成、部門のシフト、更新されたアクセス要件に合わせることができます。 Google Cloudの基本レベルの構成エンティティとして、プロジェクトは組織リソースの直下またはフォルダ内に配置できます。プロジェクトを移動する前に、移動先のポリシーへの影響を評価します。プロジェクトは、新しい親から ID ポリシーと組織ポリシーを継承するためです。

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

たとえば、サービス アカウントでフォルダ A のユーザーにストレージのオブジェクト作成者のロールがバインドされているとします。サービス アカウントには、フォルダ A 内の任意のプロジェクトで Cloud Storage にデータをアップロードする権限があります。同じ継承された権限を持たないいずれかのプロジェクトをフォルダ B に移動すると、そのプロジェクトのサービス アカウントはデータのアップロード権限を失い、結果的にサービスが停止します。

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

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

プロジェクトを移動するには、移動元と移動先の両方のフォルダでプロジェクト移動の IAM ロール(roles/resourcemanager.projectMover)が必要です。リソースがフォルダ内にない場合は、組織リソースでこのロールが必要です。

これらのロールにより、次の必要な権限が与えられます。

  • プロジェクトに対する resourcemanager.projects.update
  • リソースがフォルダにある場合: 移動元フォルダと宛先のresourcemanager.projects.move
  • リソースがフォルダ内にない場合: 組織リソースのresourcemanager.projects.move

カスタムロールまたは他の事前定義ロールを使用してこれらの権限を取得することもできます。

Console

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

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

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

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

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

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

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

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

gcloud

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

gcloud beta projects move PROJECT_ID \
   --DESTINATION_TYPE DESTINATION_ID

次のように置き換えます。

  • PROJECT_ID: 移動するプロジェクトの ID または番号。
  • DESTINATION_TYPE: 宛先のタイプ(organization または folder)。
  • DESTINATION_ID: プロジェクトの移動先となる組織リソースまたはフォルダの ID。

REST

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

リクエスト:

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

次のように置き換えます。

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

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

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