Gemini Enterprise で Cloud Storage の非構造化データにアクセス制御を構成する

Google Cloud

2026.3.17

Topics

概要

今回は、Google Cloud Storage (GCS) に保存されたテキストファイルの非構造化データに対し、Gemini Enterprise でユーザー単位のアクセス制御(ACL)を適用する方法を検証します。

検証シナリオ

今回は、以下の図のように、User A には「GCS に関するファイル」のみ、User B には「Gemini Enterprise に関するファイル」のみを参照できる権限を付与し、それぞれのチャット回答がどう変化するかを検証します。

ユーザー権限の仕組みの概念図

実装手順

実装は以下の 3 つの順番で行います。

  1. テキストファイルと ACL メタデータファイルの作成
  2. Gemini Enterprise でデータストア設定
  3. Gemini Enterprise での動作確認

1. テキストファイルと ACL メタデータファイルの作成

まずは、Gemini Enterprise に読み込ませるテキストファイルと、そのアクセス権を定義するメタデータファイルを作成します。

検索対象のテキストファイル

以下の 2 つのテキストファイルを用意し、GCS バケットにアップロードします。

  • GE.txt: Gemini Enterprise の製品概要
  • GCS.txt: Google Cloud Storage の技術解説

Gemini Enterprise のテキストファイル一部抜粋

Gemini Enterprise 
Gemini Enterpriseは、Googleが提供する企業向けの高度な生成AIエージェントプラットフォームです。
単なる対話型AIにとどまらず、組織全体の業務プロセスを自律的に実行・自動化する「AIエージェント」の構築・運用を中核としています。

GCS のテキストファイル一部抜粋

Google Cloud Storage (GCS) ☁️
Google Cloud Storage (GCS)は、Google Cloudが提供する堅牢かつスケーラブルなオブジェクトストレージサービスです。
画像、動画、ドキュメント、バックアップファイルなどのあらゆる非構造化データを「オブジェクト」という単位で、地理的な場所を指定した「バケット」内に安全に保存できます。

GCSバケット内のファイル一覧

ACL メタデータファイルの作成

ファイル単位のアクセス制御を行うには、JSONL 形式のメタデータファイルが必要です。
各行にファイルの場所(URI)と、閲覧を許可するユーザー(readers)を記述します。

後ほどチャットで問い合わせる際にファイルを明示的に指定できるよう、doc-xxx-txt というドキュメント ID をそれぞれ設定します。

acl.jsonl

{"id":"doc-gcs-txt","jsonData":"{\"title\":\"Google Cloud Storage (GCS) 技術解説\"}","content":{"mimeType":"text/plain","uri":"gs://your-bucket/GE/GCS.txt"},"acl_info":{"readers":[{"principals":[{"user_id":"user-a@example.com"}]}]}}
{"id":"doc-ge-txt","jsonData":"{\"title\":\"Gemini Enterprise 製品概要\"}","content":{"mimeType":"text/plain","uri":"gs://your-bucket/GE/GE.txt"},"acl_info":{"readers":[{"principals":[{"user_id":"user-b@example.com"}]}]}}

アクセス制御に該当する記述は以下の通りです。
今回はuser_idで個別のユーザーを指定していますが、group_idを使って Google グループ単位で制御することも可能です。

  "acl_info": {
    "readers": [{ "principals": [{ "user_id": "user-a@example.com" }] }]
  }

データソースのアクセス制御を設定する  |  Vertex AI Search  |  Google Cloud Documentation

このメタデータファイルを、先ほどのテキストファイルと同じ階層にアップロードします。

acl.jsonlが保存されたGCS

2. Gemini Enterprise でデータストア設定

次に、Gemini Enterprise のコンソール画面から、アクセス制御を有効にしたデータストアを作成します。

新しいデータストア作成ボタン

データソースは、「Cloud Storage」を選択します。

ソース一覧からGCSを選択

今回はメタデータ付きの非構造化データなので、「メタデータ付きドキュメント(RAG)」を選択します。

RAGドキュメント取り込み選択

同期の頻度は「1 回限り」を選択します。

取り込みの同期頻度設定画面

先ほどアップロードした acl.jsonl を選択します。

インポートするファイルの選択

「このデータストアにはアクセス制御に関する情報が含まれています」のチェックボックスを必ずオンにします。

アクセス制御情報の有無を確認

データストアが完成しました。

接続済みデータストアの一覧

データストアの作成が完了すると、自動的にドキュメントのインポート処理が開始されます。

インポート処理中のステータス

インポート処理が進むと、JSONL ファイルで定義したメタデータ構造が解析され、スキーマフィールドとして正しく反映されます。

スキーマフィールドの設定画面

インポートが完了すると、ドキュメント数が「2」となり、メタデータに基づいて正しく取り込まれたことが確認できます。

インポート完了後の管理画面

3. Gemini Enterprise での動作確認

アクセス制御が正しく反映されているか、実際に Gemini Enterprise のチャット画面で確認してみます。

すべてのコネクタを有効化しても問題ないですが、情報量が増えるのと検索時間がより多くなるため、コネクタを限定することを推奨します。

GCS ACLコネクタの有効化

User A での確認(GCS ファイルの閲覧権限あり)

User A でログインし、GCS について質問すると正しく回答が返ってきます。

AIによるGCSの解説回答

一方で、権限のない Gemini Enterprise について質問すると、「ファイルが見つかりませんでした」という結果になりました。

ファイル未検出の回答画面

User B での確認(Gemini Enterprise ファイルの閲覧権限あり)

逆に User B でログインすると、Gemini Enterprise については回答が得られますが、GCS に関する質問には回答できません。

AIによるGeminiの製品概要

ファイル未検出のシステム応答

追加で、インポートしたファイル一覧を取得するよう指示してみましたが、アクセス権限があるファイルのみが表示されました。

関連ドキュメントの検索結果

まとめ

Gemini Enterprise と Cloud Storage を組み合わせることで、ファイル単位でのきめ細やかなアクセス制御が簡単に行えます。
「特定の部署のファイルは、その部署のメンバーにしか見せたくない」や「役職に応じて閲覧できる情報を制限したい」といったユースケースにはぜひご検討ください。

参考資料

カスタム データソースのアクセス制御を構成する  |  Gemini Enterprise  |  Google Cloud Documentation
データソースのアクセス制御を使用する  |  Vertex AI Search  |  Google Cloud Documentation
カスタム データソースのデータを準備する  |  Gemini Enterprise  |  Google Cloud Documentation
構造化データと非構造化データを更新する  |  Gemini Enterprise  |  Google Cloud Documentation
ユーザーの ID  |  Identity and Access Management (IAM)  |  Google Cloud Documentation

Cold-Airflow

2021年新卒入社。インフラエンジニアです。RDBが三度の飯より好きです。 主にデータベースやAWSのサーバレスについて書く予定です。あと寒いのは苦手です。

X (Twitter) をフォローする

テックブログ新着情報の他
AWSやGoogle Cloudに関する
お役立ち情報を配信中!

Recommends

こちらもおすすめ

X (Twitter) をフォローする

テックブログ新着情報の他
AWSやGoogle Cloudに関する
お役立ち情報を配信中!

Special Topics

注目記事はこちら