Kong が、ネイティブ gRPC プロキシ、アップストリーム相互 TLS 認証サポートその他多くの機能を追加した Kong 1.3 をリリース

本日、Kong 1.3 のリリースを発表できることを嬉しく思います。Kong のエンジニア チームと素晴らしいコミュニティは、この 1.3 リリースで多くの機能と改善案を提供しています。1.2 リリースの成功に基づくバージョン 1.3 では、gRPC プロキシやアップストリーム相互 TLS 認証における初のネイティブ サポートを提供し、多数の新機能とパフォーマンスの改善をサポートしています。Kong 1.3 の新機能、改善点、修正点、およびこれらのエキサイティングな変更を活用する方法について、詳しくは以下をご参照ください。 また、詳細については、変更ログアップグレード パスもご覧ください。

ネイティブ gRPC プロキシ

マイクロサービス アーキテクチャに移行するユーザーの数が増加するとともに、ユーザーが gRPC プロキシ のネイティブ サポートに関心を示していることを確認しました。Kong 1.3 は、gRPC プロキシをネイティブでサポートし、gRPC 対応インフラストラクチャの制御と可視性を強化することでユーザーの要望に対応しています。

主な利点:

  • 運用フローの合理化
  • A / B テスト、自動再試行、およびサーキット ブレーカー機能を gRPC サービスに追加し、信頼性と稼働時間を改善
  • より高い可視性
  • ロギング、アナリティクス、または gRPC サービスの Prometheus インテグレーション

主な機能:

新しいプロトコル:ルートおよびサービス エンティティの protocol 属性を grpc または grpcs に設定できるようになりました。これは、クリアテキスト HTTP / 2(h2c)上の gRPC および TLS HTTP / 2(h2)上の gRPC に対応します。

アップストリーム相互 TLS 認証

Kong は、これまでにもアップストリーム サービスへの TLS 接続をサポートしてきました。1.3では、セキュリティを強化するためにアップストリームとのハンドシェイクにおいて特定の証明書を提示するサポートを追加しました。

主な利点:

  • 金融サービスや医療サービスなど、強力な認証保証を必要とする業界にもよりふさわしい、証明書を使用したアップストリーム サービスとのハンドシェイク
  • より良いセキュリティ
  • 信頼できる証明書を提示することにより、アップストリーム サービスが、着信要求が悪意のあるクライアントではなく、Kong による転送であることを確実に認識
  • より簡単なコンプライアンス
  • より開発者向け
  • Kongを使用して、相互 TLS 認証を必要とするサービスを、開発者に依存しない方法(OAuthなど)に変換

主な機能:

新しい構成属性:Service エンティティには、新しいフィールド client_certificate があります。 これを設定すると、Kong がサービスとの接続を試みるときに、対応する certificate が使用されます。

セッション プラグイン

Kong 1.3 では、セッション プラグイン (以前は Kong Enterprise でのみ利用可能)をオープンソース化し、すべてのユーザーが使用できるようになりました。 他の認証プラグインと組み合わせることで、Kong は以前に認証されたブラウザー ユーザーを記憶します。詳細はこちらをご参照ください。

NGINX CVEの修正

Kong 1.3 には、NGINX HTTP / 2 モジュール (CVE-2019-9511、CVE-2019-9513、CVE-2019-9516) の修正が含まれています。 また、Kong 1.0.4、1.1.3、1.2.2 をリリースして、1.3 へのアップグレードがすぐにできない場合に備えて、Kong の古いバージョンの脆弱性にパッチを当てました。

OpenResty バージョン バンプ

OpenResty のバージョンは、Nginx 1.15.8 に基づく最新の OpenResty リリース1.15.8.1 にバンプされました。この OpenResty リリースでは、アップストリーム キープアライブ接続、ARM64 アーキテクチャ サポート、および LuaJIT GC64 モードを閉じる際の動作を改善しました。最も顕著な変更点は、LuaJIT コンパイラがより多くのネイティブ コードを生成し、OpenResty がリクエスト コンテキスト データをより効率的に保存するため、Kong がキー認証を使用してベースライン プロキシ ベンチマークで最大 10 % 速く動作するようになりました。

Kong 1.3 におけるその他の新機能

リクエスト ヘッダーによるルーティング

  • Kong のルーターは、(Hostだけでなく)任意のリクエスト ヘッダーでルートを照合できるようになりました。
  • これにより、サービス間でインカミング トラフィックをルーティングする方法を詳細に制御できます。

こちら のドキュメントをご覧ください。

最小接続の負荷分散

  • Kong は、接続量が最も少ないアップストリーム サービスにトラフィックを送信できるようになり、特定のユース ケースでのアップストリーム負荷分散が改善されました。

詳しくはこちらのドキュメントをご覧ください。

データベースのエクスポート

  • 新しく追加された kong config db_export CLI コマンドを使用して、宣言型の構成に適した YAML ファイルにデータベース コンテンツのダンプを作成したり、後でデータベースにインポートしたりできます。
  • これにより、宣言型の構成ファイルを簡単に作成できます。
  • また、Kong の構成のバックアップとバージョン管理がはるかに簡単になります。

こちらのドキュメントをご覧ください。

アップストリーム キープアライブ接続の終了

      • Kong の古いバージョンでは、Kong によってアップストリーム接続が閉じられることはありませんでした。これにより、Kong がキープアライブ接続を再利用しようとする一方で、アップストリームが接続を閉じようとするため、競合状態が発生する可能性があります。
      • Kong の error.log で「upstream prematurely closed connection」というエラーがこれまで表示されていた場合には、今回のリリースで、デプロイメントにおける同エラーが大幅に減少するか、発生しなくなるものと思われます。
      •  この動作を制御する新しい構成ディレクティブが追加されました。詳細については、こちらをお読みください。

リスニング フラグのサポート増強

  • 特に、Kong のワーカー数が多い場合に、負荷分散とレイテンシ ジッターを改善するための reuseport フラグのサポート
  • deferred および bind フラグのサポートも追加されました。NGINX listen ディレクティブドキュメントで、追加されたフラグの効果が説明されています。

その他の改善とバグ修正

Kong 1.3 には、CA 証明書 (秘密キーのない証明書) を保存するための新しいエンティティ、管理 API インターフェイス、その他の PDK 機能に関する改善も含まれています。また、その過程において多くのバグを修正しました。今回のリリースでは大量の新機能が追加されたので、この記事だけではすべての機能についてお伝えすることができません。追加されたすべての新機能についてはこちらから確認ができます。

また、追加された NGINX ディレクティブの機能をよりよく説明するために、kong.confテンプレートへ新しいセクションを追加しました。NGINX ディレクティブを追加するためにテンプレートをカスタマイズしている場合には、アップグレードを改善するために、今回追加された NGINX ディレクティブに切り替えることをお勧めします。

Kong 1.3 のドキュメントはこちらから入手できます。さらに、前述のように、1.3の主要な機能については、今後の投稿およびコミュニティ コールで議論する予定ですので、どうぞお楽しみに!

Kong のオープンソース プラットフォームを継続的にサポートしてくださっているユーザー、貢献者、コア メンテナーの皆さまに感謝します。


Kong Enterprise の概要、価格、およびライセンス体系などの詳細は、こちらを参照してください。デモをご希望の方は、こちらよりお問い合わせください。

記事参照:
© Kong Inc. 2019

2019 年 08 月 21 日
Kong 1.3 Released! Native gRPC Proxying, Upstream Mutual TLS Authentication, and Much More