Google Workspaceを移行した時の備忘録

↩️ 背景

備忘録として残します🙏

  • 会社名が変わった
  • 本記事でのドメイン例
  • 旧: old-domain.com
  • 新: new-domain.com
  • Google Workspace の移行はプライマリドメインの変更ではなく、新規作成で移行する対応を取ることにした
  • Googleログインで連携中のサービスを全部手動で移行しないといけないため、本当はプライマリドメインで行うのがマジでおすすめ。
  • 移行前のGoogle Workspaceをできるだけ早く消したい
  • 紐付いているGCPのプロジェクトを移行後の組織に移さないといけない!!

新組織に既存GCPプロジェクトを移行する方法を見つけるため、我々はジャングルの奥地に向かった

💭 GCPのプロジェクト移行で立ちはだかった壁

  • Google Workspaceと紐付いている以上、old-domain.com の組織名をまるっと変えたりすることは出来ない
  • プロダクトがダウンタイムなしで移行できるのか
  • IAM、請求アカウントはそのまま残るのかはそのまま残るのか

💡プロジェクト移行について調べて分かったこと

  • 移行に必要な作業内容は公式がまとめてくれている
  • 既存のIAMは残るから突然デプロイができない、コンソールが見れない、みたいなことは無い
  • プロジェクトの移行 は 2020年くらいまではサポートに依頼が必要だったが、コンソールもしくは gloud コマンドで移行できるようになっている
  • 移行できるようにするには、移動元・先の組織に、プロジェクトのエクスポート/インポートに関する組織ポリシーの変更を加える必要がある
  • 請求アカウントは変更を行わない限りは既存のままになる。(これは別件でしっかり管理するPJがあるのでスルーした)

👷 作業内容

1. 移行先の組織の作成する

今回はGoogle Workspace に紐づく形での組織作成を行った

Google Cloud が 新社名のドメイン(new-domain.com)の所有権を確認できるように、 TXTレコードを追加 (参考)すれば、自動的にGoogle Cloud 上に組織ができていた

2. 移行先の「組織」の管理 Google アカウントのロールを追加する

追加したロール:

  • プロジェクト作成者
  • 組織の管理者
  • 組織ポリシー管理者

3. 移行元の「組織」に移行先の管理 Google アカウントを招待する

ロールはプロジェクト移行に必要な以下を追加した

  • Access Context Manager 管理者
  • プロジェクト移動
  • プロジェクト作成者

4. 組織ポリシーの設定

移行元・移行先の組織それぞれに設定が必要だった

コンソールもしくは gcloud コマンドから実行できるが、自分は今回 gcloud コマンドを採用した

まずはログイン中のアカウントを確認

gcloud auth list

       Credentialed Accounts
ACTIVE  ACCOUNT
        nekoze@old-domain.com
*       nekoze@new-domain.com

To set the active account, run:
    $ gcloud config set account `ACCOUNT`

※ 移行先の組織アカウントでログインしていることを確認 (できていなかったら gcloud auth login コマンドでログインしておく)

いざ設定へ

[移行元の組織(old-domain.com)]

gcloud beta resource-manager org-policies allow constraints/resourcemanager.allowedExportDestinations --organization 移行元の組織ID under:organizations/移行先の組織ID

[移行先の組織(new-domain.com)]

gcloud beta resource-manager org-policies allow constraints/resourcemanager.allowedImportSources --organization 移行先の組織ID under:organizations/移行元の組織ID

5. プロジェクトの移行

あとはプロジェクト数分以下の gcloud beta コマンドを叩いて移行を行う

gcloud beta projects move 対象のプロジェクトID・番号 --organization 移動先の組織ID

Your project will be moved. This may alter the policies enforced on your Project, either exposing your Project to more security risk through looser polices or cause an outage through stricter polices. See these public notes on policy
implications for more information: https://cloud.google.com/resource-manager/docs/creating-managing-folders#moving-folders-policy-considerations and
https://cloud.google.com/resource-manager/docs/migrating-projects-billing#note_on_policy_implications. Once moved, you can move the Project again so long as you have the appropriate permissions. See our public documentation for more
information: https://cloud.google.com/resource-manager/docs/creating-managing-folders#moving_a_project_into_a_folder

# 対話式で警告文が出てくるのを確認して Y + Enter
Do you want to continue (Y/n)?  Y

Updated [https://cloudresourcemanager.googleapis.com/v1/projects/277848486669].
PROJECT_ID       NAME      PROJECT_NUMBER
xxxxxxxx         xxxxx     xxxxxx

参考リンク