サービス ポリシーを作成してアタッチする
ベータ版
この機能はベータ版です。アカウント管理者は、アカウント コンソールの [プレビュー] ページからこの機能へのアクセスを制御できます。 Databricksのプレビューを管理するを参照してください。
サービスポリシーの概要については、AIセキュリティ可能オブジェクトのサービスポリシーを参照してください。
サービスポリシーを作成するには、SQLポリシー関数を作成し、それを**Unity AI Gateway** UIを通じて MCPサービス またはモデルサービス にアタッチします。ポリシーは、2つの評価ポイントで各インタラクションを管理します: **ON CALL**(Databricksがサービスを呼び出す前)および**ON RESULT**(サービスが応答した後)。
前提条件
- アカウント管理者は、アカウントコンソールの**[プレビュー]**ページからアカウントでベータ版を有効にする必要があります。
- ポリシー関数を作成するには: ターゲットスキーマに対する
CREATE FUNCTION権限。 - サービスにポリシーをアタッチするには:ターゲットサービスのセキュリティ保護可能な項目で
MANAGE**および**EXECUTEポリシー機能で 。
ステップ 1:ポリシー関数を記述します
サービスポリシー関数は、Unity Catalogに登録されているSQL UDFです。単一のVARIANTパラメーターであるevent(対話データとコンテキスト)を受け取り、VARIANTの結果を返します。
CREATE OR REPLACE FUNCTION <catalog>.<schema>.<function_name>(
event VARIANT
)
RETURNS VARIANT
LANGUAGE SQL
RETURN <expression>;
関数は両方の評価ポイントで実行されます。単一フェーズで動作するには、event:type::string(ON CALL の場合は 'request'、ON RESULT の場合は 'response')で分岐します。完全な event フィールド、戻り値、およびサポートされている SQL サブセットについては、「サービスポリシー関数リファレンス」を参照してください。
意思決定ポリシーの作成
ディシジョンポリシーは、ALLOW、DENY、またはASKのresultフィールドとオプションのreasonを持つVARIANTを返します。結果をnamed_structで構築し、to_variant_objectで囲み、関数がVARIANTを返し、resultおよびreasonをトップレベルフィールドとして保持するようにします。
例: MCPサービスからのGitHubプッシュを拒否する
このポリシーは、push_filesツールへのあらゆる呼び出しをブロックし、それ以外のすべての操作を許可します。ポリシーが特定の MCP サービスにアタッチされているため、関数はツール名を確認するだけで済みます。
CREATE OR REPLACE FUNCTION main.governance.block_github_push(
event VARIANT
)
RETURNS VARIANT
LANGUAGE SQL
RETURN
CASE
WHEN event:type::string = 'request'
AND event:context.tool.name::string = 'push_files'
THEN to_variant_object(named_struct('result', 'DENY', 'reason', 'GitHub push operations are not permitted by policy.'))
ELSE to_variant_object(named_struct('result', 'ALLOW', 'reason', ''))
END;
resultの値によって何が起こるかが決まります (大文字と小文字は区別されません):
ALLOW:対話が進行します。DENY: Databricksはインタラクションをブロックします。呼び出し元は、reasonを含む構造化エラーを受け取ります。ASK人間による承認が得られるまで一時停止します。
サポートされているSQLサブセットと、VARIANTを返すためのルールについては、サービスポリシー関数リファレンスを参照してください。
ステップ2:ポリシーをサービスにアタッチする
ベータ期間中は、 Unity AI Gateway UI を介して、個々のMCPサービスまたはモデルサービスにサービスポリシーをアタッチします。サービスに複数のポリシーをアタッチできます。各アタッチメントには優先度 (ランク) があり、チェーンは最初のDENYで停止します。ON CALL では、ポリシーは昇順 (ランクが低いものが最初) で評価されます。ON RESULT では、逆の順序で評価されます。
ポリシーをアタッチするには:
-
ワークスペースのサイドバーで、[ AI Gateway ] をクリックします。
-
ガバナンスするサービスを選択します: モデル タブのモデルサービス、または MCP タブのMCPサービス。
-
[ ポリシー ]タブを開き、[ 新しいポリシー ]をクリックします。
-
ポリシーの 名前 を入力します。
-
適用対象 で、ポリシーを適用するプリンシパルを選択します。デフォルトの すべてのアカウントユーザー は、全員に適用されます。
-
ガードレールタイプ で、ポリシーが実行する内容を選択してください。
- **PII ブロッキング**や**安全でないコンテンツ**などの組み込みガードレール。チェックを実行する**評価モデルサービス**(LLM ジャッジ)は事前選択されています。別のモデルを使用するには、**詳細オプション**を展開して選択します(選択するモデルに
CAN_QUERYが必要です)。 - カスタム : 「 カスタム関数 」をクリックし、次に「 関数の選択 」をクリックして、ステップ1で記述したSQL関数を選択します。
- **PII ブロッキング**や**安全でないコンテンツ**などの組み込みガードレール。チェックを実行する**評価モデルサービス**(LLM ジャッジ)は事前選択されています。別のモデルを使用するには、**詳細オプション**を展開して選択します(選択するモデルに
-
フェーズ で、ポリシーが実行される場所を選択します: 入力ガードレール (ON CALL、サービスが呼び出される前)、 出力ガードレール (ON RESULT、応答後)、またはその両方。カスタム関数は両方のフェーズで実行でき、
event:typeで分岐して1つにスコープを限定できます。一部の組み込みガードレールは、入力時のジェイルブレイク検出や出力時の幻覚検出のように、単一のフェーズでのみ実行されます。 -
**ランク**を設定して評価順序を制御します。ランクが最も低いものがリクエストで最初に実行され、レスポンスで最後に実行されます。
-
「 ポリシーの作成 」をクリックします。
ポリシーはサービスの**ポリシー**タブに表示されます。ベータ期間中は、伝播のためにしばらく時間を置き、その後にテストしてください。
ベータ期間中、ポリシーUIが変更される可能性があります。ラベルがこれらのステップと異なる場合は、製品内のラベルに従ってください。
組み込みポリシーを使用する
Databricks は、個人を特定できる情報(PII)をブロックするための system.ai.block_pii など、system.ai カタログに組み込みサービス ポリシーを提供します。使用するには、ステップ 2に従い、 Guardrail type で Custom ではなく組み込みガードレールを選択します。組み込みガードレールではポリシー固有の設定は不要です。 Phase 、 Rank 、 Evaluator model サービス 、および Mode フィールドは、他のポリシーと同じように設定します。
組み込みポリシーの完全なリストについては、組み込みサービスポリシーを参照してください。
組み込みのポリシー関数に対してEXECUTE権限が、ターゲットサービスに対してMANAGE権限が必要です。
ポリシーを確認する
ポリシーをアタッチした後、それがアクティブであり、期待される結果を生成していることを確認してください。
ポリシーをアタッチまたは変更した後、テストする前に変更が有効になるまでしばらくお待ちください。ベータ期間中、ポリシーの変更が反映されるまでに1、2分かかる場合があります。
アタッチの確認
Unity AI Gatewayで、対象のサービスを開き、アタッチされているポリシーを表示します。作成したポリシーがリストに表示されます。
「ポリシーの結果を監視する」
ポリシーが有効になっていることを確認できます。
- 呼び出し元から : ポリシーが
DENYを返すと、呼び出し元は指定したreasonを含む構造化エラーを受け取ります。ASKは人間の承認のために呼び出しを停止する。 - システムテーブル では、モデルと MCP アクティビティが使用状況テーブルに記録され、完全なリクエストとレスポンスのペイロードが推論テーブルに記録されます。
制限事項
ベータ版では、次の制限が適用されます:
- 変換 : サービスポリシーは決定 (ALLOW、DENY、またはASK) を返します。ベータ版では、リクエストまたはレスポンスのコンテンツは変換されません。
- ポリシー言語 : カスタムポリシー関数は
LANGUAGE SQLのみをサポートしています。 - **適用範囲**:ポリシーの適用はUIのみであり、個々のサービスに限定されており、そのポリシーはすべてのアカウントユーザーに適用されます。カタログレベルまたはスキーマレベルでのポリシーの適用、属性ベースのアクセス制御 (ABAC) の条件、およびカスタムプリンシパルは利用できません。