OLTA(オルタ)情シスの福島です。社内の情報システムの管理やセキュリティを担当しています。 何を記事にしようかかなり迷ったのですが、書くからにはオリジナリティが高くかつ実際的な内容で、読者の皆様の参考になるものが良いと思い、今回はOLTAにおけるGoogleドライブの運用について紹介させていただきます。
世の情シスの皆様が感じているであろう「Googleドライブの痒いところに手が届かない問題」に真正面から向き合い、闘った記録です。手前味噌ながら、かなり上出来なルールと実装になっていると思います。
少しでも皆様の参考になれば幸いです。
ファイルサーバーとしてのGoogle ドライブの問題点
OLTAでは、ファイルサーバとしてGoogleドライブを使用しています。 しかしこのGoogleドライブ、とても便利な一方で、痒いところに手が届かない側面もあり、どのように運用したものか考えあぐねている会社も多いのではないでしょうか?
OLTAの場合、特に困ったのが一度外部へ共有したファイルの共有解除を、Googleドライブでは中央集権的に管理することができないという点でした。例えば、「7日間だけ有効なURLを発行してファイルを共有したい」といったニーズは結構あると思うのですが、Googleドライブではこれが標準の機能としては存在しません。(2022年9月現在)
「重要なファイルが社外に共有したまま放置され、共有用のURL経由で情報が漏洩してしまった」といった事態を防ぐために、共有を停止する条件を中央集権的に設定できればよいのですが、Googleドライブには残念ながらこの機能はありません。このため、Google Workspaceを利用しているにも関わらず、ファイルサーバにはGoogleドライブを利用せずにBoxを導入している、という会社もあると聞き及びます。 情シスとしてはその気持ち、よくわかります。
共有方法ごとのリスク
Googleドライブでは、大きく2つの外部へのファイル共有方法があります。
1つは、ファイルやフォルダ単位で共有する方法です。特定のユーザーのメールアドレスを入力して招待したり、アクセスできるURLを他のユーザーに送信する方法がこれに該当します。
もう1つは、共有ドライブ単位で共有する方法です。ファイル数や共有する相手が多く、ファイルの目的が限定されている(広報関連のみ、営業資料のみ等)一貫している場合に推奨される方法です。
OLTAにおいては、前者は主に一時的な共有に使用されており、後者は長期間にわたる共有に使用されていました。
下表に、共有方法ごとの共有期間や防止したいリスク、防止したいシナリオの例、望ましい共有停止ルールをまとめています。
表 共有方法ごとの防止したいリスク・シナリオおよび望ましい共有停止ルール
共有方法 | ファイル単位・フォルダ単位 | 共有ドライブ単位 |
---|---|---|
共有期間 | 一時的 | 長期間 |
防止したいリスク | ファイルやフォルダが、意図せず外部に共有されたままになっている状態 | ファイルにアクセスする必要がない外部メンバーのアクセス権が、発行されたままになっている状態 |
防止したいシナリオの例 | 業務委託先メンバーに対して、一時的にメールアドレスを指定して共有した。 共有を停止しないまま契約が終了した。 これにより、契約が終了した後も担当者が共有したファイルにアクセスできる状態になっていた。 パートナー企業に対してアクセスできるURLを使用して共有した。 共有を停止しないまま数ヶ月経過した。 ある日どこからかURLが漏洩し、不特定多数の人にファイルがダウンロードされてしまった。 |
業務委託先で担当者変更が発生したが、情報システム部門が変更を検知しておらず、共有が解除されなかった。 これにより、担当者変更後も旧担当者が機密情報にアクセスできる状態が継続されてしまった。 |
望ましい共有停止ルール | ファイル共有後、そのファイルを使用しなくなったら共有を解除 | 一定期間アクセスのないメンバーを共有対象から削除 |
これらの共有停止ルールを管理者権限で設定できれば良かったのですが、残念ながら設定することは出来ず、リスクが野放しの状態となっていました。
APIを利用したリスク解消
OLTAは多数の金融機関と業務提携をしており、セキュリティを非常に重要視している会社です。 機密情報を外部に共有する場合、OLTAでは必ず共有範囲を適切に制限する必要があります。 Googleドライブは、共有時点では適切に共有範囲を制限できます。しかし、共有してから時間が経過すると往々にして状況が変わっていることが多く、当初は適切だった共有範囲が不適切になってしまうことがあります。
このため、ファイルサーバとしてGoogleドライブを使用し続けるには、共有の停止を何らかの方法で実現する必要がありました。
一度共有したファイルを1つずつ特定し、手動で共有停止する運用は現実的ではないことから、OLTAではプログラムを作成し、定期実行することでリスクを解消する方策を取りました。 私自身プログラミングは大学時代に少し触った程度で得手ではないのですが、「大抵のことは調べて試せば、なんとかなる」という考えから、大胆にもチャレンジさせてもらいました。
作成したプログラムは以下の2つです。
- ファイル共有停止プログラム ‐ 一定期間更新のないファイルの外部共有を解除するプログラム
- ドライブメンバー削除プログラム - 一定期間アクセスのないメンバーを共有対象から削除するプログラム
プログラムは Googleドライブ API や Google Admin Reports API、Google Directory API を組み合わせ、Pythonで作成しました。Pythonを選択した理由は、わからないことがあった時に社内のエンジニアに質問しやすいと考えたためです。
以下にそれぞれのプログラム概要のフローチャートを示します。
ファイル共有停止プログラム
概要のフローチャートだけ見ると簡単そうに見えるのですが、実際には結構泥臭い条件分岐が多く、作成は中々大変でした。 例えば、共有の形式はユーザー、グループ、自社ドメインの全員、URLを知る全員の4種類あり、それぞれについて社外への共有か否かを判定するロジックは多少異なるため、全ての条件について丁寧に処理を記述する必要がありました。
また、これは私がPythonに慣れていないことにも起因するのですが、認証やエラーハンドリング、ページネーションの取り扱いなども自分にとって初めての概念で少々戸惑いました。
本記事ではプログラムの詳細の説明は割愛しますが、もし感想や要望を多くいただけた場合、プログラムを公開&解説するかも知れません。(本記事をTwitterなどでシェアいただけるとありがたいです!)
ドライブメンバー削除プログラム
社外のユーザーがOLTAの共有ドライブにアクセスしているか否かを判別するために、Google Admin Reports API を叩いています。ユーザー名で検索し、指定期間内のイベントの有無を取得しています。
余談ですが、プログラムが完成した1ヶ月後に、フォルダ単位での外部への共有が解禁され、フォルダ内のファイルに対する共有の判定ロジックを追加する必要が発生しました。
便利になったことを嬉しいと思う反面、プログラムの手直しが必要となり、情シスとしては少し複雑な心境でした。
Googleドライブの運用ルール
上記2つのプログラムを定期実行することを前提として、Googleドライブの運用や設定は以下のように定めました。
- マイドライブからの外部への共有は不可
- 新規ドライブの作成と、共有ドライブの設定の変更は情シスのみが可能
- 共有ドライブへのメンバーの追加は、社内のメンバーであれば誰でも可能
- ドライブへのメンバー追加や、グループの変更が行われた際はSlackに通知される
なお、共有ドライブの設定には以下の3種類があります。(赤字の2種類が外部への共有に関連する設定です)
- 組織外のユーザーにファイルへのアクセス権を付与できるようにする
- 共有ドライブのメンバーではないユーザーにファイルへのアクセス権を付与できるようにする
- 閲覧者とコメント可の閲覧者にファイルのダウンロード、印刷、コピーを許可する
OLTAにおけるファイルの外部共有ルール
続いて、OLTAにおけるファイルの外部共有ルールについて紹介します。
まず、前提としてメールとGoogleドライブ、どちらでの共有もOKとしました。 それぞれにメリット・デメリットがあるので、メンバーには上手く使い分けるようにお願いしています。
表 メール・Google ドライブ それぞれのメリット・デメリット
利用サービス | メール | Google ドライブ |
---|---|---|
方法 | ファイルを添付、パスワードは任意 | ファイルを保存、URLを共有 |
メリット | ・送付履歴とファイルが双方に証憑として残る ・簡単に送ることができる |
・共有を任意で解除できる ・同時に編集できる ・ファイルへのアクセス履歴を取得できる ・ファイルの保存、印刷などを制限できる |
デメリット | ・同時編集できない ・誤送信した後の対応が不可能 |
・送付履歴とファイルが双方に証憑として残らない |
本来であれば、OLTAからのファイルの外部共有は、Googleドライブを使用した共有のみに限定したかったのですが、業務提携先によっては社のセキュリティポリシーとしてGoogleドライブへのアクセスが許可されていない場合があったため、メールでの共有も可としています。
そのうえで、OLTAでは下図のように、ファイルの外部共有ルールを定めました。
共有先がGoogleアカウントを持っていない場合、Gmailなしの Googleアカウントの作成を依頼しています。これは以下のヘルプ記載の手順に則った方法です。
Google Workspace 管理者ヘルプ - ファイルを Google 以外のアカウントと共有する
まとめ
どの業務SaaSにも言えることですが、本気で業務の実態に合わせて運用しようとすると、どうしても標準の機能だけでは手の届かない領域が出てきます。 この不足をいかに上手に補うかが、情シスとしての腕の見せどころだと考えています。
今回はGoogleドライブのケースを紹介しましたが、他のSaaSについてもいつか紹介できればと思います。
お読みいただきありがとうございました。