Google Workspace管理・運用におけるGoogle Drive APIのセキュリティ的な悩みどころ

Google Workspace管理・運用におけるGoogle Drive APIのセキュリティ的な悩みどころ

この記事はリクルートICT統括室 Advent Calendar 2023 14日目の記事です。

はじめに

はじめまして!ICT統括室の西川です。
私は社内ユーザー向けに提供しているSaaSツールの管理・運用を担当しています。
この記事では、Google Workspaceを管理・運用する上で、セキュリティの観点から悩まれるであろうDrive API利用の制御について共有します。

この記事で伝えたいこと

  • Drive APIの概要と、悪用された場合のリスク
  • サードパーティー製アプリによる、Drive API利用したドライブへのアクセスの制御方法

背景

Google Driveからの情報漏洩対策として、Google Workspaceの管理コンソール上で様々な対策が可能です。ファイルの共有設定に関しては、「インターネット公開禁止」などの設定を意識的に行っているかと思いますが、APIを利用した情報漏洩や内部不正対策については設定がややこしく、なかなか手が回らない部分かもしれません。

そこで、ユーザーの利便性を確保しつつ、セキュリティ面も意識した設定をすることは可能なのかを確認したく、Google Drive API利用の制御方法を調査しました。

Google Drive APIとは

Google Drive APIとは、Google Driveの機能を利用するためのREST APIです。
Google Drive APIの認可は、OAuth2.0プロトコルを使用して行われます。

Google Drive APIを利用することで、ユーザーの許可を得たアプリケーションやサービスが、Google Drive上のファイルやフォルダを管理、作成、編集することが出来ます。
Google Drive APIを活用することで、ユーザーはGoogle Driveの機能とアプリケーション/サービスを連携し、業務の効率化を行うことが可能です。

例えば、Drive APIを利用することで、Slackのワークフローに入力した情報をスプレッドシートに書き込むことが出来ます。
https://slack.com/intl/ja-jp/help/articles/11086384874259-ワークフロービルダーで-Google-スプレッドシートを使用する

※Google Drive APIに関する公式の説明は以下から確認できます。
https://developers.google.com/drive/api/guides/about-sdk?hl=ja
※OAuth2.0を利用したGoogle APIへのアクセスについての公式の説明は以下から確認できます。
https://developers.google.com/identity/protocols/oauth2?hl=ja

Drive API利用による情報漏洩/内部不正リスクと対策

Google Drive APIをGoogle Workspaceテナント内のユーザーが自由に使える場合、テナント内のユーザーが悪意を持ってGoogle Drive APIを利用することで、「不特定多数のアプリケーション/サービス」への情報持ち出しリスクが考えられます。

ただ、リスクがあるからと言って、単に Google Drive API を利用禁止してしまうと、ユーザー利便性を大きく損なうことに繋がります。そこで、Google Workspace管理者が許可したサードパーティー製品からのみGoogle Drive APIの利用を許可することで、ユーザーの利便性は担保しつつ、「不特定多数のアプリケーション/サービス」への情報持ち出しのリスクを防ぐのがベストと考えました。

具体的な設定は次のとおりです。

Google Workspace上で行う設定

設定①

管理コンソール上の「アプリ>Google Workspace>ドライブとドキュメントの設定>機能とアプリケーション」から、Drive SDKをオンにします。

これがオフのままだと、Google Drive APIが組み込まれたサードパーティー製アプリ及びGoogle Apps Scriptを使って、ユーザーがドライブ内のファイルにアクセスすることが全く出来なくなります。
その場合、先ほど述べた通りユーザー利便性を大きく損なうため、「Google Workspace管理者が許可したサードパーティー製品からのみ、Google Drive APIの利用を許可する方針」とするには、オンに設定します。

参考:https://support.google.com/a/answer/6105699?hl=ja

設定②

管理コンソール上の「セキュリティ>APIの制御>Googleサービスを管理」から、Googleサービスのリストを表示し、ドライブのアクセス権限を「制限付き」に変更します。

この設定をすることで、許可していないアプリケーションやサービスが、Google Drive APIを利用してGoogle Driveへアクセスすることを防ぎます。

参考:https://support.google.com/a/answer/7281227?hl=ja&visit_id=638372967442547327-44205452&p=app_access_services&rd=1#restrictaccess

設定③

管理コンソール上の「セキュリティ>APIの制御>サードパーティー製アプリのアクセスを管理」から、設定済みアプリのリストを表示し、任意のサードパーティー製アプリによるアクセスを許可します。

ステップ1:アプリ追加画面に移動する(今回はOAuthアプリ名またはクライアントIDを用いたアプリの追加を説明します)

ステップ2:アプリ名またはOAuthクライアントIDで検索し、アプリを選択する

ステップ3:OAuthクライアントIDを選択する

ステップ4:アクセスを許可する組織の範囲を設定する
この設定をすることで、指定した組織のユーザーのみが、サードパーティー製品からドライブへのアクセスを許可できます。

ステップ5:選択したアプリからGoogleデータへのアクセスを「信頼できる」に設定する
この設定をすることで、設定②で「制限付き」にしたドライブに対して、今回選択したアプリからのアクセスを許可することが出来ます。

最後に設定した値を確認して完了です!

参考:https://support.google.com/a/answer/7281227

おまけ

Google Drive APIを利用してドライブ内のファイルに対して行った操作は、OAuth2.0の認可を行ったユーザー自身の操作として、監査ログに残ります。
また、OAuth2.0認証を行った場合、別途監査ログに記録されます。

この2つの監査ログを組み合わせることで、Google Drive APIを利用した不正が起きた際に、監査ログからの後追いや検知が出来ます。

まとめ

Google Drive APIをGoogle Workspaceユーザーが自由に利用する場合、一定の情報漏洩リスクが存在します。しかし、Google Workspaceにはこのリスクを防ぐための設定が用意されており、適切に設定を行うことでユーザーの利便性を一定維持したまま、リスクを回避できることが今回の調査で分かりました。今回の調査結果は今後のテナント運用に役立てたいと思います。

Google Drive API以外でも、Google Workspaceの利便性を確保しつつ、セキュリティ面も考慮した設定を行うのはなかなか大変だと感じています。しかし、公式ドキュメントを読む、社外の方と意見交換をする、そしてしっかりと検証することで、適切な設定を模索し、ユーザーにとって快適にGoogle Workspaceを利用できる環境を作りたいと考えています。

リクルート ICT統括室 Advent Calendar 2023では、リクルートの社内ICTに関する記事を投稿していく予定です。もし興味があれば、ぜひ他の記事もあわせてご参照ください。