Kong AIゲートウェイ統合のCato AIセキュリティへの設定

Prev Next

この記事は、ホームグロウンエージェントのポリシー監視と執行のために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ゲートウェイガードを作成してください。

ガードを作成するには:

  1. ナビゲーションメニューから AIセキュリティ > Guards を選択します。
  2. 新規 をクリックします。
  3. ガード名 にガードの名前を入力します。 例えば、Kong AI ゲートウェイ。
  4. タイプで AI ゲートウェイを選択します。
  5. AIゲートウェイ統合タイプでKongを選択します。
  6. ガードのホストで、デプロイに適した Cato クラウド またはアウトポストを選択します。
  7. 保存をクリックします。

ガードを保存すると、Kongからのトラフィックを受信する準備が整います。 ポリシールールを設定するまで、ガードはルールを施行しません。

Kong AIゲートウェイを設定

Kong AIカスタムガードレールプラグインをガードAPIキーで設定します。 プラグインはCatoにAIトラフィックを送信して検査し、Catoがブロックアクションを返すとリクエストをブロックします。

ガード接続の詳細を取得

ガード接続の詳細を取得するには:

  1. ナビゲーションメニューから AIセキュリティ > Guards を選択します。
  2. Kong AIゲートウェイ ガードを選択します。
  3. デプロイメント タブを選択します。
  4. ガード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はテキストのみ検査します。 画像コンテンツは検査されません。

プラグインを設定するには:

  1. 次の設定を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
    
  2. <CATO_AI_SECURITY_API_BASE_URL>をCMAリージョンのためのCato AIセキュリティAPIベースURLに置き換えます。

  3. 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>
    
  4. 構成を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に到達していることを確認します。

ゲートウェイトラフィックを検証するには:

  1. アプリからKong AIゲートウェイを通じてテストプロンプトを送信します。
  2. ナビゲーションメニューから、AIセキュリティ > インタラクションエクスプローラー を選択します。
  3. ガード リストから、Kong AIゲートウェイ ガードでフィルターします。
  4. テストセッションがテーブルに表示されることを確認します。

ホームグロウンエージェントをマッピングする前に、ホームグロウンエージェント 列はトラフィックにダッシュ(-)を示します。 これは予期されています。

ホームグロウンエージェントをガードにマッピングする

各ホームグロウンエージェントを、認証としてKongコンシューマー名にマッピングします。 Catoはこれらのマッピングを使用して、Kongトラフィックを正しいホームグロウンエージェントに帰属させます。

ホームグロウンエージェントをマッピングするには:

  1. Kongで、ホームグロウンエージェントのためのコンシューマーユーザーネームを識別します。
  2. ナビゲーションメニューから AIセキュリティ > Guards を選択します。
  3. Kong AIゲートウェイ ガードを選択します。
  4. 設定 タブを選択します。
  5. マップされたホームグロウンエージェントの下で、ホームグロウンエージェントをマップするホームグロウンエージェントを選択 リストから選択します。
  6. Kongコンシューマー名 にステップ1のコンシューマーユーザーネームを入力します。
  7. 保存をクリックします。

マッピングは、マップされたホームグロウンエージェントテーブルに表示されます。 それを削除するには、その行の削除アイコンをクリックします。

エージェント帰属の検証

Catoがトラフィックをマッピングされたホームグロウンエージェントに帰属させることを確認します。

エージェント帰属を検証するには:

  1. マップされたコンシューマーを使用してKongを通じてテストリクエストを送信します。
  2. ナビゲーションメニューから、AIセキュリティ > インタラクションエクスプローラー を選択します。
  3. ビューをマップされたホームグロウンエージェントでフィルタリングします。
  4. ホームグロウンエージェント列がマップされたエージェントを表示していることを確認します。

マッピングが正しい場合、インタラクションエクスプローラーはダッシュの代わりにホームグロウンエージェント名を表示します。