メインコンテンツまでスキップ

サービス ポリシーを作成してアタッチする

備考

ベータ版

この機能はベータ版です。アカウント管理者は、アカウント コンソールの [プレビュー] ページからこの機能へのアクセスを制御できます。 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の結果を返します。

SQL
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 サブセットについては、「サービスポリシー関数リファレンス」を参照してください。

意思決定ポリシーの作成

ディシジョンポリシーは、ALLOWDENY、またはASKresultフィールドとオプションのreasonを持つVARIANTを返します。結果をnamed_structで構築し、to_variant_objectで囲み、関数がVARIANTを返し、resultおよびreasonをトップレベルフィールドとして保持するようにします。

例: MCPサービスからのGitHubプッシュを拒否する

このポリシーは、push_filesツールへのあらゆる呼び出しをブロックし、それ以外のすべての操作を許可します。ポリシーが特定の MCP サービスにアタッチされているため、関数はツール名を確認するだけで済みます。

SQL
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 では、逆の順序で評価されます。

ポリシーをアタッチするには:

  1. ワークスペースのサイドバーで、[ AI Gateway ] をクリックします。

  2. ガバナンスするサービスを選択します: モデル タブのモデルサービス、または MCP タブのMCPサービス。

  3. [ ポリシー ]タブを開き、[ 新しいポリシー ]をクリックします。

  4. ポリシーの 名前 を入力します。

  5. 適用対象 で、ポリシーを適用するプリンシパルを選択します。デフォルトの すべてのアカウントユーザー は、全員に適用されます。

  6. ガードレールタイプ で、ポリシーが実行する内容を選択してください。

    • **PII ブロッキング**や**安全でないコンテンツ**などの組み込みガードレール。チェックを実行する**評価モデルサービス**(LLM ジャッジ)は事前選択されています。別のモデルを使用するには、**詳細オプション**を展開して選択します(選択するモデルにCAN_QUERYが必要です)。
    • カスタム : 「 カスタム関数 」をクリックし、次に「 関数の選択 」をクリックして、ステップ1で記述したSQL関数を選択します。
  7. フェーズ で、ポリシーが実行される場所を選択します: 入力ガードレール (ON CALL、サービスが呼び出される前)、 出力ガードレール (ON RESULT、応答後)、またはその両方。カスタム関数は両方のフェーズで実行でき、event:typeで分岐して1つにスコープを限定できます。一部の組み込みガードレールは、入力時のジェイルブレイク検出や出力時の幻覚検出のように、単一のフェーズでのみ実行されます。

  8. **ランク**を設定して評価順序を制御します。ランクが最も低いものがリクエストで最初に実行され、レスポンスで最後に実行されます。

  9. ポリシーの作成 」をクリックします。

ポリシーはサービスの**ポリシー**タブに表示されます。ベータ期間中は、伝播のためにしばらく時間を置き、その後にテストしてください。

注記

ベータ期間中、ポリシーUIが変更される可能性があります。ラベルがこれらのステップと異なる場合は、製品内のラベルに従ってください。

組み込みポリシーを使用する

Databricks は、個人を特定できる情報(PII)をブロックするための system.ai.block_pii など、system.ai カタログに組み込みサービス ポリシーを提供します。使用するには、ステップ 2に従い、 Guardrail typeCustom ではなく組み込みガードレールを選択します。組み込みガードレールではポリシー固有の設定は不要です。 PhaseRankEvaluator model サービス 、および Mode フィールドは、他のポリシーと同じように設定します。

組み込みポリシーの完全なリストについては、組み込みサービスポリシーを参照してください。

組み込みのポリシー関数に対してEXECUTE権限が、ターゲットサービスに対してMANAGE権限が必要です。

ポリシーを確認する

ポリシーをアタッチした後、それがアクティブであり、期待される結果を生成していることを確認してください。

注記

ポリシーをアタッチまたは変更した後、テストする前に変更が有効になるまでしばらくお待ちください。ベータ期間中、ポリシーの変更が反映されるまでに1、2分かかる場合があります。

アタッチの確認

Unity AI Gatewayで、対象のサービスを開き、アタッチされているポリシーを表示します。作成したポリシーがリストに表示されます。

「ポリシーの結果を監視する」

ポリシーが有効になっていることを確認できます。

  • 呼び出し元から : ポリシーがDENYを返すと、呼び出し元は指定したreasonを含む構造化エラーを受け取ります。ASKは人間の承認のために呼び出しを停止する。
  • システムテーブル では、モデルと MCP アクティビティが使用状況テーブルに記録され、完全なリクエストとレスポンスのペイロードが推論テーブルに記録されます。

制限事項

ベータ版では、次の制限が適用されます:

  • 変換 : サービスポリシーは決定 (ALLOW、DENY、またはASK) を返します。ベータ版では、リクエストまたはレスポンスのコンテンツは変換されません。
  • ポリシー言語 : カスタムポリシー関数はLANGUAGE SQLのみをサポートしています。
  • **適用範囲**:ポリシーの適用はUIのみであり、個々のサービスに限定されており、そのポリシーはすべてのアカウントユーザーに適用されます。カタログレベルまたはスキーマレベルでのポリシーの適用、属性ベースのアクセス制御 (ABAC) の条件、およびカスタムプリンシパルは利用できません。