エンタープライズ向け社内検索システムや生成AIアシスタントの信頼性は、基盤となるアクセス制御アーキテクチャの厳密さに完全に依存しています。IT管理者がGoogle WorkspaceおよびSlack全体にGleanを展開する際、最優先される要件は明確です。検索結果やAIによる回答が、機密文書、制限されたプライベートチャンネル、あるいは個人のダイレクトメッセージ(DM)を、権限を持たない従業員に決して露出させてはならないということです。
Gleanは、元となるSaaSシステムの上に新しい権限ルールを独自に再定義するのではなく、元のアクセス制御リスト(ACL)を厳格にミラーリングするデュアルエンジンアーキテクチャを採用しています。Google Driveのような非同期ドキュメントリポジトリには**取り込み時パーミッション対応インデックス(Ingestion-time Permission-Aware Indexing)を適用し、リアルタイム性の高いコミュニケーション基盤であるSlackにはフェデレーション型ゼロコピーリアルタイム検索(Slack RTS, Real Time Search)を提供します。これら両基盤を統合するのが、Gleanの自動アイデンティティグラフ(Identity Graph)**であり、企業のIdP(アイデンティティプロバイダー)をもとにユーザーの別名エイリアス、異種システム間のUID、および入れ子(ネスト)構造のグループメンバーシップを単一のエンティティへと解決します。
本ガイドでは、企業のIT管理者およびセキュリティエンジニア向けに、Google WorkspaceおよびSlackのコネクタ設定、アイデンティティおよび権限マッピングの構築、ソース固有の公開性制御の適用、そしてコンプライアンス検証の手順を詳しく解説します。
1. コアアーキテクチャ:デュアルエンジンモデルと統合アイデンティティグラフ
Gleanを安全かつ正確に運用するには、データソースごとの権限処理の違いを把握することが不可欠です。
+-------------------------------------+
| エンタープライズIdP (ID管理) |
| (Okta / Entra ID / Google Identity|
+------------------+------------------+
|
v
+-------------------------------------+
| Glean 統合アイデンティティ |
| グラフ |
| - プライマリメールと別名エイリアス |
| - ネストされたグループ構造の平坦化 |
| - 異種UID(SlackユーザーID等)解決 |
+------------------+------------------+
|
+------------------------+------------------------+
| |
v v
+-------------------------------------+ +-------------------------------------+
| Google Workspace コネクタ | | Slack コネクタ体系 |
| (Google Drive / Gmail / Groups) | | (Slack メタデータ + Slack RTS) |
+------------------+------------------+ +------------------+------------------+
| |
- GCPサービスアカウント+ドメイン全体の委任 - 公式Marketplace集中型OAuthアプリ
- 取り込み時の文書本文およびACLトークン索引 - 定期的な属性クロールとエンゲージメント信号
- Changes API / Webhookによる差分同期 - ゼロコピーフェデレーション:オンデマンド照会
- Google Driveの「リンク共有」規則を完全再現- プライベートチャンネル/DMのネイティブ認可
| |
+------------------------+------------------------+
|
v
+-------------------------------------+
| クエリ時セキュリティフィルター |
| ユーザーの有効プリンシパル ∩ |
| ドキュメントACL + RTSリアルタイム |
+------------------+------------------+
|
v
+-------------------------------------+
| ACLを完全に遵守したセキュアな検索 |
| 結果およびAI生成回答 |
+-------------------------------------+
1. 取り込み時パーミッション対応インデックス(Google Drive)
Google Driveのような静的・非同期ドキュメントストアでは、Gleanはコンテンツの取り込みと同時に、関連するセキュリティプリンシパル(個別ユーザー、Google Groups、全社共有設定など)を収集し、ドキュメントとともにACLトークンセットとしてインデックス化します。ユーザーが検索を実行すると、Gleanのクエリインターセプターは対象ユーザーの身元と所属する全グループから有効なプリンシパル一覧を構築し、検索インデックス上で高速に論理積(Intersection)を計算します。閲覧権限のない文書は、ランキングや要約処理の前に確実に除外されます。
2. フェデレーション型リアルタイム検索(Slack RTS)
Slackの会話は極めて速いペースで更新され、チャンネルメンバーの出入りも頻繁です。バッチ型の定期クロールでは、鮮度とプライベート性の担保が困難です。そのため、Gleanは Slack Real Time Search (RTS) によるフェデレーション構成を採用しています。Gleanのメイン検索インデックスにはSlackのメッセージ本文は保存されません(ゼロコピー)。ユーザーが検索を実行したその瞬間に、Gleanはクエリを発行したユーザーのコンテキストでSlackのネイティブ検索API(assistant.search.context や search.messages)をリアルタイムに呼び出します。ユーザーが参加していないプライベートチャンネルやグループDMのメッセージは、Slack API側で完全にフィルタリングされて返却されません。
3. 統合アイデンティティグラフ(Identity Graph)
権限適用の最大の障壁は、異なるSaaS間でアカウント識別子が異なる点です。例えば同一従業員であっても、Google Workspaceでは alice@company.com、Slackでは固有のユーザーID U12345678 が割り当てられます。GleanはOkta、Microsoft Entra ID、あるいはGoogle Workspaceといった企業マスターIdPと同期し、主要メールアドレス、エイリアス、各システムのUIDを紐付けた包括的なアイデンティティグラフを形成します。これにより、別々のSaaSから取得したACLであっても、同一人物のプリンシパルとして正確に照合されます。
2. Google Workspace コネクタと権限同期の設定手順
Google Workspaceとの統合には、Google Cloud Platform(GCP)のサービスアカウントの作成と、Google Workspace管理コンソールでの「ドメイン全体の委任(Domain-Wide Delegation)」が必要です。これにより、Gleanは指定された管理者としてディレクトリ情報を取得し、ドキュメントレベルセキュリティ(DLS)を維持します。
ステップ1:GCPサービスアカウントの作成
- 企業の Google Cloud Console にログインします。
- IAM と管理 → サービス アカウント に移動し、サービス アカウントを作成 をクリックします。
- アカウント名(例:
glean-enterprise-connector)と説明を入力して作成します。 - 作成後、該当アカウントの詳細に入り、キー タブから 鍵を追加 → 新しい鍵を作成 を選択し、JSON 形式を選択して安全にダウンロードします。
- アカウント詳細画面から、純粋な数値である OAuth 2 クライアント ID(一意の ID) をコピーします。※ドメイン全体の委任にはサービスアカウントのメールアドレスではなく、この数値クライアントIDを使用します。
ステップ2:Google Workspace管理コンソールでドメイン全体の委任を設定
- 特権管理者(Super Administrator)権限で Google Workspace 管理コンソール(
admin.google.com)にログインします。 - セキュリティ → アクセスとデータ管理 → API の制御 → ドメイン全体の委任を管理 に移動します。
- 新しく追加 をクリックし、コピーした数値のクライアントIDを貼り付けます。
- OAuth スコープ 欄に、カンマ区切りで以下の正確なAPIスコープを入力します(余分な空白を含めないよう注意してください):
https://www.googleapis.com/auth/drive.readonly(Google Driveのドキュメント、メタデータ、ACLの取得)https://www.googleapis.com/auth/admin.directory.user.readonly(ユーザープロファイルとステータスの取得)https://www.googleapis.com/auth/admin.directory.group.readonly(Google Groupsとメンバーシップの読み取り)https://www.googleapis.com/auth/apps.groups.settings(グループのアクセス設定の取得)- ※GmailやCalendarも対象とする場合は、必要に応じて
https://www.googleapis.com/auth/gmail.readonlyなどを追加。
- 承認 をクリックします。
ステップ3:Glean管理コンソールでのコネクタ設定
- Glean Admin Console にログインし、Platform → Connectors に移動します。
- Google Drive(またはGoogle Workspace)を選択し、Setup をクリックします。
- ※2026年8月14日以降に作成されたテナントでは、Google Drive、Docs、Sheets、Gmailの連携と読み取りツールが自動化されたガイド付きフローが利用できます。それ以前のテナントでは、ダウンロードしたJSON秘密鍵ファイルをアップロードします。
- Directory Admin Email の指定:Google Workspaceの監査レポートやディレクトリ閲覧権限を持つ管理者のメールアドレスを設定します。Gleanはこのアカウントを使用してActivity APIを呼び出し、差分更新の検知やランキング信号を生成します。
- クロール範囲と除外ルールの設定:検索対象とする組織部門(OU)や共有ドライブを指定します。
ステップ4:把握すべきGoogle Driveのリンク共有と可視性ルール
Google Driveの柔軟な共有設定は、意図しない社内露出を招くリスクがあります。GleanはGoogle Driveネイティブの動作を極めて忠実に再現しています:
- 個別またはグループ限定共有のファイル:明示的に許可されたユーザーまたはGoogle Groupsメンバーにのみ検索結果が表示されます。
- 「リンクを知っている全員」および社内全体共有ファイル:社内全社アクセスやリンク共有が設定されているファイルであっても、Gleanは全従業員に対して無差別に検索表示することはありません。以下のいずれかの条件を満たした場合にのみ表示されます:
- そのユーザーが過去に該当ドキュメントをGoogle Drive上で直接開いたことがある場合。
- Google Driveのファイル共有設定で「検索結果に表示(Searchable → Can find in search results)」が明示的に「オン」になっている場合。
- そのユーザーが参加しているSlackチャンネル内で、該当ファイルのURLが共有された場合(Glean側で有効/無効の切り替えが可能)。
- 管理者によって該当ターゲット向けにピン留め(Pin)されている場合。
- AIアシスタントとパブリックモードにおける挙動:Slack内でGleanアシスタントを「パブリックモード(全員に見える回答)」で呼び出したり、「全員に表示」設定のエージェントを稼働させる場合、Gleanは「検索結果に表示」がオンになっているドキュメントのみを参照して回答を生成します。「アクセスにはリンクが必要(Must have link to access)」の文書は完全に抑制され、リンク共有文書からの間接的な情報漏洩を防止します。
3. Slack Enterprise コネクタとリアルタイム検索(RTS)の設定手順
Slackの接続は、属性クロールとエンゲージメント信号を担う Slack コネクタ と、ライブメッセージの取得とリアルタイム認可を担う Slack Real Time Search (RTS) コネクタ の2段階構成でデプロイします。
ステップ1:デプロイモードの選定と前提条件の確認
- プラン要件:複数ワークスペースを擁する企業には Slack Enterprise Grid を強く推奨します。単一ワークスペースの場合は Single Workspace モードを選択します。
- 管理者権限:Enterprise Grid連携のセットアップは、必ず Slack Org Owner(組織の所有者) が実行する必要があります。単一ワークスペースの場合は Workspace Owner または Workspace Admin が必要です。
- 必要情報の収集:
- Slack ドメイン(
company.slack.comまたはcompany.enterprise.slack.com) - ワークスペースID(
Tで始まる文字列)およびEnterprise ID(Eで始まる文字列。ブラウザのURLapp.slack.com/client/E12345678/...から確認可能)。
- Slack ドメイン(
ステップ2:基本Slackコネクタ(メタデータおよびシグナル)の設定
- Glean Admin Consoleで、Platform → Connectors → Slack(または Slack Enterprise)を選択し、Setup をクリックします。
- 収集したSlackドメインおよびEnterprise IDを入力します。
- Slack Marketplaceに登録されている中央管理型Glean Slackアプリを承認します。主なスコープは以下の通りです:
users:read,users:read.email(システム間のアイデンティティマッピング用)channels:read,groups:read,im:read,mpim:read(チャンネル構造と所属情報の把握用)usergroups:read(Slackユーザーグループの構造把握用)assistant:write,reactions:write,commands(Gleanbotおよび/gleanコマンドの実行用)
- Slack Enterprise Grid組織全体に対するインストールを完了します。
ステップ3:Slack Real Time Search(RTS)コネクタの設定
- 基本コネクタが正常に稼働(Healthy)したことを確認したら、再度 Platform → Connectors から Slack Real Time Search (RTS) を選択します。
- Setup をクリックし、OAuth認証を完了します。
- APIエンドポイントの動作確認:RTSは以下のSlackネイティブAPIと通信します:
assistant.search.contextおよびsearch.messages:クエリ発生時のリアルタイムメッセージ検索。conversations.historyおよびconversations.replies:ヒットしたメッセージの前後の文脈およびスレッド内容の取得。conversations.membersおよびusers.info:ユーザーの所属確認。
- ゼロコピー動作の検証:メッセージ本文がGleanのディスクに永続化されないことを確認します。RTSはインメモリでリアルタイムに処理されます。未所属のプライベートチャンネル(例:
#exec-salary)の内容は、Slack APIのレスポンス自体に含まれないため、漏洩の余地がありません。
ステップ4:チャンネルの除外リスト(Redlist)と外部チャンネル保護
- 機密チャンネルの除外(Redlisting):人事評価、役員会議、監査対応など、検索対象から完全に遮断すべきチャンネルがある場合、Channel ID(
Cで始まるID)を指定してコネクタの除外リストに登録するか、Gleanサポートに依頼してRedlist化します。 - 外部共有チャンネル(Slack Connect)の遮断:Gleanはデフォルトで外部組織が参加しているSlack Connectチャンネルでのボット応答や検索露出を無効化しており、社外への意図せぬ情報漏洩を防ぎます。
- プライベート会話・DMの個別認可:ダイレクトメッセージや一部の制限されたプライベート会話について、企業のコンプライアンス方針上ユーザー本人の明示的同意が必要な場合は、ユーザーが自身のSlackトークンを個別に連携できる設計となっています。
4. 権限マッピング、グループの再帰的展開と同期ライフサイクル
アクセス権の剥奪や変更がどのタイミングで検索インデックスに反映されるかを把握することは、セキュリティ運用上極めて重要です。
+-----------------------------------------------------------------------------------+
| 権限およびデータ同期パスの比較 |
+-----------------------------------------------------------------------------------+
| ソースシステム| 同期トリガー方式 | 処理タイプ | 反映レイテンシ / 実行頻度 |
+---------------+---------------------+---------------+-----------------------------+
| Google Drive | 全量コンテンツスキャン| バッチ処理 | 定期実行(ベースライン構築)|
| Google Drive | Google Reports API | 差分更新取得 | 定期実行(数分〜数時間) |
| Google Drive | プッシュ Webhooks | リアルタイム | 数秒〜数分以内の準リアルタイム|
| Google Groups | Admin Directory API | アイデンティティ| 定期的な全量・差分クロール |
| Slack 構造 | Slack Users API | アイデンティティ| 定期的なユーザー・構成取得 |
| Slack イベント| Slack Events API | Webhook | 参加/退出時の即時イベント通知|
| Slack メッセージ| Slack RTS API | ゼロコピー連携| クエリ実行時にリアルタイム(0s)|
+-----------------------------------------------------------------------------------+
ネストされたグループ構造の再帰的展開
多くのエンタープライズでは、Google Groupsが階層化されています(例: Security-Team が Tech-Ops に含まれ、さらにそれが Engineering に含まれる)。Gleanはアイデンティティクロール時に、グループ関係の再帰的な平坦化(Flattening)を実行します。あるGoogle Docのアクセス権が Engineering に付与されている場合、末端の Security-Team のメンバーに対しても、Gleanのアイデンティティ層で適切な認可トークンが自動生成されます。管理者が子グループからユーザーを除外すると、次の差分アイデンティティクロールでトークンが取り消され、検索結果から即座に排除されます。
リアルタイム権限剥奪の挙動
- Slackチャンネルの退出:即座に反映されます。Slack RTSはクエリ時にSlackのAPIをリアルタイムに呼び出すため、プライベートチャンネルから除外されたユーザーはその瞬間に該当チャンネル内の全メッセージを検索できなくなります。
- Google Driveの共有解除:ファイル個別でアクセス権を剥奪した場合、Google DriveのChanges APIおよびWebhook経由で差分が通知され、Gleanのインデックス上のACLトークンが無効化されます。通常、数分以内に検索結果から消去されます。
5. 管理コンソールでの検証、監査、およびトラブルシューティング
設定完了後、アクセス制御が正しく機能しているかを客観的に検証する必要があります。Gleanは管理者向けの専用検証ツールを備えています。
1. Document Lookupによる文書アクセス権の検証
- Glean Admin Consoleで、Content management → Document lookup に移動します。
- Document URL 欄に、検証対象の機密Google DocのURLまたはドキュメントIDを入力します。
- User (optional) 欄で、アクセス可否をテストしたい同僚(特定の一般従業員など)を選択します。
- Check document をクリックします。
- 出力された診断情報を確認します:
- Last crawled:Gleanが最後にドキュメントのメタデータを取得した時刻。
- Last indexed:コンテンツおよびACLが検索インデックスに反映された時刻。
- Document visibility on Glean:文書が通常表示か、管理ルールで非表示になっているか。
- Document access:選択したユーザーに対して
Allowed(許可)またはRestricted(制限)が表示され、直接共有、グループ継承、またはリンク共有設定のいずれに基づく認可であるかが詳細に示されます。
2. 検索バーでの絞り込み検証
管理者アカウントまたはテスト用アカウントを使用し、Gleanの検索バーから診断用プレフィックスを実行します:
app:gdrive <キーワード>:Google Driveソースのみに対象を限定して検索し、機密ファイルが一般アカウントに露出していないかをテスト。app:slack <キーワード>:Slack RTS経由のメッセージのみに対象を限定し、プライベートチャンネルの隔離性をテスト。*(アスタリスク):対象ユーザーがアクセス可能なすべての社内コンテンツを一覧表示し、想定外のドキュメントが含まれていないかを確認。
3. 管理監査ログ(Audit Logs)の確認とエクスポート
Gleanは管理者操作およびセキュリティイベントの監査ログを保持しています:
- Users & permissions → Audit logs(または Management → Audit Logs)に移動します。
- 日時、実行者、イベント種別(コネクタ設定変更、OAuthスコープ改変、可視性設定の更新など)でフィルタリングします。
- CSV形式でエクスポートし、自社のSIEM(SplunkやDatadogなど)と連携させてSOC 2、HIPAA、ISO 27001などの監査要件に対応します。
6. まとめと導入前チェックリスト
Google Driveに対する「取り込み時ACL深度インデックス」と、Slackに対する「フェデレーション型ゼロコピーリアルタイム検索(RTS)」を組み合わせることで、Gleanは高速な検索性能とリアルタイムなアクセス制御の両立を実現しています。これにより、自作RAG(検索拡張生成)システムで生じがちなパーミッションバイパスのリスクを完全に排除できます。
IT管理者向け本番展開前チェックリスト
- プライマリIdP(Okta / Entra ID / Google Identity)がGleanと連携済みであること。
- GCPサービスアカウントが作成され、JSONキーの保管と数値クライアントIDの取得が完了していること。
- Google Workspace管理画面でドメイン全体の委任が承認され、必須スコープに過不足がないこと。
- Activity APIクロール用のDirectory Admin Emailが設定されていること。
- Google Driveのリンク共有設定(「検索結果に表示」オプション)のポリシーを決定・確認したこと。
- Slack Enterprise Gridに対してSlack Org OwnerがMarketplaceアプリの承認を実施したこと。
- Slack Real Time Search(RTS)コネクタが構成され、疎通確認が完了していること。
- 人事・法務・役員等の機密チャンネルがRedlist(除外リスト)に登録されていること。
- Slack Connect(外部共有チャンネル)の保護設定が有効になっていること。
- Document Lookupツールを用いて、役員と一般社員のアカウントでアクセス権差分を検証したこと。
- Audit LogsのSIEM連携およびエクスポート機能を確認したこと。
本ガイドの手順に従って構成することで、企業のゼロトラストセキュリティ基準を厳格に順守しながら、全社的な生産性を飛躍的に高めるセキュアな社内検索環境を実現できます。