組織へのプロジェクトの移行

Google Cloud の組織リソースがドメインに作成されたら、既存のプロジェクトをその組織に移行できます。プロジェクトを移行するには、プロジェクトのオーナーまたは編集者であると同時に、組織のプロジェクト作成者である必要があります。

組織リソースの作成後に作成したプロジェクトは、すべて自動的に組織リソースに属します。組織にプロジェクトを移行するには、Cloud Console、Resource Manager API、または gcloud コマンドライン ツールを使用します。

組織内のプロジェクトの移行

プロジェクトが組織に関連付けられている場合、Google Cloud サポートを介さずにプロジェクトを組織なしに戻すことや、別の組織に移行することはできません。プロジェクトを組織に関連付けた後で移行しなければならない場合は、他の組織へのプロジェクトの移行をご覧ください。

組織なしのプロジェクトの移行

API または gcloud ツールを使用してプロジェクトを移行するには、次の権限が必要です。

  • 移行先組織の resourcemanager.projects.create。通常は、プロジェクト作成者のロールによって付与されます。

  • 移行するプロジェクトの resourcemanager.projects.update。通常は、オーナー編集者、またはプロジェクト移動者のロールによって付与されます。

  • 移行するプロジェクトの resourcemanager.projects.setIAMPolicy。通常はオーナーのロールによって付与されます。

Google Cloud Console を使用してプロジェクトを移行するには、移行先組織の resourcemanager.organizations.get 権限も必要です。これらの権限がない場合、移行先の組織は Google Cloud Console に表示されません。

プロジェクトの移行を元に戻すことはできません。プロジェクトが組織に関連付けられた後は、ユーザーが自分でプロジェクトを [組織なし] に戻すことや、別の組織に移動することはできません。プロジェクトが組織に関連付けられた後、そのプロジェクトを移動する場合は、Google Cloud サポートにご連絡ください。

Console

組織にプロジェクトを移行するには:

  1. Cloud Console で [IAM と管理] > [設定]ページを開きます。

    [設定] ページを開く

  2. ページの上部にあるプロジェクト選択ツールを選択します。

  3. 組織選択ツールから、[組織なし] を選択します。組織に関連付けられていない場合は、組織選択ツールは表示されないため、この手順は省略できます。

  4. 移行するプロジェクトを選択します。

    プロジェクト選択ツールのスクリーンショット

  5. ページの上部にある [移行] をクリックします。

  6. [組織] プルダウン リストで、プロジェクトの移行先となる組織を選択します。

プロジェクトを組織に追加した後は、ユーザーが単独でこの操作を元に戻すことはできません。

gcloud

組織にプロジェクトを移行するには、以下のコマンドを実行します。

gcloud alpha projects move PROJECT_ID /
    --organization ORGANIZATION_ID

ここで

  • PROJECT_ID は、組織に移動するプロジェクトの ID です。
  • ORGANIZATION_ID は、プロジェクトを移動する対象となる組織の ID です。

プロジェクトを組織に追加した後は、ユーザーが単独でこの操作を元に戻すことはできません。

API

Resource Manager API を使用して、parent フィールドを組織の組織 ID に設定することで、組織リソースにプロジェクトを移動できます。

組織にプロジェクトを移行するには:

  • projects.get() メソッドを使用して project オブジェクトを取得します。
  • parent フィールドを組織の組織 ID に設定します。
  • projects.update() メソッドを使用して、project オブジェクトを更新します。

設定した parent フィールドは変更できません。

次のコード スニペットは、上記の手順を示しています。

    project = crm.projects().get(projectId=flags.projectId).execute()
    project['parent'] = {
        'type': 'organization',
        'id': flags.organizationId
    }

    project = crm.projects().update(
    projectId=flags.projectId, body=project).execute()

ポリシーの影響に関する注意

プロジェクトをインポートすると、そのプロジェクトにすでに定義されている Cloud IAM ポリシーもインポートされます。つまり、プロジェクトが組織に移行されても、移行前にプロジェクトに対する権限を持っていたユーザーは、引き続きその権限を維持するということです。

IAM 権限は継承、追加型であるため、組織レベルで定義された役割がある場合、それらの役割は組織への移行時にプロジェクトに継承されます。たとえば、bob@myorganization.com が組織レベルで定義されたプロジェクト編集者の役割を持つ場合、このユーザーは組織に移行されたすべてのプロジェクトにおいてもこの役割を持つことになります。これは既存のプロジェクト内の要素に悪影響を及ぼすことはありませんが、より多くのユーザーが継承によってアクセス権を得る可能性があります。

同様に、組織のポリシーも下位の階層に継承されます。デフォルトでは、組織の作成時には組織のポリシーは定義されていません。その後組織のポリシーを定義した場合は、プロジェクトを組織に移行する際に、プロジェクトがそのようなポリシーと整合するように注意する必要があります。

既存の請求先アカウントの移行

既存の請求先アカウントを持つ G Suite または Cloud Identity のユーザーは、それらの請求先アカウントを組織に移行できます。請求先アカウントを移行するには、プロジェクトを移行する組織の請求先アカウント作成者および課金管理者である必要があります。これらの役割の付与については、デフォルトの組織役割の管理をご覧ください。請求先アカウントを組織に移行しても、プロジェクトのサービスに影響はありません。

既存の請求先アカウントを組織に移行する手順は次のとおりです。

  1. Cloud Console の [お支払い] ページに移動します。
    [お支払い] ページに移動
  2. ページの上部にあるプルダウンから、[組織なし] を選択します。これにより、組織に関連付けられていない請求先アカウントが表示されます。
  3. [請求先アカウント名] のリストで、移行する請求先アカウント名をクリックします。請求先アカウントの概要ページが表示されます。
  4. 右側の [請求先アカウント] の横にある [管理] をクリックします。
  5. 表示されるアカウントの管理ページで [組織の変更] をクリックし、請求先アカウントを移行する組織を選択します。