🧹

Google Workspace でユーザーを消した

2022/12/10に公開約5,800字

こんにちは。WORDIAN Advent Calendar 2022 の 10 日目の記事です。今年私が WORD で書いた記事は 1 つだけでした。来年はもう少し書けるといいですね。この記事で題材になっている団体 D は WORD とは何も関係がないですが、とはいえ情報科学類生はこういう感じに(学生の団体の情シス的なことをやることに)なりがちな気がします。

https://adventar.org/calendars/8236

今年も終わりが近づいてきましたね。年末といえば大掃除ですが、この記事では Google Workspace の大掃除について書こうと思います。

今年は無償版 G Suite を利用している学生の団体にとって激動の一年となりました。1 月ごろに無償版 G Suite の廃止が発表され、Google Workspace へ移行しようと準備を進めていると、5 月ごろに今度は非営利に限って無償で Google Workspace が提供される旨が発表されました。非常にドタバタしつつも、これを使うことでしばらくは大丈夫だろうという結論にはなったと思います。

https://support.google.com/a/answer/2855120?hl=ja

しかし無償版 G Suite のことを思うと、いつ無償版 Google Workspace が廃止されるかわかりません。私の所属している団体(今後 D と呼びます)では、すでに存在していたユーザーの扱いが移行のネックとなっていました。無償版 G Suite が廃止されるなど考えてもいなかったので、個人単位でユーザーを発行し、利用していたのです。Google Workspace はユーザー数で課金されるため、有償の Google Workspace に移行する場合はユーザー数を必要最小限に削減する必要があります。再度無償版 Google Workspace が突然廃止される可能性を想定し、今のうちに団体の運営に本当に必要なユーザーだけを残してそれ以外のユーザーを削除することにしました。

というわけで、この記事では Google Workspace のユーザーを掃除した事例について紹介します。バックアップなど、削除に必要な手順については Google のドキュメントに記載があるとおりです。

https://support.google.com/a/answer/33314?hl=ja

しかし、移行するにあたって各操作の結果どのようなことが具体的に起こるのか、ドキュメントからは判断が難しいことがありました。この記事での具体的な事例を通して、Google Workspace のユーザーを削除する際にどのような手順が踏まれてどのように各ユーザーのデータがバックアップされるのか参考にしていただければ幸いです。

背景

さて、D の旧 G Suite には 13 人のユーザーがおり、そのうち 1 ユーザーは削除できない理由があり、また 1 ユーザーは団体の窓口メールアドレスとしての利用があったため今後も利用することが決まっていました(これをメインユーザーと呼ぶことにします)。そのため、残った 11 ユーザーが削除対象となりました。これらの中には個人に紐付くものもあれば、団体で利用しているもの(例えば新歓用に shinkan@ 、のような)もあります。前者を個人ユーザー、後者を用途別ユーザーと呼ぶことにします。この用途別ユーザーについて、メールアドレスが外部に公開されているため、利用を止めることなくスムーズにメインユーザーに移行する必要があります。

要件を以下のようにまとめます。

  1. 移行対象全ユーザーが最終的に削除されていて欲しい。
  2. 移行対象全ユーザーのデータを削除前にバックアップしたい。
  3. 用途別ユーザーの過去のメールは、メインユーザーのメールボックスで検索できるようにしたい。
  4. 用途別ユーザーは、外部からメールを受け取る可能性がある。これを取り逃がすことなく、スムーズにメインユーザーのエイリアスに利用を移行したい。

削除するにあたって、下の手順を踏みました。それぞれ順を追って説明していきます。

  1. 利用者への通知
  2. キャッチオールアドレスの設定
  3. ユーザーの停止
  4. メールの移行
  5. データのバックアップ
  6. ユーザーの削除

利用者への通知

3 月中旬[1]に、削除対象のユーザーに対してユーザーを削除する旨を通知するメールを送信しました。6 月にユーザーの削除を開始し、7 月にユーザーの削除を完了する予定で、その予定を伝えつつ 6 月までに各自でバックアップを取って欲しいことを通知しました。

キャッチオールアドレスの設定

削除予定としていた 6 月を過ぎ、削除対象のユーザーを停止しようとしていました。しかし、用途別メールアドレスをこのまま停止してしまうと停止後に用途別ユーザーにメールを送ることができなくなり、要件 3. が達成できません。そこで、まずキャッチオールアドレスをメインユーザーに設定しました。

https://support.google.com/a/answer/12943537?hl=ja#zippy=%2Cキャッチオール-アドレスを設定する

catch-all

これにより、存在しないユーザーに対してメールが届いた際にメインユーザーのメールボックスに転送されるようになります。停止されたユーザーに対してメールが届いた際にも同様にメインユーザーに転送されるため、停止前後でメールを取り逃がす心配がなくなります。

なお、メインユーザーの予備のメールアドレスとして用途別メールアドレスを設定することも考えましたが、停止中のユーザーのメールアドレスは予備のメールアドレスとして利用できないようで、断念しました。

cannot-make-alias

ユーザーの停止

キャッチオールアドレスを設定したのち、削除対象のユーザーを順次停止していきました。ユーザーを停止すると、そのユーザーのログインやサービスの利用がブロックされることになります。

https://support.google.com/a/answer/33312?hl=ja

これは段階的な削除(ユーザーがメールを見ていない可能性を考慮して、利用できなくなることによって気づくことを期待する)としてだけではなく、後に述べる各種データの移行・バックアップ時に新しいデータが追加で発生しないようにする側面があります。データの移行・バックアップ中やその後に追加で削除対象のユーザーのデータが発生してしまうと、そのデータは削除によって失われることになります。移行・バックアップ前にユーザーを停止しておくことで、移行・バックアップで得られるデータが最新のものであると言い切ることができるようになります。

なお、今回はこのワークスペースのメイン管理者が削除対象でした。そのため、削除時に次のような確認とともにメイン管理者の変更を要求されました。

main-admin

メイン管理者はメインユーザーにすれば良いのですが、連絡先メールアドレスは悩みどころです。別のドメインのアドレスを指定する必要があるので、メインユーザーのメールアドレスにすることは(当然)できません。D では、構成員が加入する Google Groups のグループを用意し[2]、それを連絡先メールアドレスとして利用しています。

メールの移行

次に要件 2. のために用途別ユーザーのメールデータをメインユーザーに移行しました。これにはデータ移行サービスを利用しました。

https://support.google.com/a/answer/9476255?hl=ja#google

データ移行サービスに移行元ユーザーのメールアドレスとパスワードを入力し、移行を開始します。なお、移行元ユーザーで安全性の低いアプリのアクセスを有効にしないと移行時にエラーが発生してしまいました。一時的に安全性の低いアプリのアクセスを有効にして移行しましたが、もう少し良い解決策がないものかと思います。

https://support.google.com/accounts/answer/6010255?hl=ja

imap-error

データ移行サービスでの移行後、移行元ユーザーのメールをメインユーザーのメールボックスでそのまま見ることができるようになりました。もちろん検索もでき、to: でのフィルタリングである移行元ユーザーからのメールだけを見ることもできます。これで要件 2. は達成されたと言ってよいでしょう。

データのバックアップ

要件 1. のために移行対象の全ユーザーのデータのバックアップを取りました。今回は削除対象ユーザー:全ユーザーが 11:13 と削除対象ユーザーの比率が全体に対して大きかったため、データ エクスポート ツールを利用して組織全体のデータをエクスポートすることでこれを達成することにしました。

https://support.google.com/a/answer/100458?hl=ja

データ エクスポート ツールを利用すると、組織全体のデータを Google Cloud Storage に書き出すことができます。書き出せない種類のデータがあるとの記載がありますが、リンクを辿ってみると現在は書き出せないデータはないようです(2022/12/10 時点)。

現在のところ、データ エクスポート ツールには既知の制限事項はありません。
https://support.google.com/a/answer/6166309?hl=ja#admin&takeout&zippy=%2C管理%2Cデータ-エクスポート-ツールで書き出せない種類のデータがある

データ エクスポート ツールでデータのエクスポートを開始すると、管理者にデータエクスポートが開始された旨を知らせるメールが届きます。エクスポートには数日かかるようで、D では約二日かかってエクスポートが終了しました。結果、GCS にバケットが作成されており、ユーザーごとの prefix 以下に zip ファイルとしてユーザーのデータがエクスポートされていました。このデータは 30 日で削除されるため何かしらの手段で保存する必要があります。D では日常的に Google Drive を利用しており、Google Drive にデータを置くのが運用上もっとも楽であると判断して Google Drive へデータをコピーしました。そこまでサイズが大きくならなかったのでいったん手元に落として[3]から Google Drive へアップロードしました。幸いなことに GCS も Google Drive もメタデータとして MD5 チェックサムを持っており、それを突合わせる[4]ことで手元の信頼ならないコピーでも結果について安心できました。

ユーザーの削除

さて、これで要件 1, 2, 3 が達成されたのでついにユーザーの削除に踏み切りました。なお、削除時に、下のように一部のデータの移行が可能です。削除対象のユーザーが組織外に共有しているデータがあった場合に、この移行で所有権を移して共有が壊れるのを防ぐことができるようです。

migration-on-delete

まとめ

実際にここまでの作業が完了したのは 11 月でした。削除完了予定だった 7 月からはずいぶん押してしまいましたが、特に急ぐようなこともなく慎重に確認しながら削除作業を進めることができたともいえます。実際のところユーザーへの通知やデータのエクスポートなどで一定の時間を要する作業があるため、スケジュールには余裕を持って進めたほうが良さそうです。

以上、少人数の団体で Google Workspace のユーザーを削除した事例について紹介しました。今回の無料 G Suite 廃止の騒動で Google Workspace の掃除を検討しているみなさんの参考になれば幸いです。

脚注
  1. まだ無償版 Google Workspace の発表前だったので、有償 Google Workspace に移行するという説明でしたし、そのため削除しないという選択肢もほぼ存在しないような温度感でした ↩︎

  2. @googlegroups.com のグループは API から操作できないようで、手動の管理になってしまい、非常に悲しいです https://cloud.google.com/identity/docs/groups ↩︎

  3. それでも gsutil を叩く必要があってだるかったです ↩︎

  4. 簡単なスクリプトを書きました ↩︎

Discussion

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