ACL hydration¶
プレミアム機能
DataRobot's RAG ACL management capabilities are a premium feature; contact your DataRobot representative for enablement information. This functionality is not available in the DataRobot trial experience.
アクセス制御リスト(ACL)のハイドレーションにより、GoogleドライブやSharePointなどの外部ソースからの元のドキュメントの権限に基づいて、ベクターデータベースの結果に対してきめ細かな認可が適用されます。 これらのソースからファイルを取り込む際、DataRobotはそのアクセス制御情報を取得・保持し、ユーザーが元のソースシステムで閲覧権限を持つドキュメントのベクターデータベースのチャンクにのみアクセスできるようにします。
概要¶
ACL hydration enables organizations to maintain the same access control policies in DataRobot that exist in their source systems. これは、生成AIアプリケーション向けのベクターデータベースで機密文書を使用する際に、それを確実に保護する必要がある管理者にとって特に重要です。
データセットの場合、ACLハイドレーションは次のように動作します。
- サポートされている外部ソースからファイルを取り込みます。 DataRobotはそれらをファイルレジストリに登録します。
- DataRobotは取り込み時に最初のACLを取得し、キャッシュします。
- DataRobot continuously monitors ACL changes in the source system using polling mechanisms:
- For Google Drive, DataRobot queries the Drive Activity API for permission changes.
- For SharePoint, DataRobot uses Delta Query to track permission updates.
- ユーザーがベクターデータベースにクエリーを実行すると、DataRobotは元のソースシステムにおけるユーザーの権限に基づいて結果をフィルターし、アクセス可能なチャンクのみが返されるようにします。
What is the latency for ACL updates?
DataRobot targets low-latency ACL updates to ensure permissions are applied as quickly as possible. While the system is designed to support near real-time updates (targeting a few seconds in the long term), initial implementations may have latencies of approximately 1 minute, which is acceptable for most use cases. Updates that take 10 minutes or longer are not acceptable.
詳細については、機能に関する注意事項を参照してください。
Key capabilities¶
ACL hydration provides the following capabilities:
| 機能 | 説明 |
|---|---|
| Initial ACL capture | サポートされているデータソースからファイルを初めて取り込む際に、アクセス制御情報を自動的に取得し保存します。 |
| ACL change monitoring | Continuously polls source systems to detect and apply permission changes as they occur. |
| ベクターデータベースの結果のフィルター | Filters vector database query results to return only chunks from documents the user has permission to access. |
| Multi-user support | Supports multiple users with different permission levels, ensuring each user sees only the data they're authorized to access. |
Supported data sources¶
ACL hydration is currently supported for the following data sources:
| データソース | ACL tracking method |
|---|---|
| Googleドライブ | Drive Activity API |
| SharePoint | Delta Query |
Setting up ACL hydration¶
組織でACLハイドレーションを有効にするには、サポートされているデータソースに対して管理者接続を設定します。
前提条件¶
Before setting up ACL hydration, ensure you have:
- An organization administrator account with appropriate permissions.
- サポートされているデータソースへの接続。
- (接続の設定後に)サポートされているデータソースから取り込まれたファイル。
Configuration steps¶
-
DataRobotの組織管理者として、データ接続ページに移動します。
-
サポートされているデータソースタイプの既存の接続を選択するか、新しい接続を作成します(管理者接続にはサービスアカウントを使用することを強くお勧めします)。
-
アクセス制御リストの同期を有効にするをオンに切り替えます。 DataRobotはこの接続を使用して、組織内のすべてのファイルにおけるACLの変更を定期的に確認します。
-
必要に応じて、ACL管理の詳細を設定します。
- 管理者なりすまし用メールアドレス:バックグラウンドでなりすます管理者アカウントを設定します。 Googleドライブでは、このフィールドは必須です。
-
ドメイン(オプション):ユーザーのメールドメインを指定した文字列で上書きします。 たとえば、ドメインが
sharepoint.comに設定され、ユーザーのメールアドレスがmy-account@company.comである場合、DataRobotはmy-account@sharepoint.comのACLを追跡します。 -
保存をクリックします。
データソースのタイプごとに、管理者接続は1つのみとなります。 DataRobot組織内の管理者ユーザーは、自身が権限を持つ接続に対してACL同期を有効にすることができます。 そうすることで、組織全体でそのデータソースに対する既存の管理者接続が上書きされます。 組織の管理者ユーザーには、すべての管理者接続が表示されるわけではありません。明示的に共有されているか、自身が所有している管理者接続のみが表示されます。
-
接続IDを取得してデータソースを作成し、ファイルの取込みを開始します。 Initial ACLs are automatically captured during ingestion.
備考
For Google Drive, extract both the Drive ID and Folder ID from the Google Drive URL.
DataRobotの新規ユーザーの場合、非同期ジョブが外部プリンシパル(ユーザーID)を自動的に更新し、ACL未設定の期間を最小限に抑えます。
How ACL hydration works¶
ACLハイドレーションは、アクセス制御リストを取得して、ソースシステムの設定を監視し、それらの設定に基づいて各ユーザーにベクターデータベースの結果を返します。
ファイルが最初に取り込まれる際、DataRobotは各ファイルの現在のアクセス制御リストを取得します。
次のようなACL情報がファイルレジストリに保存されます。 * The origin of each file (connector type and external file ID). * Original catalog ID and catalog version ID. * Initial ACLs with user and group permissions.
カタログアイテムが更新されたり、ファイルが変更されたりした場合でも、権限情報は保持されます。
DataRobotは、低レイテンシーを目指してソースAPIに一定の間隔でクエリーを実行するポーリングメカニズムを使用して、ソースシステムでのACLの変更を継続的に監視します。 例: * For Google Drive, DataRobot uses Drive Activity API to query for permission change events. * For SharePoint, DataRobot uses Delta Query to retrieve incremental changes.
ACLの変更が検出されると、DataRobotはファイルレジストリに保存されているACL情報を更新します。 変更は直ちに反映され、今後のベクターデータベースへのクエリーに影響します。
When a user queries a vector database:
DataRobotは、ベクターデータベースのチャンク内で参照されている各ファイルについて、ユーザーの権限を確認します。 ユーザーがアクセス権限を持つファイルのチャンクのみが結果に含まれます。 システムは、保存されているACL情報と、ユーザーの外部プリンシパルへのマッピングを組み合わせて、アクセス権を決定します。
User access levels¶
ACL hydration respects the original source system permissions:
| アクセスレベル | 動作 |
|---|---|
| Full access | ソースシステム内のファイルに対してフルアクセス権を持つユーザーは、そのファイルのすべてのベクターデータベースのチャンクを参照できます。 |
| Restricted access | アクセスが制限されているユーザーには、ソースシステムの権限に基づいて、自身が認可されているチャンクのみが表示されます。 |
| No access | ソースシステム内のファイルにアクセスできないユーザーは、DataRobotのカタログアイテムにアクセスできる場合でも、そのファイルのベクターデータベースチャンクを表示できません。 |
File access scenarios¶
以下のシナリオ例は、ACLハイドレーションの仕組みを説明するものです。
Scenario 1: User who ingested files
- Googleドライブからファイルを取り込むユーザーは、取り込んだすべてのファイルにアクセスできます。
- このユーザーは、クエリーの結果に表示されるそれらのファイルに含まれるすべてのベクターデータベースチャンクを確認できます。
Scenario 2: User with restricted access
- 特定のグループのメンバーであるユーザーは、そのグループと共有されているファイルにのみアクセスできます。
- このユーザーは、ソースシステムでアクセス権限を持つファイルに含まれるベクターデータベースチャンクのみを確認できます。
- アクセス権のないフォルダー内のファイルからの結果は除外されます。
Scenario 3: Public files
- 公開または「接続アクセス」とマークされたファイルは、すべてのユーザーがアクセスできます。
- すべてのユーザーが、これらの公開ファイルからベクターデータベースのチャンクを確認できます。
ユーザーIDとアプリケーションおよびエージェントを連携させる¶
DataRobotは、アプリケーション、エージェント、ベクターデータベース、およびACLの適用間の連携をサポートしています。 この連携は、アプリケーションおよびエージェントが、ACLでフィルターされたベクターデータベースの結果をリクエスト元ユーザーに自動的に適用するように構築されています。
DataRobotエージェントを呼び出し、ACL対応のベクターデータベースを使用するアプリケーションでは、エージェントが適切なACLフィルターを適用できるよう、リクエスト元ユーザーのIDを反映させる必要があります。
以下の手順を実行します。
-
受信リクエストからIDトークンを読み取ります。 アプリは(フロントエンドやAPIクライアントなどから)リクエストを受信します。 各リクエストから
X-DataRobot-Identity-Tokenヘッダーを読み取ります。 -
エージェントを呼び出すときに
X-DataRobot-Identity-Tokenヘッダーを渡します。 アプリからDataRobotエージェント(チャットやRAGなど)を呼び出す際は、エージェントがユーザーを識別し、そのユーザーの権限に基づいてベクターデータベースの結果をフィルターできるよう、アウトバウンド呼び出しにこのヘッダーを含めてください。
ヘッダーの渡し方は、アプリがエージェントを呼び出す方法(例:LLMクライアントへのextra_headersとして、またはストリームマネージャーへのヘッダーオブジェクトとして)によって異なります。 ヘッダーの読み取りは、いずれの場合も同じです。
# Example: read the identity token from the request (e.g., FastAPI/Starlette)
identity_token = request.headers.get("X-DataRobot-Identity-Token")
その後、エージェントを呼び出す際に送信するヘッダーにこの値を転送します。 IDトークンが反映されない場合、エージェントはユーザーごとのACLフィルターを適用できず、動作が意図したアクセスポリシーと一致しなくなる可能性があります。
機能に関する注意事項¶
-
DataRobotは、SharePointとGoogleドライブでACLハイドレーションをサポートしています。
-
Locally uploaded files and database connections do not support ACL hydration, as they do not have external access control systems to reference.
-
ACLハイドレーションの実施は、既存のベクターデータベースや取り込まれたファイルには自動的に適用されません。 サポートされているソースから新しく取り込まれたファイルを使用して新しく作成されたベクターデータベースにのみ適用されます。
-
DataRobotでは、バックグラウンド同期の状態に関係なく、取得された最新のACLが適用されます。 IDとACLの同期が正常であることを確認する必要がある場合は、バックグラウンド同期の監視で説明されている管理者API監視を使用します。
-
DataRobotでは、ACLハイドレーションにおけるドライブ間のリンクはサポートされていません。 たとえば、別のドライブを指すリンクを使用してファイルを取り込む場合、取り込み自体は正常に完了しますが、そのファイルにはACLを介してアクセスできないとみなされます。
バックグラウンド同期の監視¶
管理者は、イベントログAPIを使用してバックグラウンド同期の正常性を監視できます。 次の2つのイベントタイプが関連しています。
ユーザーIDとメンバーシップの同期¶
ユーザーIDおよびメンバーシップの外部ソースとの同期に関するレポートを返すには、以下を使用します。
GET https://{DATAROBOT_URL}/api/v2/eventLogs/?event=External+principals+synchronized+for+a+connector
このリクエストは、以下のレスポンスフィールドを返します。
| フィールド | 説明 |
|---|---|
timestamp |
レポートの日時(UTC表示)。 |
context.connectorType |
データソース(例:gdrive)。 |
context.mostOutdatedMinutes |
ユーザーID同期のレイテンシー(分単位)。 |
context.mode |
ジョブのステータス。<INITIALIZE(ユーザーIDのマッピングがまだ作成中)、UPDATE(通常動作)、またはFAILURE(ジョブが正常に完了しなかった)のいずれかです。 |
ACLの同期¶
ACLファイルの同期に関するレポートを返すには、以下を使用します。
GET {public API endpoint}/api/v2/eventLogs/?event=ACL+synchronized+for+a+connector
このリクエストは、以下のレスポンスフィールドを返します。
| フィールド | 説明 |
|---|---|
timestamp |
レポートの日時(UTC表示)。 |
context.connectorType |
データソース。 |
context.result |
ジョブステータス。 |
context.seconds |
ACLの同期が完了するまでの時間(秒単位)。 |
トラブルシューティング¶
| 問題 | 解決方法 |
|---|---|
| ACL updates are taking too long | ACLサービスのステータスを確認します。 |
| 新しいユーザーが、アクセス権を持つはずのファイルにアクセスできない | Wait for the automatic async job to complete. 新しいユーザーの場合、ACLが完全に適用されるまでに最大1時間の遅延が発生する場合があります。 |
