---
title: 推論フックを設定する
url: https://platform.claude.com/docs/ja/manage-claude/inference-hooks-configuration
description: Claude Enterprise組織で推論フックを許可し、AIセキュリティサーバーを接続して、適用、障害時の処理、ロールアウトを制御します。
---

<Note>
  推論フックは、Claude Enterprise組織でのみ利用できます。設定には`organization:manage`権限が必要です。この権限を持つのはオーナーロールとプライマリオーナーロールのみです。
</Note>

推論フックは、組織からのプロンプトを、選択した「AI security server」（AIセキュリティサーバー）に送信します。そして、Claudeが処理する前に、各リクエストを許可または拒否の「verdict」（判定）が返るまで保留します。このページでは、機能の有効化、サーバーの接続、適用の制御について順を追って説明します。推論フックの概要と使用すべき場面については、[推論フックの概要](https://platform.claude.com/docs/ja/manage-claude/inference-hooks)を参照してください。AIセキュリティサーバー自体を構築するには、[推論フックインテグレーションを開発する](https://platform.claude.com/docs/ja/manage-claude/inference-hooks-endpoint)を参照してください。

## 始める前に

次のものが必要です。

* claude.aiでの`organization:manage`権限。この権限を持つのは**オーナー**ロールと**プライマリオーナー**ロールのみで、**管理者**ロールにはありません。
* 判定リクエストを受け付けるAIセキュリティサーバーのHTTPSエンドポイント。ポート443の`https://` URLで、パブリックにルーティング可能なホスト上にあり、リダイレクトなしで到達できる必要があります。リバーストンネルのホスト（ngrokや同様のトンネルサービス）はサポートされていません。Anthropicのネットワークポリシーによってブロックされるためです。トンネル経由でテストせず、自分が管理するドメインでサーバーをホストしてください。[ホスティング要件](https://platform.claude.com/docs/ja/manage-claude/inference-hooks-endpoint#receive-a-request)の全体、およびサーバーの構築方法と署名付きリクエストの検証方法については、[推論フックインテグレーションを開発する](https://platform.claude.com/docs/ja/manage-claude/inference-hooks-endpoint)を参照してください。

## 推論フックをセットアップする

適用には3つの状態があります。

* **オフ：** **判定を適用する**がオフの場合、AIセキュリティサーバーには一切接続されず、プロンプトは検査されません。
* **シャドウ：** **判定を適用する**がオンで、**モード**が**シャドウモード**に設定されている場合、AIセキュリティサーバーはプロンプトを受信して判定を返しますが、何もブロックされません。
* **適用中：** **判定を適用する**がオンで、**モード**が**リクエストを許可する**または**リクエストをブロック**に設定されている場合、拒否判定によってリクエストがブロックされます。

以下の手順では、新しい設定をオフから適用中の状態にします。

<Steps>
  <Step title="組織で推論フックを許可する">
    claude.ai > **組織設定** > **データとプライバシー**に移動し、**推論フック**セクションを見つけます。**組織に対して許可する**をオンにします。

    これをオンにすると推論フックの設定ページが利用可能になり、**判定を適用する**は常に強制的にオフになります。そのため、機能を許可しただけで検査が開始されることはありません。以前に適用がオンになっていた設定であっても、最後の手順で**判定を適用する**を再びオンにするまでは検査されないままです。
  </Step>

  <Step title="推論フックの設定ページを開く">
    引き続き**データとプライバシー**で、**推論フック**セクションを開いて推論フックの設定ページに移動します。このページは設定ナビゲーション内の独立した項目ではなく**データとプライバシー**の下に配置されているため、パンくずリストには**データとプライバシー / 推論フック**と表示されます。エンドポイントを保存するまで、ページにはプロンプトがまだ検査されていないという警告が表示され、**判定を適用する**は**エンドポイントが必要**バッジ付きでオフのままです。
  </Step>

  <Step title="エンドポイントを設定する">
    **設定**をクリックして**エンドポイントを設定する**ダイアログボックスを開き、**エンドポイント URL**を入力します。これは判定リクエストを受信する`https://` URLです。`https://` URLのみが受け付けられます。

    この時点でダイアログボックスが求めるのはこれだけです。カスタムリクエストヘッダーは手順5で、障害処理は手順6で設定します。**次へ**をクリックして保存します。エンドポイントが保存されると、ボタンの表示は**編集**に変わります。
  </Step>

  <Step title="署名シークレットを保管する">
    最初の保存時に「webhook signing secret」（Webhook署名シークレット）が生成され、一度だけ表示されます。**次へ**をクリックする前にコピーして安全に保管してください。シークレットは後から取得できず、[ローテーション](https://platform.claude.com/docs/ja/manage-claude/inference-hooks-configuration#rotate-your-signing-secret)のみが可能です。

    AIセキュリティサーバーはこのシークレットを使用して、次の手順の接続テストを含め、受信するすべてのリクエストの署名を検証します。検証手順については、[署名を検証する](https://platform.claude.com/docs/ja/manage-claude/inference-hooks-endpoint#verify-the-signature)を参照してください。
  </Step>

  <Step title="リクエストヘッダーを追加して接続をテストする">
    署名シークレットのダイアログボックスで**次へ**をクリックすると、エンドポイントのダイアログボックスが再び開き、2つのコントロールが追加されています。

    * **カスタムリクエストヘッダー：** すべての判定リクエストとともに送信される最大16個の静的ヘッダーで、AIセキュリティサーバーが呼び出し元を認証できるようにします。ヘッダーの値は暗号化されて保存され、二度と表示されません。保存後はヘッダー名のみが表示されます。値は書き込み専用であるため、ヘッダーへの変更を保存するにはすべての値を再入力する必要があります。エンドポイントURLを変更すると、認証情報が新しい宛先に送信されないよう、保存されているすべてのヘッダー値がクリアされます。URLを変更した後は再入力してください。ヘッダー名には標準的なHTTPトークン文字を使用し、`_`ではなく`-`を使用する必要があります。また、予約名（`Content-*`や`Host`などのリクエストフレーミングヘッダー、プロキシおよびCookieヘッダー、`X-Forwarded-*`などのクライアントアドレスヘッダー、`webhook-*`署名ヘッダー、`X-Anthropic-*`プレフィックス）と衝突してはなりません。値は印字可能なASCIIである必要があります。
    * **接続をテスト：** Claudeは、保存済みの値ではなく、現在フォームに入力されているURLとヘッダーに合成テストプロンプトを送信します。そのため、テストの前に保存済みのヘッダー値を再入力してください。成功すると、AIセキュリティサーバーがテストプロンプトに対して許可と拒否のどちらの判定を返したかが結果に表示されます。これにより、適用を開始する前に、すべてを拒否するデフォルト設定に気付くことができます。また、その1回のテストリクエストについてAnthropicが測定したラウンドトリップ時間も表示されます。これは新しい接続上で、接続ハンドシェイクを含めて測定されたものです。

    **保存**をクリックして、入力したヘッダーを保存します。

    よくある失敗結果：

    | 結果            | 確認事項                                                                                       |
    | ------------- | ------------------------------------------------------------------------------------------ |
    | URLが拒否された     | URLが構造チェックに失敗しました。ポート443上の`https://` URLを使用してください。                                         |
    | プライベートまたは内部IP | URLのホストがプライベートまたは内部IPアドレス、IPv6アドレス、または`localhost`です。パブリックにルーティング可能なホストを使用してください。           |
    | タイムアウト        | AIセキュリティサーバーがタイムアウト内に判定を返しませんでした。                                                          |
    | トランスポートエラー    | DNS解決、TLSハンドシェイク、または接続が失敗したか、ホスト名がプライベートアドレスに解決されました。                                      |
    | 200以外のステータス   | AIセキュリティサーバーが200以外のステータスで応答しました。判定はHTTP 200で返す必要があります。リダイレクトは追跡されず、失敗として扱われます。             |
    | 解析できないレスポンス   | AIセキュリティサーバーは応答しましたが、本文が有効な判定ではありません。                                                      |
    | 署名シークレットが必要   | 組織に署名シークレットがないため、テストは署名なしで送信されることになります。**リクエスト署名**の下にある**シークレットを生成**をクリックしてから、再度テストしてください。 |
  </Step>

  <Step title="障害時の処理とタイムアウトを選択する">
    **障害時の処理**の下で**モード**を設定し、AIセキュリティサーバーに到達できない場合や判定がタイムアウトした場合の動作を選択します。

    * **リクエストをブロック：** AIセキュリティサーバーが判定を返せない場合に推論を停止します（「fail closed」（フェイルクローズ））。
    * **リクエストを許可する：** 検査なしでリクエストをモデルに進めます（「fail open」（フェイルオープン））。

    ドロップダウンメニューの3番目のオプションである**シャドウモード**は、障害ポリシーではなくロールアウト用のツールです。[シャドウモード](https://platform.claude.com/docs/ja/manage-claude/inference-hooks-configuration#shadow-mode)を参照してください。

    次に、**プロンプト判定タイムアウト（ms）**&#x3092;設定します。1〜10,000msで、デフォルトは5,000msです。この時間枠はやり取り全体をカバーし、これより遅い判定はサーバーに到達できない場合と同様に扱われるため、サーバーが確実に満たせる最小の値を設定してください。

    このセクションの変更は、変更するたびに保存されます。最初の保存時のデフォルトは**リクエストを許可する**と5,000msです。
  </Step>

  <Step title="ロールアウト率を選択する">
    **ロールアウト**の下で**検査対象リクエスト（%）**&#x3092;設定すると、AIセキュリティサーバーを立ち上げている間、リクエストの一定割合に対して検査を実行できます。値の範囲は0〜100で、100ではすべてを検査し、0では検査がオフになります。

    各リクエストは会話ターン全体に対して一度だけ抽選されるため、1つの会話がターンをまたいで部分的に検査される場合があります。サンプリングされた割合に含まれないリクエストは、障害時の処理が**リクエストをブロック**に設定されている場合でも、検査なしで処理されます。
  </Step>

  <Step title="「判定を適用する」をオンにする">
    最初は誰もブロックせずにライブトラフィックに対する判定を評価するには、適用をオンにする前に**モード**を**シャドウモード**に設定します（手順6）。[シャドウモード](https://platform.claude.com/docs/ja/manage-claude/inference-hooks-configuration#shadow-mode)を参照してください。

    **判定を適用する**をオンにすると、管理対象のすべてのプロンプトについて、ClaudeがAIセキュリティサーバーの判定に従うようになります。その後、障害処理の選択内容が再表示されるダイアログボックスで確認します。変更がすべてのAnthropicサーバーに反映されるまで約1分かかります。すでに処理中のリクエストは以前の設定のまま完了します。オフにすると、同じく約1分以内にAIセキュリティサーバーへのプロンプト送信が停止します。設定は保持されます。

    **判定を適用する**の下にある**Validate tool calls**は、Claudeの各応答に含まれるツール呼び出しもAIセキュリティサーバーに送信し、実行前にその判定を待ちます。[ツール呼び出しフレーム](https://platform.claude.com/docs/ja/manage-claude/inference-hooks-endpoint#the-tool-call-frame)を参照してください。新しい設定ではデフォルトでオンになっています。**判定を適用する**がオフの間は効果がなく、**判定を適用する**と同様に、変更がすべてのAnthropicサーバーに反映されるまで約1分かかります。
  </Step>
</Steps>

## シャドウモード

「shadow mode」（シャドウモード）は、何もブロックせずにライブトラフィックに対してフックを実行します。AIセキュリティサーバーは、適用時とまったく同じように管理対象のプロンプトを受信して判定を返しますが、何もブロックされません。サーバーが拒否した場合や到達できない場合でも、すべてのリクエストはモデルに進み、エンドユーザーには何も表示されません。適用を開始する前に、組織の実際のトラフィックに対してポリシーを調整するために使用してください。**Validate tool calls**がオンの場合、シャドウモードでもサーバーはツール呼び出しフレームを受信し、ツール呼び出しはブロックされません。

シャドウモードを使用するには、**障害時の処理**の下で**モード**を**シャドウモード**に設定し、**判定を適用する**をオンにしてプロンプトがAIセキュリティサーバーに送られるようにします。有効な間、設定ページには**シャドウモード — ブロックなし**バッジが表示されます。シャドウモードを終了するには、**モード**を**リクエストを許可する**または**リクエストをブロック**に戻します。適用がオンになっていれば、判定が再び適用されます。

## 除外設定

**Who is inspected**（検査対象）の下で**Limit by role**（ロールで制限）をオンにすると、メンバーが推論フックの対象外となるロールを選択できます。これらのロールのプロンプトはAIセキュリティサーバーに送信されません。除外できるのは組織が作成したカスタムロールのみで、組み込みロールは選択肢に表示されません。プレースホルダーに**除外するロールを選択**と表示されているロールセレクターでロールを選択し、各ロールを持つユーザーはロール管理ページ（**ロールを管理**）で管理します。除外の変更にはID管理権限が必要です。リストはデフォルトで空であり、除外されたロールがない場合、**Inspect**（検査）が**Only selected roles**（選択したロールのみ）に設定されていない限り、管理対象のすべてのリクエストが検査されます。

除外はユーザーのインタラクティブセッションに適用されます。除外リストへの変更は、組織の[アクティビティフィード](https://platform.claude.com/docs/ja/manage-claude/compliance-activity-feed)にロール権限の変更（`rbac_role_permission_added`および`rbac_role_permission_removed`）として記録されます。

### 選択したロールのみを検査する

**Who is inspected**セクションのすべての項目は、1つのスイッチ**Limit by role**の背後にあります。スイッチをオンにすると、**Inspect**は**Everyone except excluded roles**の状態で始まり、上述のとおりその下で除外ロールを選択します。

まず組織の一部で推論フックを試すには、**Limit by role**をオンにし、**Inspect**を**Only selected roles**に設定して、開いたダイアログボックスでロールを選択します。それ以降は、**カスタムロール**に設定され、かつ選択したロールが割り当てられているメンバーのみが検査されます。**ユーザー**や**オーナー**など、他のロールに設定されているメンバーは、選択したロールが割り当てられていても検査されません。**オーナー**または**プライマリオーナー**に設定されている場合は、自分自身も含まれます。切り替える前に、除外ロールをすべて削除してください。組織は除外と選択ロールのどちらか一方を使用し、両方を使用することはできません。切り替え後は、**Inspect**の下にあるロールセレクターでロールを追加または削除します。全員の検査に戻すには、**Limit by role**をオフにします。確認すると、すべての除外ロールが削除され、**Only selected roles**がオフになります。

**Only selected roles**が設定されている間：

* **機能アクセス**が**すべての機能**または**すべて一般提供中**であるカスタムロールも、他のロールと同様に、選択した場合にのみ対象となります。
* **カスタムロール**に設定されたメンバーのうち、選択したロールが割り当てられているメンバーがいない場合、どのメンバーも検査されません。
* APIキーで行われたリクエストやSlackでのClaude Tagの会話など、メンバーが関与しないリクエストは検査されません。

**Inspect**の変更と検査対象ロールの変更は、組織の[アクティビティフィード](https://platform.claude.com/docs/ja/manage-claude/compliance-activity-feed)に記録されます。

## カスタムブロック済みプロンプトメッセージ

**カスタムブロック済みプロンプトメッセージ**の下で、AIセキュリティサーバーがリクエストを拒否したときにエンドユーザーに表示されるエラーに追加される、最大500文字のカスタムテキストを設定します（通常は連絡先や例外の申請先など）。最終的なメッセージは、AIセキュリティサーバーのリクエストごとの`deny_reason`（存在する場合）、空行、そしてこのテキストの順になります。カスタムテキストが設定されていない場合は、管理者に連絡するようユーザーに案内する組み込みのデフォルトが使用されます。追加メッセージを完全にオフにして、ユーザーに`deny_reason`のみを表示させることもできます。

## AIセキュリティサーバーを監視する

推論フック設定ページのエンドポイントヘルス領域には、以下が表示されます。

* **エンドポイントのステータス：** Healthy、Tripped、適用停止中、またはエンドポイントが保存される前の未設定。
* **1 分あたりの失敗数：** 過去2分間のWebhook失敗数の平均。
* **ブロック率：** AIセキュリティサーバーの判定に占める拒否の割合。ロールアウト率が100未満の間に表示されます。
* **サーキットブレーカーが作動しました：** サーキットブレーカーが作動したことがある場合、最後に作動した日時。
* **最近のエラー：** 各エントリには、失敗が発生した日時、エラータイプ、カテゴリが表示されます。カテゴリは、エンドポイントまたはエンドポイントへの接続に問題がある場合は`webhook_error`、Anthropicのシステム内部で失敗した場合は`relay_error`です。`DlpWebhookStatusError`エントリには、AIセキュリティサーバーが返したHTTPステータスと、Anthropicが送信したリクエスト本文のサイズ（`HTTP 413` · `1.3 MB`など）も表示されることがあります。エントリにリクエスト内容やエンドポイントURLが含まれることはありません。リストには直近10件の失敗が保持され、最後の失敗から1時間後にクリアされます。

**最近のエラー**のエラータイプの意味は次のとおりです。

| 表示されるエラー                                             | 意味                                                                                                                                            | サーキットブレーカーのカウント対象 |
| ---------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- |
| `DlpWebhookTimeoutError` · `webhook_error`           | AIセキュリティサーバーが、設定した**プロンプト判定タイムアウト（ms）**&#x5185;に判定を返しませんでした。                                                                                  | はい                |
| `DlpWebhookStatusError` · `webhook_error`            | AIセキュリティサーバーが、リダイレクトなど200以外のHTTPステータスで応答しました。                                                                                                 | はい                |
| `DlpWebhookResponseError` · `webhook_error`          | AIセキュリティサーバーは200で応答しましたが、本文が有効な判定ではないか、64 KiBを超えています。                                                                                         | はい                |
| `DlpWebhookTransportError` · `webhook_error`         | 完全な応答が届く前に接続が失敗または切断されました。たとえば、ホスト名が解決されなかった、またはプライベートアドレスに解決された、接続が拒否またはリセットされた、TLSハンドシェイクが失敗した、などです。Anthropic側のネットワークの問題もこのように表示される場合があります。 | いいえ               |
| `DlpWebhookDisallowedAddressError` · `webhook_error` | エンドポイントURLのホストがプライベートまたは内部IPアドレス、IPv6アドレス、または`localhost`です。そのようなアドレスに解決されるホスト名は、代わりにトランスポートエラーとして表示されます。                                      | はい                |
| `DlpWebhookBlockedError` · `webhook_error`           | エンドポイントURLがポート443上の`https://` URLではないか、解析できないため、リクエストは送信されませんでした。                                                                             | いいえ               |
| `DlpWebhookRelayError` · `relay_error`               | 失敗はAnthropicのシステム内部で発生しており、通常AIセキュリティサーバーには接続されていません。                                                                                         | いいえ               |

シャドウモードでは、どのエラーもサーキットブレーカーのカウント対象になりません。

このパネルはベストエフォートです。Anthropicがカウンターを読み取れない場合、パネル自体のエラーではなく、失敗ゼロ・エラーなしと表示されます。そのため、パネルが正常に見えることだけでは、AIセキュリティサーバーが正常であることの証明にはなりません。**1 分あたりの失敗数**は、サーキットブレーカーを作動させることのないネットワークエラーやDNSエラーを含むすべての失敗をカウントするため、**サーキットブレーカーが作動しました**の欄が空のままでも高い値になる場合があります。

## サーキットブレーカー

AIセキュリティサーバーに起因するWebhookの失敗が続くと、「circuit breaker」（サーキットブレーカー）が作動し、適用が停止します。サーバーには接続されなくなり、検査対象のすべてのリクエストに**障害時の処理**の選択が適用されます。**リクエストをブロック**を選択している場合、ブレーカーがリセットされるまで、組織のユーザーはブロックされます。ブレーカーが作動すると、claude.aiの通知センターで管理者にも通知されます。

各作動は、組織の[アクティビティフィード](https://platform.claude.com/docs/ja/manage-claude/compliance-activity-feed)にも`inference_hooks_circuit_breaker_tripped`アクティビティとして記録されます。そのため、セキュリティチームやベンダーは、フィードを取り込むSIEMなど、すでに運用している監視から作動についてアラートを出すことができます。アクティビティは影響を受けたリクエストごとではなく、作動ごとに1件記録されます。記録には組織でCompliance APIが有効になっている必要があります。[Compliance APIをセットアップする](https://platform.claude.com/docs/ja/manage-claude/compliance-api-access)を参照してください。

復旧するには、サーバーを修正してから**判定を適用する**を再びオンにしてブレーカーをリセットします。

ブレーカーは自動的にリセットされることもあります。作動から10分後以降、Anthropicはバックグラウンドでテストリクエストを送信し、サーバーが復旧したかどうかを最大で約1分に1回確認します。ユーザーのリクエストは関与しません。サーバーが有効な判定（許可または拒否）で応答すると、ブレーカーはリセットされ、適用が再開されます。そうでない場合、ブレーカーは作動したままで、確認が続行されます。

自動復旧は、作動後に推論フックの設定が変更されていない間のみ実行されます。作動後に署名シークレットのローテーションを含む推論フックの設定を変更すると、確認が停止し、ブレーカーは自動的にはリセットされなくなります。サーバーを修正したら**判定を適用する**を再びオンにしてください。自動復旧は作動にのみ適用されます。自分で**判定を適用する**をオフにした場合、再びオンにするまで適用はオフのままです。

## 署名シークレットをローテーションする

**リクエスト署名**の下にある**シークレットをローテート**をクリックして、署名シークレットを置き換えます。組織にまだシークレットがない場合、同じボタンは**シークレットを生成**と表示され、最初のシークレットを作成します。ローテーションは即時切り替えです。新しいシークレットが生成されて一度だけ表示され、古いシークレットは取得できなくなり、両方のシークレットで署名されるリクエストは存在しないため、頼れる重複期間はありません。

以前のシークレットで署名されたリクエストが、ローテーション後も短時間届く可能性があります。AIセキュリティサーバーが切り替えをどのように処理すべきかについては、[署名を検証する](https://platform.claude.com/docs/ja/manage-claude/inference-hooks-endpoint#verify-the-signature)で説明しています。

## 監査証跡

推論フックのアクティビティは、組織の[アクティビティフィード](https://platform.claude.com/docs/ja/manage-claude/compliance-activity-feed)に記録されます。設定の変更、拒否、サーキットブレーカーの作動、および判定を取得できなかったために検査なしで処理されたリクエストが対象です。最後の種類は、**判定を適用する**がオンで**モード**が**リクエストを許可する**の場合にのみ記録されます。その理由は、`endpoint_timeout`、AIセキュリティサーバーの呼び出しにおけるその他の問題の場合は`endpoint_error`、Anthropic側の失敗の場合は`internal_error`です。**リクエストをブロック**または**シャドウモード**では、失敗したリクエストは個別に記録されません。サーキットブレーカーの自動復旧は、どのモードでも記録されません。サーキットブレーカーが作動している間は、リクエストごとの推論フックアクティビティは記録されません。作動アクティビティが、その期間に関するフィードの記録となります。拒否の記録には、各拒否を自社システム内の対応する記録と結合できる識別子が含まれます。

## 推論フックをオフにする

オフには2つのレベルがあります。

* 推論フック設定ページで**判定を適用する**をオフにする：約1分以内に、組織からのプロンプトがAIセキュリティサーバーに送信されなくなります。すでに処理中のリクエストは以前の設定のまま完了します。設定ページは引き続き利用できるため、AIセキュリティサーバーの作業中に適用を一時停止する場合に使用します。
* **組織に対して許可する**をオフにする（**データとプライバシー**設定）：プロンプトは検査されなくなり、再びオンにするまで推論フックの設定は利用できなくなります。どちらの場合も、エンドポイントの設定、カスタムヘッダー、署名シークレットは保持されます。再びオンにすると、**判定を適用する**は強制的にオフになり、作動中のサーキットブレーカーはクリアされます。準備ができたら、適用を再びオンにしてください。

## 次のステップ

<CardGroup cols={2}>
  <Card title="推論フックインテグレーションを開発する" href="https://platform.claude.com/docs/ja/manage-claude/inference-hooks-endpoint">
    AIセキュリティサーバーを構築します。リクエストと判定のスキーマ、署名の検証、運用上のセマンティクスについて説明します。
  </Card>

  <Card title="推論フックの概要" href="https://platform.claude.com/docs/ja/manage-claude/inference-hooks">
    推論フックとは何か、判定のやり取りの仕組み、AIセキュリティサーバーに送信される内容について説明します。
  </Card>
</CardGroup>
