ブログ 2024年06月03日

Kong Gateway 3.7をリリースしました!

英語によるオリジナルはこちらでご覧いただけます。

Kong Gateway 3.7ならびにKong Gateway Enterprise 3.7をリリースしました。OSS及びエンタープライズユーザー向けの様々な新機能が追加されていますが、中でもAI Gatewayが今回GAとマイルストーンとなるリリースとなりました。本リリースに含まれた機能としては、トレースにおけるコンテキスト伝播 (Context Propagation) 、より厳しい条件下におけるセキュリティ機能、そしてパフォーマンス改善等が挙げられます。合わせてExpressionルータ (正規表現ルート定義) の同時指定機能も追加されました。

主要な改善点を一つずつご紹介します。


AI Gateway GA – LLMの利用を加速 (OSS + Enterprise)

AI Gatewayが遂にGAを迎えました! Kong AI GatewayKong Gateway 3.6にて初めてベータとして公開されました。Kong AI Gatewayを利用することにより、ユーザーは組織内のAI利用者に対して以下のような機能を提供しています:

  • 1つのAPIから複数の大規模言語モデル (LLM) にアクセス
  • LLMサービスのAPIキーを一元管理
  • 組織におけるLLMの利用状況の把握
  • ノーコードのプロンプト拡張
  • LLMへの論理的なファイアーウォール

Kong Gateway 3.7ではこれら機能が全てGAとなりました。AI Gatewayの活用によってセキュアに、かつ組織的にLLMの活用が広がればと願っております。

併せて、Kong Gateway 3.7ではさらに以下の新機能や機能改善を追加しています:

  • AI Streamingのサポート
  • AIトークンをベースとした流量制限 (Advanced Rate Limiting)
  • AI Azure Content Safetyサポート
  • 動的URL指定
  • AIアナリティクスのフォーマット改善

これら機能の詳細はAI GatewayのGAに関するブログをご覧ください。

トレースヘッダのコンテキスト伝播 (OSS + Enterprise)

コンテキスト伝播を利用すると、アプリケーションの境界を超えたトレース情報の取得と可視化が可能となります。この機能を利用すると、組織内を跨る分散アプリケーションを跨るトラフィックからアクション可能な知見を抽出することができます。

Kong Gateway 3.7では、新しいトレース機能としてサービスを跨ぐリクエストを認識しコンテキスト伝播が出来るようになりました。

この新しいトレースモジュールでは柔軟なトレースヘッダの扱いが可能となります。ヘッダの抽出と挿入もさることながら、本モジュールではコンテキストを指定することができます。抽出後はリクエストからはクリアすることも、新たに別途追加する事も可能です。

Expressionルータ (正規表現ルート定義) の同時指定 (OSS + Enterprise)

Kong GatewayではJSONベースのルート定義とExpressionと呼ばれる正規表現ベースのルート指定が可能です。Kong Gateway Enterprise 3.0で追加されたExpressionルータは、Rustで新たに開発されたDSLによるルート指定の方法です。このルータは正規表現のような負荷の高い定義をショートサーキット評価する事により最適化したものです。パフォーマンス改善の観点では、このルートしての順序が重要となります。

こちらはExpressionルート指定の一例です。

# 正規表現を先に実行するパターン。遅い。
http.path ~ r#"/user/\d+/?"# && http.method == "GET"

# 文字列比較を先に実行するパターン。早い。
http.method == "GET" && http.path ~ r#"/user/\d+/?"#

この新しいExpressionルータはユーザーにも広く受け入れられましたが、一方既存のJSONによるルート定義からの移行は簡単ではありませんでした。最大の課題はKong GatewayがJSONもしくはExpressionのいずれかしか指定出来ない事でした。APIにとってクリティカルなこの定義を一斉に切り替えないといけないというタスクはそれなりに大きなチャレンジでした。

Kong Gateway 3.7では新しいマイグレーションパスとして、JSON、Expressionの両方を定義出来るようになりました。

3.7では、JSONとExpressionの両方をコントロールプレーンで指定が出来ます。これによりビジネスニーズやタイミングに沿って段階的にルーティング定義をJSONからExpressionに切り替えることが可能となります。

Expressionルータへの切り替えという投資は、パフォーマンス改善という面で大きなリターンが見込めます。

パフォーマンス改善 (OSS + Enterprise)

Kong Gateway 3.7では、キャッシュキー生成のアルゴリズムを見直す事により、以前のバージョンよりスループットが7%向上しました。詳細はこちらのブログをご覧ください。

認可リクエストのセキュリティ改善 (Enterprise)

認可リクエストオブジェクトに対するセキュリティ強化 – 認可リクエストによるアタックへの対抗として、OAuthならびにOIDCにおいてJWT Secured Auhtorization Frameworkを標準としました。

Kong Gateway 3.5より、OIDCプラグインにてPAR (Pushed Authorization Request) のサポートをスタートしました。3.7ではさらにJWTによるリクエストオブジェクトのリクエストフローと、拡張レスポンスモードをサポートします。

  • JWT Secured Authorization Requests (JAR) – 認可リクエストはこれまでURLクエリパラメータに含んで送られていました。このアプローチにはリクエストの傍受/操作によるman-in-the-middleアタックの可能性がありました。このアタックを防ぐ為に、リクエストをJWT内にエンコードするアプローチが標準となります。この機能により、認可サーバーはKongからの認可リクエストの真正性を確認する事ができます。またこの通信における機密性も保証されます。
  • JWT Secured Authorization Response Mode (JARM) – JARによる認可リクエストに加え、Kong GatewayではJARMによる認可レスポンスのセキュリティ強化をサポートします。これによりレスポンスにおける中間者攻撃を防げます。

これらPAR、JAR、JARMがKong Gateway 3.7でサポートされた事により、よりAPIに対するセキュリティ基準が高い環境においてもその要件を満たすことができます。

アクセストークンを利用した認可アタックへの対応 (Enterprise)

OAuth 2.0 Demonstrating Proof-of-Posession (DPoP) – DPoPはリクエスト送信者自身がアクセストークンとリフレッシュトークンの妥当性を保証する、アプリケーションレベルのアプローチです。このアプローチは高いセキュリティ要件が必要とされる環境(金融、e-Gov、e-Health) で採用されており、さらに高いセキュリティレイヤーと考えられています。

Kong Gateway 3.5ではmTLSによる送信者に紐付くトークンを利用する機能が利用出来るようになりました。3.7よりOAuth 2.0 DPoPのサポートによってアプリケーションレイヤーにおいても非対称暗号 (Asymmetric Cryptography) とJWTの利用が可能となります。

Next Step

Kong Gateway Enterprise 3.7は重要なアップデートであり、組織のセキュリティとコンプライアンスへの対応レベルを高めるリリースとなります。我々にとってこの改善をお届け出来る事は大変喜ばしい事であり、皆さんからのフィードバックを是非頂きたいと思っております。

Kongの初めての利用には是非Kong Konnectの無料版をご検討ください。

Kong Gateway 3.7は無料でダウンロードし利用する事ができます。さらに詳しく調べたいときにはこちらのオフィシャルドキュメントをご参照ください。このリリースに含まれるすべての機能、改善、バグフィックス等はCHANGELOGをご参照ください。Kong Gateway EnterpriseのCHANGELOGはこちらKong Gateway OSSのCHANGELOGはこちらからアクセスできます。