Microsoft 365データストアのOneDriveDataStoreに、Microsoft Purviewの機密ラベルを読み取り、ラベルに応じてクロール結果を制御する変更が入りました。OneDrive、SharePointの文書ライブラリー、Microsoft 365グループのドライブで、本文を取り込まない運用や対象から外す運用を選べます。
有効化とポリシー例
初期値はsensitivity_label_enabled=falseです。データストア設定のパラメーター欄に、1行ずつ次のように設定します。
sensitivity_label_enabled=true
sensitivity_label_policy.Highly Confidential=skip
sensitivity_label_policy.Confidential=no_content;restrict:{group}legal@example.com
この例ではHighly Confidentialとその子ラベルを取り込まず、Confidentialとその子ラベルは本文を取得せず、法務グループに絞ります。indexは通常の取り込み、skipは除外、no_contentは名前などのメタデータだけの取り込み、restrictは閲覧ロールの絞り込みです。
ラベルのID、名前、親ラベル、暗号化を示す@protected、残りを表す*をルールに利用できます。複数ラベルの結果は厳しい側へ組み合わせます。ルールが不正な場合はクロールを停止するため、実際のラベルと権限を用意してから設定します。
権限と取得対象
ファイルの機密ラベル取得には既存のFiles.Read.Allを使います。ラベルの名前、親子関係、暗号化設定を読むには追加でSensitivityLabel.Readが必要です。定義を取得できない場合、基本的にはそのラベル自身のIDと*だけで一致判定します。名前や親ラベルによる規則を安全に解決できない場合は失敗ポリシーへ進みます。
初期設定の取得対象はOffice形式とPDFです。対象ファイルごとにGraphへの追加リクエストが発生します。sensitivity_label_extensionsで対象拡張子を指定できます。取得APIは古いラベルを再抽出し、Microsoft 365側のメタデータを更新する場合もあります。
制限はACLとの共通部分
restrictは既存ACL、デフォルト権限、クロール設定の権限から作るロールを狭めます。新しい閲覧権限を与える設定ではなく、共通するロールがなくなると取り込みません。Graphから暗号化ラベルの許可ユーザー一覧を取得できないため、管理者が対応するロールを指定します。グループ経由ではなく直接権限を与えたユーザーが除外される場合にも注意してください。
必要ならスクリプトでsensitivity_label=file.sensitivity_label_namesとマッピングできます。検索APIへ返す場合やフィールド検索に使う場合は、対応する追加フィールド設定も必要です。
暗号化ファイルと失敗時の扱い
定義を取得できる暗号化ラベルのファイルは、個別ルールがない場合、原則として本文なしで取り込みます。Graphが返すファイルは暗号化されたままで、本文を抽出できません。定義を取得できないとこの暗号化判定が使えない場合があります。
sensitivity_label_failure_policyの初期値skipは、ラベルを取得できないファイルを失敗URLとして記録して取り込みません。index_without_labelへ変えると取得できた情報で処理を継続するため、意図した制限を適用できない可能性があります。二重キー暗号化のファイルは423 Lockedで失敗ポリシーへ進みます。
このPRの検証はGraphの模擬応答によるもので、実テナントの検証は行われていません。変更を含むMicrosoft 365プラグインを用意し、少数のファイルでラベル・権限・失敗URLを確認してから対象を広げてください。
利用できるバージョン
Fess 15.9.0に含まれる予定の機能になります。現時点では、まだ、リリースしていないので、今後のテストで変更される可能性もあります。