Tech Waves

produced by Hakuhodo DY ONE

本ブログは、株式会社Hakuhodo DY ONEの開発チームによるエンジニアブログです。
それぞれのメンバーが業務を通して得た技術情報や、各種セミナーの参加レポート、またその他トピックについて情報発信を行っています。

Google Cloudプロジェクトを組織間移行する方法

基盤エンジニアの佐藤(大)です。
今回は、Google Cloud プロジェクトの組織間移行方法を解説します。

移行処理そのものは短時間で完了しますが、安全に実施するためには入念な準備が欠かせません。本記事が、円滑な作業の一助となれば幸いです。

 

対象読者

Google Cloudのプロジェクトを、現在の所属組織から別の組織に移行したい方

 

前提

  • 移行元と移行先の組織が存在すること
  • 後述する権限が、移行元および移行先の組織で同一ユーザーに対して付与可能なこと

 

移行先の組織がない場合は、Cloud Identity Free等を利用して事前に組織を作成する必要があります。

組織の作り方については、弊社の以前公開した記事「Google Cloud導入で最初に迷う「アカウント・組織・ドメイン」整理ガイド」を参照ください。

 

公式ドキュメント

ご不明な点は公式ドキュメントを参照ください。

 

大まかな作業の流れ

大まかな作業の流れは、以下の通りです。

移行に関連するIDを確認(移行対象のプロジェクトID、移行元組織/フォルダID、移行先組織/フォルダID)

  ↓

組織ポリシーを設定

  ↓

移行を実施

  ↓

移行できたかを確認

 

作業に必要な権限

それぞれのレイヤーで、同一ユーザーに対して権限付与が必要になります。

 

移行対象のプロジェクト

*プロジェクト IAM 管理者(roles/resourcemanager.projectIamAdmin

移行元のプロジェクトの親組織

*プロジェクト移動(roles/resourcemanager.projectMover

組織ポリシー管理者( roles/orgpolicy.policyAdmin

閲覧者(roles/viewer

移行先のプロジェクトの親組織

*プロジェクト移転者(roles/resourcemanager.projectMover

*プロジェクト作成者(roles/resourcemanager.projectCreator

組織ポリシー管理者( roles/orgpolicy.policyAdmin

閲覧者(roles/viewer

 

社内ポリシー等の制約により、すべての権限付与が難しい場合は、作業実施者に最低限「*(アスタリスク)」の付いた権限を付与してください。

その他の権限はID確認とポリシー設定に必要なものです。権限をお持ちの他の方と役割を分担して対応してください。

 

具体的な手順

移行に関連するIDを確認する

移行対象のプロジェクトIDを確認する

1. Google Cloudコンソールを開き、移行対象のプロジェクトを選択します。

 

2. ホーム画面に表示されているプロジェクトIDを確認します。

 

移行元の組織IDを確認する

1. Google Cloudのコンソールを開き、プロジェクト選択ツールを開きます。

 

2. リソースを選択で移行元の組織を選択し、すべてのタブを選択します。

 

3. 移行対象の組織/フォルダのIDを確認します。

 

移行先の組織IDを確認する

手順は移行元と同様です。

 

1. Google Cloudのコンソールを開き、プロジェクト選択ツールを開きます。

 

2. リソースを選択で移行先の組織を選択し、すべてのタブを選択します。

 

3. 移行対象の組織/フォルダのIDを確認します。

 

組織ポリシーの設定

移行元組織の設定

組織のリソース間で移行するプロジェクトの親リソースで、constraints/resourcemanager.allowedExportDestinations 制約を含む組織のポリシーを設定します。

 

1. Google Cloudコンソールを開きます。

 

2. プロジェクト名の部分を、移行対象のプロジェクトが存在する「組織名」または組織下の「フォルダ名」を選択し、組織のポリシーの設定画面を開きます。

 

3. フィルタで「export」を検索し、表示された「Allowed Destinations for Exporting Resources」を選択します。

 

4. 「ポリシーを管理」を選択します。

 

5. 以下画像の通り、ポリシーのソースは「親のポリシーをオーバーライドする」を、ポリシーの適合は「親と結合する」を選択します。

 

6. 以下の画像の通り、ポリシー値は「カスタム」を選択し、ポリシー対応は「許可」を選択。カスタム値に「移行先の組織/ID」を入力し、「ポリシーを設定」ボタンを押下します。

 

7. 以上で移行元組織の設定は完了です。

 

移行先組織の設定

移行先のリソースで、constraints/resourcemanager.allowedImportSources 制約を含む組織のポリシーを設定します。

 

1. Google Cloudコンソールを開きます。

 

2. プロジェクト名の部分を、移行先の「組織名」または組織下の「フォルダ名」を選択し、組織のポリシーの設定画面を開きます。

 

3. フィルタで「import」を検索し、表示された「Allowed Sources for Importing Resources」を選択します。

 

4. 「ポリシーを管理」を選択します。

 

5. 以下の画像の通り、ポリシーのソースで「親のポリシーをオーバーライドする」を選択し、ポリシーの適合「親と結合する」を選択します。

 

6. 以下の画像の通り、ポリシー値は「カスタム」を選択し、ポリシー対応は「許可」を選択。カスタム値に「移行元の組織/ID」を入力し、「ポリシーを設定」のボタンを押下します。

 

7. 以上で移行先組織の設定は完了です。

 

移行実施

1. Google Cloud コンソールの画面右上からCloud Shellを開きます。

 

2. Cloud Shellの承認が求められますので、「承認」を押下します。

 

3. CLIの画面が表示されればOKです。

 

4. 以下のコマンドのPROJECT_ID、ORGANIZATION_ID、FOLDER_IDを実際の値に差し替えて、実行します。

 

移行先が組織直下の場合

gcloud beta projects move PROJECT_ID \\
    --organization ORGANIZATION_ID

 

移行先が組織内のフォルダの場合

gcloud beta projects move PROJECT_ID \\
    --folder FOLDER_ID

 

5. Do you want to continue (Y/n)?と聞かれるので、「y」を押下します。

実行ログは以下のとおりです。

 

 

移行確認

1. 無事に移行が完了したかを確認します。

 

2. Google Cloudのコンソールを開き、プロジェクト選択ツールを開きます。

 

3. リソースを選択で移行先の組織を選択し、すべてのタブを選択します。

 

4. 移行対象のプロジェクトが移行先組織/フォルダ下にあれば、移行完了になります。

 

まとめ

今回は、Google Cloud プロジェクトの組織間移行の方法を解説しました。

滅多に行わない作業ゆえに、不安を感じる方も多いかと思います。私自身はも最初はそうでしたが、事前準備を万全にして臨んだ結果、移行作業そのものは驚くほどスムーズに完了しました。

本記事が皆様の不安を解消し、円滑な移行作業を進めるうえでの一助となれば幸いです。

 

この記事を書いた人

佐藤(大) (id:one-hir0)

普段はGoogleCloudを用いて、仕事をしています。日々の作業の備忘録として記事を書いていこうと思います。