この記事は、ホームグロウンエージェントのポリシー監視と執行のためにKong AIゲートウェイをCato AIセキュリティと統合する方法についての情報を提供します。
概要
Cato AIセキュリティは、既存のKong AIゲートウェイを通過するAIトラフィックのポリシー検査と施行を可能にします。 各アプリケーションを個別に設定する代わりに、ゲートウェイをCatoガードに接続し、ゲートウェイトラフィックに対する集中的なモニタリングとポリシー施行を適用します。
この記事は、Kong AIゲートウェイの統合を設定し、ホームグロウンエージェントをマッピングし、インタラクションエクスプローラーでポリシー施行を検証する方法を説明します。
前提条件
はじめる前に、これらの要件が満たされていることを確認してください。
- アプリケーションライセンスのAIセキュリティ
- AIセキュリティ > ガードおよびAIセキュリティ > ガード間インタラクションポリシーの管理者権限
- Kongコンシューマーは、Kongキー認証プラグインで認証を行います。
- Kong AIゲートウェイ構成のデック
kong.yamlの作成と適用へのアクセス - Kong Konnectの個人アクセス トークンとコントロールプレーン名。 Kong Konnectの個人アクセス トークンページからトークンを作成します
- Kong AIカスタムガードレール プラグインのデプロイ権限
- Kong AIゲートウェイを通過するトラフィックを送信するテスト アプリまたはクライアント
- KongからCato AIセキュリティAPIエンドポイントへのネットワークアクセス (CMAリージョンの場合)
設定ワークフロー
統合はこれらの段階を含みます。
| ステージ | タスク | 結果 |
|---|---|---|
| 1 | AIゲートウェイガードの作成 | Catoはガードを作成し、KongのAPIキーを提供します。 |
| 2 | Kongを設定 | KongはCatoにAIトラフィックを送信して検査します。 |
| 3 | ゲートウェイトラフィックの検証 | Catoはインタラクションエクスプローラーでガードからのトラフィックを表示します。 |
| 4 | ホームグロウンエージェントのマッピング | CatoはKongコンシューマートラフィックをホームグロウンエージェントに帰属させます。 |
AIゲートウェイガードの作成
KongトラフィックのためのCato執行ポイントを定義するためにAIゲートウェイガードを作成してください。
ガードを作成するには:
- ナビゲーションメニューから AIセキュリティ > Guards を選択します。
- 新規 をクリックします。
- ガード名 にガードの名前を入力します。 例えば、
Kong AI ゲートウェイ。 - タイプで AI ゲートウェイを選択します。
- AIゲートウェイ統合タイプでKongを選択します。
- ガードのホストで、デプロイに適した Cato クラウド またはアウトポストを選択します。
- 保存をクリックします。
ガードを保存すると、Kongからのトラフィックを受信する準備が整います。 ポリシールールを設定するまで、ガードはルールを施行しません。
Kong AIゲートウェイを設定
Kong AIカスタムガードレールプラグインをガードAPIキーで設定します。 プラグインはCatoにAIトラフィックを送信して検査し、Catoがブロックアクションを返すとリクエストをブロックします。
ガード接続の詳細を取得
ガード接続の詳細を取得するには:
- ナビゲーションメニューから AIセキュリティ > Guards を選択します。
- Kong AIゲートウェイ ガードを選択します。
- デプロイメント タブを選択します。
- ガードAPIキー の一つをコピーします。
各ガードには2つのAPIキーがあります。 トラフィック検査を中断しないために、資格情報を回転させるときに未使用のキーを使用してください。
Kong AIカスタムガードレール プラグインを設定
プラグインは次の設定を使用します:
| フィールド | 説明 |
|---|---|
guarding_mode |
Catoが検査するトラフィックを指定します:INPUT、OUTPUT、またはBOTH |
stop_on_error |
true の場合、KongがCatoに到達できないとトラフィックをブロックします。 Catoが利用できない場合はfalse に設定してトラフィックを許可します。 |
api_key |
CatoガードへのKongの認証 |
api_base |
Cato AIセキュリティAPIのベースURL (CMAリージョン用) |
Catoはテキストのみ検査します。 画像コンテンツは検査されません。
プラグインを設定するには:
-
次の設定を
kong.yamlとして保存します。_format_version: "3.0" plugins: - name: ai-custom-guardrail config: guarding_mode: BOTH text_source: concatenate_all_content stop_on_error: true params: api_key: "${{ env \"DECK_CATO_API_KEY\" }}" api_base: "<CATO_AI_SECURITY_API_BASE_URL>" request: url: $(conf.params.api_base)/fw/v1/analyze headers: Authorization: Bearer $(conf.params.api_key) Content-Type: application/json x-cato-gateway-key-alias: "$(get_key_alias)" body: messages: "$(build_messages)" response: block: "$(check_response.block)" block_message: "$(check_response.block_message)" ssl_verify: true functions: get_key_alias: | return function() local c = kong.client.get_consumer() return (c and (c.username or c.id)) or "" end check_response: | return function(resp) local ra = resp and resp.required_action local block = type(ra) == "table" and ra.action_type == "block_action" local reason if block then reason = ra.detection_message or "Blocked by Cato Networks guardrail" else reason = "Allowed by Cato Networks guardrail" end return { block = block, block_message = reason, } end build_messages: | return function(content, source) if source == "OUTPUT" then return { { role = "assistant", content = content } } end local body = kong.request.get_body() if body and body.messages then return body.messages end return { { role = "user", content = content } } end -
<CATO_AI_SECURITY_API_BASE_URL>をCMAリージョンのためのCato AIセキュリティAPIベースURLに置き換えます。 -
Kong KonnectとCatoの資格情報を環境変数として設定します。
export KONNECT_TOKEN=<your-kong-konnect-personal-access-token> export DECK_KONNECT_TOKEN=$KONNECT_TOKEN export DECK_KONNECT_CONTROL_PLANE_NAME=<your-control-plane-name> export DECK_KONNECT_CONTROL_PLANE_REGION=<region>.api.konghq.com export DECK_CATO_API_KEY=<guard-api-key> -
構成をKong制御プレーンに適用します。
deck gateway sync kong.yaml
ガードAPIキーを安全に保管してください。 環境変数またはシークレットマネージャを使用し、キーをソースコントロールにコミットしないでください。
Kong統合の動作
- レスポンス側で、Kongはカスタムガードレールプラグインにアシスタントの返信テキストのみを公開します。 ツールの呼び出しはリアルタイムで公開されないため、Catoは実行前に検査やブロックができません。 Catoは、モニタリングのために後続のリクエストで受け取ります。
- 統合はデフォルトで閉じる失敗をします。 Catoが到達不可能な場合、Kongはトラフィックをブロックします。 利用可能性が厳密な施行よりも重要な場合は、
stop_on_errorをfalseに設定してフェールオープン動作を使用します。 - Kongはカスタムガードレールプラグインを使用したサーバー送信イベント(SSE)検査をサポートしていません。 LLMレスポンスがストリームされるとき、Catoはユーザーメッセージやツールレスポンスのみを検査できます。
- 統合はOpenAIチャット完了API形式をサポートしています。
Catoでのゲートウェイトラフィックの検証
インタラクションエクスプローラーを使用して、KongトラフィックがCatoに到達していることを確認します。
ゲートウェイトラフィックを検証するには:
- アプリからKong AIゲートウェイを通じてテストプロンプトを送信します。
- ナビゲーションメニューから、AIセキュリティ > インタラクションエクスプローラー を選択します。
- ガード リストから、Kong AIゲートウェイ ガードでフィルターします。
- テストセッションがテーブルに表示されることを確認します。
ホームグロウンエージェントをマッピングする前に、ホームグロウンエージェント 列はトラフィックにダッシュ(-)を示します。 これは予期されています。
ホームグロウンエージェントをガードにマッピングする
各ホームグロウンエージェントを、認証としてKongコンシューマー名にマッピングします。 Catoはこれらのマッピングを使用して、Kongトラフィックを正しいホームグロウンエージェントに帰属させます。
ホームグロウンエージェントをマッピングするには:
- Kongで、ホームグロウンエージェントのためのコンシューマーユーザーネームを識別します。
- ナビゲーションメニューから AIセキュリティ > Guards を選択します。
- Kong AIゲートウェイ ガードを選択します。
- 設定 タブを選択します。
- マップされたホームグロウンエージェントの下で、ホームグロウンエージェントをマップするホームグロウンエージェントを選択 リストから選択します。
- Kongコンシューマー名 にステップ1のコンシューマーユーザーネームを入力します。
- 保存をクリックします。
マッピングは、マップされたホームグロウンエージェントテーブルに表示されます。 それを削除するには、その行の削除アイコンをクリックします。
エージェント帰属の検証
Catoがトラフィックをマッピングされたホームグロウンエージェントに帰属させることを確認します。
エージェント帰属を検証するには:
- マップされたコンシューマーを使用してKongを通じてテストリクエストを送信します。
- ナビゲーションメニューから、AIセキュリティ > インタラクションエクスプローラー を選択します。
- ビューをマップされたホームグロウンエージェントでフィルタリングします。
- ホームグロウンエージェント列がマップされたエージェントを表示していることを確認します。
マッピングが正しい場合、インタラクションエクスプローラーはダッシュの代わりにホームグロウンエージェント名を表示します。