Skip to content

ACLメタデータのハイドレーションとエンフォースメント

アクセス制御リスト(ACL)メタデータのハイドレーションとは、ソースシステムから権限データを継続的に取得・更新するプロセスであり、エンフォースメントは、DataRobot内でそれらのアクセス制御が確実に適用され、遵守されるようにするものです。 これにより、ソースシステムの権限に依存するAIワークフローを、安全かつコンプライアンスに準拠した形で運用することが可能になります。

ソースシステムからファイルレベルおよびユーザーレベルの権限を取得して同期するには、DataRobotに次のものが必要です。

  • Microsoft Entra IDに登録され、Microsoft Graphのアプリケーション権限(管理者によって付与されたもの)を持つアプリケーション。 これらが必要なのは、サービススタイルのテナント全体のアクセスでは、Microsoft IDプラットフォームに対してOAuth 2.0クライアント資格情報フローが使用されるためです。
  • 特定のSharePointおよびMicrosoft 365 APIへのアクセス権。

アクセスの目的

DataRobotでは、以下への読み取り専用アクセス権が必要です。

  • Googleドライブのファイルおよびフォルダーに関するACLメタデータを取得および更新します。
  • 権限の変更をほぼリアルタイムで検知します。
  • ユーザーおよびグループのメンバーシップをマッピングし、ソースへのアクセス制御を正確に適用します。
  • SharePointのドキュメントライブラリ、フォルダー、およびファイルのACLメタデータを取得および更新します(Microsoft GraphのdriveItemおよびpermissionリソースを使用します)。
  • 共有を認識するPreferヘッダーを使用してドライブデルタAPIを継続的にポーリングすることにより、権限と共有の変更を検知します。
  • ユーザーとMicrosoft 365グループをマッピングして、DataRobotでグループベースの権限付与を正しく解決および適用します。
  • 組織APIを使用して、組織スコープの共有リンクのAzure ADテナントIDを解決します。

この連携により、ソースシステム内の権限、ファイル、設定に変更が加えられることはありません。 APIの使用はすべて、メタデータの取得とイベントの監視に限定されます。

Googleドライブ

Google APIの権限

エンドツーエンドのACL同期およびエンフォースメントを有効にするには、以下のOAuthスコープが必要です。

権限スコープ 目的
https://www.googleapis.com/auth/admin.directory.group.readonly グループ構造およびメンバーシップを表示し、グループベースの権限を解決します。
https://www.googleapis.com/auth/admin.directory.user.readonly ユーザーディレクトリ情報を表示し、ファイルのACLをドメインユーザーにマッピングします。
https://www.googleapis.com/auth/drive.readonly ACLや共有設定を含む、ファイルおよびフォルダーのメタデータを取得します。
https://www.googleapis.com/auth/drive.activity.readonly 権限や共有の変更を把握するドライブ監視アクティビティ。

SharePoint

Microsoftのリファレンス

MicrosoftにおけるACLのハイドレーションとエンフォースメントについて詳しくは、以下を参照してください。

Microsoft Graphの権限

このセクションでは、管理者がMicrosoft Entra IDに登録されたアプリケーションに付与する必要があるMicrosoft Graphの権限を一覧表示します。

ユーザー権限 目的
Files.Read.All ドライブ全体のアイテムを読み取ります。driveItemに対する有効な共有権限を一覧表示します。ドライブのデルタを使用して、階層内の追加、更新、削除、および権限の変更を追跡します。
Sites.Read.All SharePointサイトおよびサイトスコープのドライブを読み取ります(例:GET /sites/{site-id}/drives)。
Directory.Read.All ユーザープロフィール(GET /users/{id})およびグループメンバーシップ(GET /users/{id}/memberOf)を読み取り、ACLで参照されるプリンシパルをマッピングします。また、GET /organizationを通じてテナントIDを解決します。

変更の検知(デルタベース)

変更の検知は、Microsoft GraphのドライブデルタAPIを通じて実装されます。 この連携では、次のPreferヘッダーを使用してGET /drives/{drive-id}/root/deltaが継続的にポーリングされます。

Prefer: hierarchicalsharing,deltashowremovedasdeleted,deltatraversepermissiongaps,deltashowsharingchanges 
ヘッダー値 目的
hierarchicalsharing アイテムの階層構造を通じて、継承された共有の変更を反映させます。
deltashowremovedasdeleted ドライブから削除されたアイテムを削除イベントとして含めます。
deltatraversepermissiongaps 権限の継承が途切れているアイテムを走査し、アイテムごとの正確なACLを表示します。
deltashowsharingchanges デルタ応答に権限と共有の変更を含めます。

deltatraversepermissiongapsヘッダーにより、Microsoft Graphは、権限の継承が途切れているアイテムを走査します。 マイクロソフトのドキュメントによると、一部のスキャン環境では、権限を正しく処理するためにSites.FullControl.Allが必要になる場合があります。

Microsoft Graphのルート

このセクションでは、ACLの同期に使用されるMicrosoft Graphのルートを一覧表示します。 ベースURLhttps://graph.microsoft.com/v1.0/は、表内の各エンドポイントに共通するルートです。

ルート
サイトの一覧 GET /sites
サイトの取得 GET /sites/{site-id}
サイトのドライブの一覧 GET /sites/{site-id}/drives
ドライブの取得 GET /drives/{drive-id}
ドライブのデルタ(変更の検知) GET /drives/{drive-id}/root/delta
アイテムの権限 GET /drives/{drive-id}/items/{item-id}/permissions
アイテムのメタデータ GET /drives/{drive-id}/items/{item-id}
ユーザープロフィール GET /users/{id}
ユーザーグループのメンバーシップ GET /users/{id}/memberOf
組織 / テナントIDの解決 GET /organization