ACLメタデータのハイドレーションとエンフォースメント¶
アクセス制御リスト(ACL)メタデータのハイドレーションとは、ソースシステムから権限データを継続的に取得・更新するプロセスであり、エンフォースメントは、DataRobot内でそれらのアクセス制御が確実に適用され、遵守されるようにするものです。 これにより、ソースシステムの権限に依存するAIワークフローを、安全かつコンプライアンスに準拠した形で運用することが可能になります。
ソースシステムからファイルレベルおよびユーザーレベルの権限を取得して同期するには、DataRobotに次のものが必要です。
- ドメイン全体での委任が有効になっているサービスアカウント。
- 特定のGoogle Workspace APIへのアクセス権。
- 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 |