🛠️

Google Workspace のテナント統合をした話

2022/12/20に公開約10,400字

この記事は corp-engr 情シスSlack(コーポレートエンジニア x 情シス)#1 Advent Calendar 2022 19日目の記事 です(1日遅れましたごめんなさい)
https://adventar.org/calendars/7756

はじめに

普段はFintech企業で情シスしております、ふみふみです。
情シスをはじめて早3年が経過しようとしつつあります。もう新米情シスとは名乗れなくなってしまうのがちょっと寂しいのと同時に、もっと成長できたよなぁとか、あれもやっておきたかったよなぁとか、でも新米だけどなんだかんだ年1ペースでイベント登壇できたのは良かったなぁとか、色々物思いに耽ってしまいます。

ちなみに、一番初めに情シスとしてアウトプットしたのはこんな記事です。懐かしいですね。
https://note.com/humihumi_infosys/n/n03986ac12d7c

そんな現在、本業とは別に2社で副業として情シス業務のお手伝いなどをしているのですが、その副業先のGoogle Workspace(以下、GWS)のテナントを統合したお話をさせていただきます。

なんでテナント統合をすることになったのか?

通常であれば、1社1テナントであることが多いと思います。あったとしても検証用のドメインとテナントを持っているとかでしょうか。基本的にはテナント内で組織部門分ければ設定も区分けしてテストできるため、やはり1テナントがデフォですよね。

僕の副業先では社長が会社を3つ持っていたこともあり、GWSのテナントが3つ存在していました。(実態はコーポレート部門やエンジニア・デザイナーは共通だったりしていてSlackコネクトしながら情報共有を行っている状態)
そんな中、とある日に会社自体を1社に統合することとなった為、メインで使用していたGWSとSlackのテナント統合を実施することになりました。

さぁ大変!

統合のイメージ

ざっくりこんな感じ(雑

という感じで登場人物はこちら

  1. aaaa.com → 30人くらい
  2. bbbb.jp → 130人くらい
  3. cccc.jp → 5人くらい
  4. main.inc → 統合された会社の新しいドメイン

今回は新しい「main.inc」のテナントを作成することはせず、一番ユーザー数が多い 「bbbb.jp」のテナントに寄せることを決めました。

事前の懸念事項と移行方針

01.メールの移行およびダウンタイム

  • GWSアカウントの移行
  • メールダウンタイム

やはり気になるところはメールのダウンタイム。

GMOペパボさん[1]やUbieさん[2]の参考記事などを見ていると、メール移行の際に発生するであろうダウンタイムへの対応が書かれておりました。記事ではExchange Onlineなどへ届くようにしたりしていましたが、自分がExchangeに対する知見がなかったり、そもそもM365を使っていない環境下ということもあり、今回は採用しないこととしました。

稼働時間のこともあり、一括ドンっ!と切り替えたりはせず1個ずつ段階を経ながら順番に移行を進める方針にし、メールダウンタイムが発生しないような移行を実現しました。

02.Google Driveのファイル群

ドライブ周りの課題はいくつか並行して課題が存在していました。

  • そもそも、どのGWSテナントにおいてもマイドライブ運用をしていた
  • テナント間でのファイル・フォルダの移行に障壁がある
  • 外部共有がユーザー自身で自由にできる状態だった

管理者が各ユーザーのファイル・フォルダを移行するのは非現実的な為、移行用のロール作成と移行期間を設け、共有ドライブへ移行していきました。

03.メールとドライブ以外のGWSの影響

  • Googleカレンダー
    • 「aaaa.com」「cccc.jp」の人は新しい環境で作り直してもらう。meetのURLの変更や会議室リソースの再予約が必要な為
    • 「bbbb.jp」の人はそのまま継続利用
  • Googleグループ
    • 「aaaa.com」「cccc.jp」にあったグループを「bbbb.jp(main.inc)」のテナントに作成。幸いにも10個くらいしかなかったので楽ちん
    • 「bbbb.jp」のグループは、セカンダリドメイン追加後にメールアドレスの変更を実施。変更前のアドレスはエイリアスとしてそのまま利用できる為、止まることはない

03.GWS以外の影響

ちゃんとケアしてあげないと切り替え後に地味に影響でるのがこれ

  • Googleログインしている外部サービス(SaaSとか)
    • プライマリドメインを変更すると元々のアドレスでのGoogleログインができなくなる為、事前に各サービスで一旦PWでもログインできるようにしてあげる必要がある
    • 上記を実施しない場合、Googleログインした際に別アカウントとして作成されることになる(サービス次第かも?)
  • GCP環境
    • 情シス側では今回ノータッチでプロダクトの開発メンバーにお任せ
    • 新しいドメインの方でもログインやアクセス権を付与してあげる必要があるはず
  • Slackテナント
    • 既存チャンネルやユーザーの棚卸しも兼ねて新規テナントで作成することとした
      • 既存テナントの流用の方が楽だったかもしれない...ベストプラクティスが知りたい
    • チャンネルの命名ルールを作ったりするところから実施(なかった
    • 詳細はまた別の機会に記事書く予定...

04.プライマリドメインの切り替えと他テナントの扱い

最後はコレ。

  • プライマリドメインはもちろん切り替えがmust
    • 事前案内やタイミングは慎重に
    • 休日夜間の業務は基本的にないので、休日に切り替え実施
  • 他テナントの残ったアカウントやテナント自体をどうするか
    • 一旦1年間を上限とし、既存テナントを残すこととした
    • 役職者のみ既存テナントに残し、何かあった時に移行されていない過去ログを追えるようにした
  • その他のケア
    • 切り替え後の各種問い合わせ対応と細々とした抜け漏れ対応

実際の統合手順

01.セカンダリドメインの登録

まずはこれ。

【登録手順】
  1. 「main.inc」ドメインを取得する

  2. 「bbbb.jp」のGWSテナントのセカンダリドメインとして 「main.inc」 を設定する
    a. GWSの管理コンソールから、[ドメイン] > [ドメインの管理] > [ドメインの追加] をクリックする
    b. ドメイン名を入力し、[ドメインを追加して所有権を証明] をクリックする
    c. ぽちぽち設定をし、セカンダリドメインを追加する

02.メールエイリアスの作成と設定

「bbbb.jp」ドメインのユーザーに対して、「main.inc」のエイリアスアドレスを作成してあげます。
この時はまだメールアドレスの生成ルールが定まっていなかった為、ヘボン式ローマ字を採用し、ルールに沿ってエイリアスアドレスを作成していきました。

【設定手順】
  1. GWSの管理コンソールから、各ユーザーのユーザー情報を開く
  2. [予備のメールアドレス(エイリアス)] から、「main.inc」 ドメインのエイリアスアドレスを設定
  3. ユーザーが「main.inc」からメールを送信できるように、各自でGmailの設定画面からエイリアスを設定するように案内

    a. 2の設定では「main.inc」のアドレス宛のメール受信は可能にはなるがそのままでは送信ができない為、各自で設定してもらう必要があった
    b. 設定用のマニュアルとgif動画を作って案内

03.Googleアカウントの作成

「aaaa.com」「cccc.jp」にあって 「bbbb.jp」にないユーザーを作成していきます。こちらは最初から 「main.inc」ドメインでアカウントを作成していきます。

【作成手順】
  1. GWSの管理コンソールから、[ユーザー] > [ユーザーの一括更新] からテンプレートをダウンロードする
  2. 必要な情報を記載し、アップロードする
  3. ユーザーにログイン情報を送付する

04.メールのルーティング設定

03で設定したアカウントに対して、「aaaa.com」「cccc.jp」に届くメールを「main.inc」にも届くようにルーティング設定をしてあげます。これをすることで新しいメールは両方の受信ボックスに入ることになります。

【設定手順】
  1. GWSの管理コンソールから、[アプリ] > [Google Workspace] > [Gmail] を開く

  2. 一番下の [ルーティング] をクリックする

  3. 「受信者アドレスマップを使用したメール転送」の [設定] をクリックする

  4. 説明とマッピング情報、「元の宛先にもルーティングする」にチェックを入れて [保存] をクリックする

05.Gmailデータの移行

いよいよメインディッシュその1です。
Ubieさん[2:1]の参考記事にもありますが、IMAPでだらだら流し込んでいきます。

【事前対応】
  1. 各ユーザーにてIMAPを有効化する
  2. DMで「aaaa.com」「cccc.jp」ユーザーのパスワード情報をもらう
    a. 悲しいことに、移行元のアカウントのパスワード情報が必要になります。なので情報収集します
  3. 2FAを設定している場合:アプリパスワードを発行してもらう
    a. 2と同様、DMで情報をもらいます
  4. 2FAを設定していない場合:安全性の低いアプリの許可をしてもらう
    a. 悲しいことにこれを実施しないと、GWS間にも関わらず「不審なアクティビティです」と怒られます

ユーザーへの案内はこんな感じ。何度もやり直したので謝りながら進めています

【移行対応】
  1. GWSの管理コンソールから、[データの移行] > [データの移行を設定] をクリックする

  2. 移行元:[Google Workspace] を選択して [開始] をクリックする

  3. 対象期間を設定して [ユーザーを選択] をクリックする
    a. 必要なら移行オプションも設定

  4. [ユーザーを追加] から移行元メールアドレスとパスワード、移行先のアカウントを選択する
    a. 今回は1ユーザーずつぽちぽち
    b. csvを使って一括追加も可能

  5. 完了するまでひたすら待つ。対象期間が長いほど、対象ユーザーが保有しているメール容量が多いほど、時間がかかります。

05.共有ドライブの設計

マイドライブでの運用が主だったためこの機会に共有ドライブの設計とルール決めを行い、共有ドライブへの移行も実施しました。

運用していく中で多少権限とかドライブ設定にアレンジはあるものの、箱としてはこんな感じにしました。もちろん企業風土や規模感、事業内容によって構成変わると思うのであくまで参考として。

06.共有ドライブ移行のための管理者ロール作成

Google Workspaceの仕様としてやっかいなのが、管理コンソールで特定の管理者ロールをつけてあげないと、フォルダ単位でのマイドライブ→共有ドライブ移行ができない という点です。それを解決する為に、移行用の管理者ロールを作成してあげます。

参照:公式:ユーザーに管理者権限を付与してコンテンツを移動できるようにする

設定手順
  1. GWSの管理コンソールから、[管理者ロール] > [新しいロールを作成] をクリックする

  2. ロール名を入力して [続行] をクリックする

  3. 「ドライブとドキュメント」内の [共有ドライブへのファイルやフォルダの移動] にチェックを入れて、[続行] をクリックする

  4. [ロールを作成] をクリックする

  5. 作成したロールにユーザーを割り当てる

07.共有ドライブへのファイル移動用の設定確認

共有ドライブに編集者権限以上であればファイル単位での移動ができるように、管理コンソールの設定を確認します。

参照:公式:ファイルのオーナーまたは編集者に共有ドライブへのファイルの移動を許可する

【設定手順】
  1. GWSの管理コンソールから、[アプリ] > [ドライブとドキュメント] をクリックする
  2. [移行設定] から、「編集者が共有ドライブにファイルを移動できるようにします。」のチェックが入っていることを確認する
    a. チェックがなければつけて [保存]

08.マイドライブ→共有ドライブへの移行

メインディッシュその2です。

共有ドライブへのフォルダ移動には06で作成した管理者ロール以外にも、共有ドライブ自体に「管理者権限」が付与されている必要があります。
その為、05で設計したは良いものの、移行期間中は対象ユーザー(≒全ユーザー)に共有ドライブの管理者権限を付与してあげ、移行期間終了後に当初の設計通りの権限に戻してあげる必要があります...

【移行手順】
  1. 作成した各共有ドライブに、全ユーザーが含まれているGoogleグループを管理者権限で追加する
  2. 全社に移行方法の案内を出す

09.その他

繰り返しになはなりますが、以下のあたりの対応や案内をしてあげる

  • Googleカレンダー
  • Googleグループ
  • Googleログインしている外部サービス(SaaSとか)
  • GCP環境

10.プライマリドメインの変更

「bbbb.jp」→「main.inc」へのプライマリドメインを切り替えます。
「aaaa.com」「cccc.jp」から移行したユーザーは既に「main.inc」でアカウントを発行している為、特段することはありません。

ここまで来ると、プライマリドメインを変更する際にほとんど障害はないかなと思います。全社に切り替え日時とそれまでに改めて確認しておいて欲しいことを案内します。

【変更手順】
  1. GWSの管理コンソールから、[ドメイン] > [ドメインの管理] > [プライマリドメインを変更] をクリックする
  2. [続行] をクリックし、新しいプライマリドメイン名を入力して [プライマリドメインを変更] をクリックする

さいごに

このGWS統合のために、自分の検証環境含めてGWSを個人で3つ持ったりもしましたw
今はいい経験になったので良し!
だいぶユーザーに任せたりした部分もありましたが、情シス側もユーザー側も結構疲弊しますね...1度やるともうやりたくないくらいには大変ですw

また、GWSは基本的に1社1テナントに統合されているべきかなと思います。
「個人情報を取り扱う環境を分けたい」「オフィス環境と店舗環境を分けたい」「本番と検証環境を分けたい」など、特別な理由がない限りは。

テナントが増えると...

  • 管理する上で手間になる
    - 管理工数の増加
    - 複数ドメイン必要じゃん?
    - 別企業に見えるじゃん?
    - 管理者のストレス増加
    - 1回で済むことが2回3回やらなきゃいけない...面倒...
  • 設定漏れが起きやすくなる
    - インシデント発生率が上がる
    - 全てのテナントで正しく設定できてる??
  • Google Driveが社外共有扱いになる
    - セキュリティレベルの区分け大丈夫?
    - 不要に社外共有できるようになっちゃうけど大丈夫?
  • Googleカレンダーの会議室リソースの共有ができない
    - 競合おきちゃうよ?

とかまぁ思うところは色々と。
ちゃんと整理してちゃんと設計してちゃんと運用しましょう!

明日(20日)はいつも周囲の方へ細やかな気配りが上手で色々アウトプットもされてる ろーねさんの投稿ですわ!


脚注
  1. Google Workspaceのプライマリドメイン変更を実施しました ↩︎

  2. Google Workspaceのお引越し手順を公開するぜ ↩︎ ↩︎

Discussion

ログインするとコメントできます