AIセキュリティ保護対象のサービスポリシー
ベータ版
この機能はベータ版です。アカウント管理者は、アカウント コンソールの [プレビュー] ページからこの機能へのアクセスを制御できます。 Databricksのプレビューを管理するを参照してください。
サービスポリシーにより、Unity Catalogに登録されたAIサービスとのやり取りのコンテンツ(Databricksがホストするものだけでなく、 外部 のMCPサーバーやあらゆるプロバイダーのモデルを含む)を管理できます。Unity Catalogの付与は、プリンシパルがサービスを呼び出すことが できるかどうか を決定します。サービスポリシーは、リクエストと応答のコンテンツ、および呼び出しを行っているユーザーに基づいて、そのやり取りが どのように 進むかを管理します。
これは、エージェントがユーザーに代わって行動する場合に特に重要です。エージェントは、ユーザーがアクセスできるすべてを継承し、サービスは多くの場合、外部システムにアクセスします。サービスポリシーを使用すると、そのアクティビティにガードレールを設定できます。例えば、エージェントがGitリポジトリにコードをプッシュする前にユーザーの同意を求めたり、モデルの応答から個人を特定できる情報(PII)を編集または削除したり、安全でないコンテンツをブロックしたりすることができます。
サービスポリシーは、AIサービスにスコープ設定された属性ベースのアクセス制御(ABAC)ポリシーの一種です。ABACポリシーは2つのグループに分けられます。アクセス制御ポリシー(付与など)は、プリンシパルがオブジェクトに到達できるかどうかを決定し、コンテンツポリシーは、到達した後に何が起こるかを管理します。「サービスポリシー」は、AIサービスに対するコンテンツポリシーであり、行フィルターポリシーや列マスクポリシーがテーブルに対して果たす役割と同じです。それらと同様に、サービスポリシーはガバナンスロジックを含むUnity Catalog関数を参照し、それをセキュリティ保護可能なものにアタッチします。
サービスポリシーがUnity Catalogの付与を補完する方法
Unity Catalogの権限とサービスポリシーは、異なるガバナンスの課題に対応し、異なる適用ポイントで運用されます。
Unity Catalog の権限 | サービスポリシー | |
|---|---|---|
質問への回答 | このプリンシパルはこのサービスを呼び出すことができますか? | このインタラクションはどのように進行すべきですか? |
入力 | プリンシパルの識別情報と付与された権限 | リクエストコンテンツ、レスポンスコンテンツ、ツールアノテーション、アクターコンテキスト |
適用ポイント | リクエストがサービスに到達する前に | サービスが呼び出される前(ON CALL)と、サービスが応答した後(ON RESULT) |
粒度 | プリンシパルごと、セキュリティ保護可能なオブジェクトごと | リクエストごとに、コンテンツとコンテキストに基づいて |
サービスポリシーはUnity Catalogの権限を置き換えるものではありません。プリンシパルは、サービスを呼び出すためにまず適切なUnity Catalog権限を持っている必要があります。サービスポリシーは、各インタラクションのコンテンツを評価し、追加のガバナンスルールを適用します。
ポリシー決定
サービスポリシーはリクエストまたはレスポンスの内容を評価し、次の3つの結果のいずれかを返します。
- 許可 :インタラクションが進行します。
- DENY :ポリシーがインタラクションをブロックします。呼び出し元は、オプションの理由を含む構造化されたエラーを受け取ります。
- ASK :対話を進める前に、ポリシーは人間の承認のためにその対話を保留します。この承認ステップにより、機密性の高い操作に対するヒューマン・イン・ザ・ループのワークフローが可能になります。たとえば、管理者は、破壊的なMCPツール呼び出しを実行する前に承認できます。
ポリシーは、インタラクションイベント (アクターとリクエストまたはレスポンスのコンテンツを含む) を受信し、意思決定結果を返す SQL ユーザー定義関数 (UDF) です。
評価ポイント
Databricks は、すべてのインタラクションで 2 つの点でサービス ポリシーを評価します。
- 「 ON CALL 」:Databricksがサービスを呼び出す*前に*、リクエストに対して。 このフェーズを使用して、基盤となるサービスに到達する前にリクエストを検査してください。例えば、破壊的なMCPツールを呼び出すリクエストをブロックしたり、PIIが含まれるプロンプトがモデルに到達する前に拒否したりできます。
- 結果時 :サービスが応答した 後 、レスポンスに対して。このフェーズを使用して、レスポンスが呼び出し元に返される前に検査します。たとえば、幻覚コンテンツや機密データを含むレスポンスをブロックします。
カスタムポリシー関数は両方の点で実行されます。これは現在のフェーズ(event:type)を検査し、どのように動作するかを決定するため、単一のポリシーでリクエスト、レスポンス、またはその両方を管理できます。1つのフェーズでのみ動作させるには、関数本体でevent:typeに基づいて分岐します。組み込みポリシーは代わりにphasesオプションでスコープが設定され、一部は1つのフェーズでのみ実行されます(たとえば、ジェイルブレイク検出はON CALLでのみ、幻覚検出はON RESULTでのみ実行されます)。
評価順序
1つのサービスに複数のサービスポリシーをアタッチできます。各アタッチメントには**ランク**(優先度)があり、チェーンは最初のDENY で停止します。Databricksは、**ON CALL**では昇順(最低ランクが最初)で、**ON RESULT**では逆順でポリシーを評価します。 ランクを使用して、どのチェックを最初に実行するかを制御します。
組み込みサービスポリシー
Databricksは、system.aiカタログで組み込みのサービスポリシーを提供します。これらはカスタムSQLなしで一般的なガバナンスシナリオをカバーします。Databricksの AIガードレール は、カスタムポリシーと同じ方法でアタッチする、事前設定されたDatabricks管理ポリシー(PIIや安全でないコンテンツの検出など)である組み込みのサービスポリシーです。
system.ai.block_pii:個人を特定できる情報を含むインタラクションを拒否します。system.ai.block_unsafe_content: 安全でない、または有害なコンテンツを含むインタラクションを拒否します。system.ai.block_jailbreakモデルの安全指示を回避しようとするリクエストを拒否します。system.ai.block_hallucination:ハルシネーションを含む応答を拒否します。
組み込みポリシーを使用するには、サービスにアタッチします。ポリシー関数に対するEXECUTE権限と、ターゲットサービスに対するMANAGE権限が必要です。
サポートされているサービス
ベータ期間中、以下の Unity Catalog サービス セキュリティ保護可能なオブジェクトにサービス ポリシーをアタッチできます。
フェイルクローズド動作
サービスポリシーの評価はフェイルクローズドセマンティクスを使用します。Unity AI Gateway を介してポリシーをアタッチすると、Databricks はアタッチ時にそれを検証し、評価中にエラーが発生すると DENY になります。エラーには、ポリシー関数のユーザーエラー、システムエラー、リクエストコンテキスト内の不足しているフィールド、およびタイムアウトが含まれます。
誤って設定された、または破損したポリシーは、インタラクションを通過させるのではなくブロックします。
制限事項
ベータ版の期間中、以下の制限が適用されます:
- 変換:サービスポリシーは意思決定 (ALLOW、DENY、または ASK) を返します。ベータ期間中、リクエストまたはレスポンスのコンテンツを変換しません。
- サポートされているサービス :サービスポリシーは、MCPサービスおよびモデルサービスにのみ適用されます。モデルプロバイダーサービスとエージェントサービスは、現在サポートされていません。