GoogleグループをNotion上で可視化する
はじめに
株式会社TERASSのコーポレートエンジニアをしているHayashiと申します。
弊社ではGoogle Workspace(以下、GW)の権限管理にGoogleグループを活用しており、今回それらをNotionで可視化しました。
そもそもGoogleグループとは何か
Googleグループとして組織内のユーザーをグループ化することで、以下のようなことができます。
- メーリングリストの作成
- Googleドライブにおいて、グループ単位での権限設定
例えば
grp_engineer@sample.com
というグループを作成し、そこへメンバーを追加することでエンジニアのメーリスとして利用できます。
なぜ可視化しようと思ったのか
前提として、Googleグループは以下のような仕様になっています
- 通常メンバーは自身が所属しているグループの情報を確認することができる
- しかしグループがネストされている場合、直接紐づいているグループの情報しか確認できない
例えばグループprj-product1@sample.com
のメンバーが以下のように設定されているとします。
これで下記グループに所属するメンバーは、同時にprj-product1@sample.comのメンバーにもなります。
grp-engineer@sample.com
grp-pdm@sample.com
しかしgrp-engineer@sample.com
のメンバーが所属グループ一覧を確認すると
prj-product1@sample.com
が表示されません。
つまり間接的に所属しているグループを確認することができないのです。
社内からの要望
上記仕様のこともあり、実際にメーリスを扱う運用担当者から「自分が直接所属しているグループしか確認できないのは困る。組織内のグループを閲覧できるようにしたい」という要望がありました。
この課題を解決するべく、Notion上で一覧化するという手段を選択しました。
作ったもの
管理者以外のメンバーが組織内のグループをすべて確認できるように
NotionのDBへ一覧化しました。
一覧ページ
各ページの表示内容
活用例 - 自分が所属しているグループを確認する
Notionのフィルター機能を使って、「すべてのメンバー:{自身のメールアドレス}」で検索をかけます。
間接的に所属しているグループについても、検索でヒットします。
実現方法
Typescriptで、GWのDirectory APIとNotion APIを呼び出しています。
インフラにはまだ乗せていませんが、今後はGoogle Cloud Runで定期実行していく予定です。
最後に
Googleグループを可視化するという一番の目的は達成できましたが・・
コーポレートエンジニアとしては、このリストを使って「グループ及びそれらに関連する権限を適切に管理する」というところに注力したいと思っております。
(おまけ)Googleアカウントの一覧化
同様に、組織内のGoogleアカウントも一覧化してみました。
最終ログイン日時でソートして、退職者のアカウント削除漏れを発見できたりと、使い道はいくらでもありそうです。
Discussion