Apigee Adapter for Envoy リリースノート

<ph type="x-smartling-placeholder"></ph> 現在、Apigee Edge のドキュメントが表示されています。
Apigee X のドキュメント
詳細

v2.1.1

2023 年 6 月 7 日に、Apigee Adapter for Envoy のバージョン 2.1.1 をリリースしました。

修正した問題

  • オペレーション間で割り当てが正しく重複しない問題を修正しました プロダクト単位では共有されません

v2.1.0

2023 年 6 月 5 日に、Apigee Adapter for Envoy のバージョン 2.1.0 をリリースしました。

修正した問題

  • application_id クレームが /verifyApiKey レスポンスに追加されました。

v2.0.7

2023 年 3 月 9 日に、Apigee Adapter for Envoy のバージョン 2.0.7 をリリースしました。

機能と改善点

  • JWT で、値を渡す customattributes という名前のクレームを追加できるようになりました。 x-apigee-customattributes というヘッダーでターゲットに追加します( append_metadata_headerstrue に構成されています)。

修正した問題

  • 無効な API キーによって不要なログエントリと分析が作成される可能性がある問題を修正しました レコード
  • 非推奨になったバージョン チェックがプロキシで削除され、新しいバージョンで問題が発生するようになった Apigee

v2.0.6

2022 年 10 月 18 日に、Apigee Adapter for Envoy のバージョン 2.0.6 をリリースしました。

修正した問題

  • 依存関係ライブラリのサービス拒否攻撃(DoS)の脆弱性に対処するセキュリティ リリース。 CVE-2022-28948 をご覧ください。

v2.0.5

2022 年 3 月 3 日に、Apigee Adapter for Envoy のバージョン 2.0.5 をリリースしました。

修正した問題

  • prometheus ライブラリのサービス拒否(DoS)リスクに対処するセキュリティ リリース。CVE-2022-21698 をご覧ください。

v2.0.4

2021 年 12 月 3 日に、Apigee Adapter for Envoy のバージョン 2.0.4 をリリースしました。

機能と改善点

  • CLI samples コマンドに対応している Envoy と Istio のバージョンのリストが更新されました。現在、samples に対応しているバージョンは次のとおりです。
    • Envoy バージョン 1.18~1.20
    • Istio バージョン 1.10~1.12

修正した問題

  • 混乱を避けるために、PEM ブロックの秘密鍵の読み込みに nil チェックが追加されました(問題 #360)。
  • リモート サービスの認証エラーがデバッグレベルでログに記録されるようになりました。API キーのトークン取得エラーは例外です。この場合、エラーはエラーレベルでログ記録されるため、apigee-remote-service-envoy のデバッグログ レベルが無効になっていても表示されます。リモート サービスログ レベルの設定をご覧ください(問題 #104)。

v2.0.3

2021 年 9 月 21 日に、Apigee Adapter for Envoy のバージョン 2.0.3 をリリースしました。

修正した問題

  • 直接のレスポンスに関するアナリティクス ロギングの問題を修正しました。この問題は、特定の状況下でのみ発生します。次に例を示します。
    • authn/z チェックが不要のリクエストでは、authContext は生成されず、動的メタデータは nil になり、アクセス ログエントリは無視されます。
    • 拒否されたレスポンスは HTTP コードではなく RPC コードを使用しているため、レコードが Apigee UI に成功として表示されます。

v2.0.2

2021 年 6 月 7 日に、Apigee Adapter for Envoy のバージョン 2.0.2 をリリースしました。

修正した問題

  • JWT クレーム スコープが nil のときに 403 エラーが発生して混乱を招く可能性のある競合状態を修正しました。

v2.0.0

2021 年 4 月 6 日(火曜日)に、Apigee Adapter for Envoy のバージョン 2.0.0 をリリースしました。

機能と改善点

機能 説明
マルチテナント環境のサポート

アダプターを有効にして、Apigee 組織内の複数の環境にサービスを提供できるようになりました。この機能を使用すると、1 つの Apigee 組織に関連付けられた 1 つの Apigee Adapter for Envoy を使用して複数の環境にサービスを提供できます。以前は、1 つのアダプターが常に 1 つの Apigee 環境に関連付けられていました。この機能の詳細については、マルチテナント環境のサポートをご覧ください。

Envoy v3 API のサポート
Envoy メタデータのサポート

Envoy 1.16 移行では、ヘッダーを使用せずに ext_authz メタデータを送信できます。この変更や関連する変更を加えたことで、拒否されたリクエストに対してより適切な HTTP レスポンスコードが提供されるようになり、Envoy に RBAC フィルタをインストールする必要がなくなりました。ご覧ください。

この機能は、Envoy 1.16 以降と Istio 1.9 以降でのみサポートされています。

この変更により、次の構成が Envoy 構成ファイル(envoy-config.yaml)に追加されなくなりました。

additional_request_headers_to_log:
    - x-apigee-accesstoken
    - x-apigee-api
    - x-apigee-apiproducts
    - x-apigee-application
    - x-apigee-clientid
    - x-apigee-developeremail
    - x-apigee-environment

特殊なケースのリクエストにヘッダーを追加するには、アダプターの config.yaml ファイルでプロパティ append_metadata_headers:true を設定します。

remote-token プロキシを remote-service プロキシから分割

remote-service プロキシが 2 つの別個のプロキシにリファクタリングされました。v2.0.x のプロビジョニングでは、remote-serviceremote-token の 2 つの API プロキシがインストールされます。/token エンドポイントと /certs エンドポイントが remote-service プロキシから remote-token に移動されました。

この変更により、機能が分離されて使いやすくなりました。現在、remote-service プロキシはアダプターの内部通信にのみ使用されますが、remote-token プロキシはカスタマイズ可能なサンプル OAuth ワークフローを提供します。provision --force-proxy-install コマンドが使用されていても、カスタムの remote-token プロキシは上書きされません。

データ キャプチャのサポート

Apigee X と Apigee ハイブリッドでのみ使用できます。

Adapter では、Envoy メタデータを Apigee のデータ キャプチャ機能に渡すことができるようになりました。 指定した変数でキャプチャされたデータが、カスタム レポートで使用するために Apigee Analytics に送信されます。

RBAC は不要

前述の Envoy メタデータのサポートで説明されているとおり、別個の RBAC フィルタを必要とせずに未承認のリクエストをすぐに拒否できるようになりました。RBAC が使用されないため、クライアントはアダプターから必要に応じて次の HTTP ステータス コードを受け取ります。

  • 401 Unauthorized(未承認)
  • 403 Forbidden(アクセス拒否)
  • 429 Too Many Requests(リクエスト数が多すぎる)
  • 500 Internal Server Error(内部サーバーエラー)

未承認のリクエストを続行するには、アダプターの config.yaml ファイルで auth:allow_unauthorized:true を設定します。

x-apigee-* ヘッダーはデフォルトで追加されなくなった

前述の Envoy メタデータのサポート セクションで説明したように、x-apigee-* ヘッダーがデフォルトで追加されなくなりました。追加するには、config.yaml ファイルで append_metadata_headers:true を設定します。この構成は完全に任意で、ヘッダーをアップストリーム ターゲット サービスに転送する場合にのみ使用する必要があります。

リモート サービス ターゲットへのリクエストのカスタム マッチング

api_header 構成プロパティのセマンティクスは 以前の target_header プロパティと同じです(デフォルトは 指定されたヘッダーの内容は、指定されたヘッダーまたは API プロダクトの Remote service target 属性または apiSource フィールド API プロダクト オペレーション(Apigee ハイブリッドと Apigee X のみ)。

Envoy メタデータを使用してこのヘッダー値をオーバーライドするには、apigee_api メタデータ要素を Envoy からアダプタに転送し、 API プロダクトのリモート サービス ターゲットまたは API プロダクト オペレーションの API ソース。 構成するには、Envoy 構成ファイルに次のようなコードを追加します(アダプターの CLI を使用して生成できます)。

typed_per_filter_config:
  envoy.filters.http.ext_authz:
    "@type": type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthzPerRoute
    check_settings:
      context_extensions:
        apigee_api: httpbin.org
拒否されたリクエストの分析がすぐにログに記録される

Envoy Adapter では、拒否されたリクエストがアクセスログに返されるのを待たずに、必要に応じてすぐにそのリクエストを分析のために記録するようになりました。これは 効率的で、リクエストにメタデータを添付する必要はありません。

UDCA のサポート終了

Apigee ハイブリッドと Apigee X での Apigee の Universal Data Collection Agent(UDCA)へのストリーミングは、直接アップロードに置き換えられたため、アナリティクスには必要なくなりました。この変更により、このオプションの以前のサポートが削除されるだけです。

プロビジョニング / バインディング CLI コマンドで Edge for Private Cloud に mTLS サポートを追加

Apigee Edge for Private Cloud のユーザーは、CLI を使用してプロダクト バインディングをプロビジョニングまたは一覧表示する際に、クライアント側の TLS 証明書とルート証明書をそれぞれ ‑‑tls‑cert‑‑tls‑key‑‑tls‑ca で指定できます。

アダプターと Apigee ランタイム間の mTLS サポート

アダプタと Apigee ランタイムの間で mTLS を使用するために、アダプタの config.yaml ファイルの tenant セクションでクライアント側 TLS 証明書を指定できます。この変更は、サポートされているすべての Apigee プラットフォームに適用されます。また、それにより、Apigee Edge for Private Cloud プラットフォームの分析用の mTLS も有効化されます。詳細については、アダプターと Apigee ランタイム間の mTLS の構成をご覧ください。

修正した問題

  • 同じ API ソースを持つ複数のオペレーション構成が同じ割り当てバケット ID を共有して、割り当ての計算で競合が発生する問題を修正しました(問題 #34)。
  • 動詞が指定されていないオペレーションによりリクエストが拒否される問題を修正しました(動詞が指定されていない場合はすべての動詞を許可する動作が想定されています)(問題 #39)。

v1.4.0

2020 年 12 月 16 日(水)に、Apigee Adapter for Envoy のバージョン 1.4.0 をリリースしました。

対応プラットフォーム

MacOS、Linux、Windows のバイナリを公開しています。

Google の distroless、Ubuntu、BoringCrypto を使用する Ubuntu の Docker イメージを公開しています。

このバージョンは、次のプラットフォームをサポートしています。

  • Apigee ハイブリッド バージョン 1.3.x、1.4.x(リリース日は保留中)、Apigee Edge for Public Cloud、Apigee Edge for Private Cloud、Apigee on Google Cloud
  • Istio バージョン 1.5、1.6、1.7、1.8
  • Envoy バージョン 1.14、1.15、1.16

機能と改善点

機能 説明
remote-service プロキシでは、リモート サービス ターゲットを使用する API プロダクトとの関連付けが不要になりました。

この関連付けが不要になったため、次の変更点に注意してください。

  • プロビジョニング時に、remote-service API プロダクトが作成されなくなりました。
  • bindings verify CLI コマンドは関連性がなくなり、非推奨となりました。
Apigee 組織管理者ロールがプロビジョニングに不要になりました。

プロビジョニングに組織管理者権限を使用するのではなく、IAM ロールの API 作成者とデプロイ担当者を使用できるようになりました。正常にプロビジョニングするには、両方のロールを付与する必要があります
(Apigee on Google Cloud と Apigee ハイブリッドにのみ適用)。

その他の問題と修正

  • --rotate オプションを指定せずに Apigee を再プロビジョニングするとエラーで終了する問題を修正しました。
  • プロビジョニング CLI で、特定の config.yaml ファイルから分析サービス アカウントの認証情報を読み取って再利用できるようになりました(問題 #133)。

v1.3.0

11 月 23 日(月曜日)、Apigee Adapter for Envoy バージョン 1.3.0 をリリースしました。

対応プラットフォーム

MacOS、Linux、Windows のバイナリを公開しています。

Google の distroless、Ubuntu、BoringCrypto を使用する Ubuntu の Docker イメージを公開しています。

このバージョンは、次のプラットフォームをサポートしています。

  • Apigee ハイブリッド バージョン 1.3.x、1.4.x(リリース日は保留中)、Apigee Edge for Public Cloud、Apigee Edge for Private Cloud、Apigee on Google Cloud
  • Istio バージョン 1.5、1.6、1.7、1.8
  • Envoy バージョン 1.14、1.15、1.16

機能と改善点

機能 説明
API プロダクト OperationGroups のサポート OperationGroups は、リソースと関連する割り当ての適用をプロキシまたは リモートサービスに接続できます。
(Apigee on Google Cloud と Apigee ハイブリッドにのみ適用)
サンプル生成から動的転送プロキシのサポートを削除 この変更により、ホスト名が次の場合、クライアントは HOST ヘッダーを含める必要があります。 API プロダクトで設定されているリモート サービス ターゲット ホストとは異なります。例:
curl -i http://localhost:8080/httpbin/headers -H "HOST:httpbin.org"

API プロダクトを作成するをご覧ください。

サービス アカウントと Workload Identity のサポート Apigee ハイブリッド クラスタの外部でアダプターを実行するときに分析データを Apigee にアップロードできるようにするには、apigee-remote-service-cli provision コマンドで analytics-sa パラメータを使用する必要があります。また、アダプターが Google Kubernetes Engine(GKE)の Workload Identity もサポートするようになりました。プロビジョニング コマンドをご覧ください。
(Apigee on Google Cloud と Apigee ハイブリッドにのみ適用)
新しい jwt_provider_key 構成属性 このキーは構成ファイルに追加されます。Envoy 構成では JWT プロバイダの payload_in_metadata キー、Istio 構成では RequestAuthentication JWT の発行元を表します。
KeepAliveMaxConnectionAge 構成属性のデフォルトが 1 分になりました。 以前のデフォルトは 10 分でした。この変更により、よりスムーズなスケーリングが可能になります。この値は、アクセスログ ストリームの存続期間にも使用されます。構成ファイルをご覧ください。
CLI コマンドが削除されました。 次の CLI コマンドは非推奨になりました。こちらの Edge API API プロダクトのリモート サービス ターゲットを更新します。 <ph type="x-smartling-placeholder">
    </ph>
  • apigee-remote-service-cli bindings add
  • apigee-remote-service-cli bindings remove
新しい CLI コマンドが追加されました。 コマンド:
apigee-remote-service-cli samples templates

samples create コマンドで --template フラグを指定して使用できるオプションを示します。CLI リファレンスをご覧ください。

既存の CLI コマンドが変更されました。 apigee-remote-service-cli samples create コマンドが変更されました。Envoy テンプレートや Istio テンプレートに固有のフラグは厳密にチェックされ、誤って使用されたフラグではエラーが返されます。native テンプレート オプションは非推奨です。使用可能なテンプレートのリストを取得するには、apigee-remote-service-cli samples templates コマンドを使用します。CLI リファレンスもご覧ください。
/token エンドポイント レスポンスが OAuth2 仕様を遵守するようになりました。 レスポンスに access_token パラメータが追加され、token パラメータが非推奨になりました。

v1.2.0

9 月 30 日(水曜日)、Apigee Adapter for Envoy バージョン 1.2.0 をリリースしました。

対応プラットフォーム

MacOS、Linux、Windows のバイナリを公開しています。

Google の distroless、Ubuntu、BoringCrypto を使用する Ubuntu の Docker イメージを公開しています。

このバージョンでは、次のプラットフォームをサポートしています。

  • Apigee ハイブリッド バージョン 1.3.x
  • Istio バージョン 1.5、1.6、1.7
  • Envoy バージョン 1.14、1.15

機能と改善点

機能 説明
Apigee on Google Cloud のサポート Google Cloud の Apigee で Apigee Adapter for Envoy を使用できるようになりました。独自のクラスタでアダプターを実行することも、ネイティブ バイナリとしてまたはコンテナ内で Remote Service for Envoy を実行することでアダプターを実行することもできます。プロビジョニング コマンドを使用して、Apigee にアダプタをプロビジョニングします。
分析データの直接アップロード Apigee に分析データを直接アップロードするように Apigee Adapter を構成できるようになりました。Apigee ハイブリッドを使用している場合、この新機能によって、Apigee ハイブリッドがインストールされているクラスタの外部で Kubernetes クラスタにアダプターをデプロイできます。直接アップロードを有効にするには、provision コマンドで新しい --analytics-sa フラグを使用します。プロビジョニング コマンドをご覧ください。
API プロダクト データが Apigee から読み込まれた後に、ヘルスチェックから「Ready」が返される API プロダクト データが Apigee から読み込まれるまで、Kubernetes ヘルスチェックから「Ready」は返されません。この変更により、準備ができるまでは新しくインスタンス化されたアダプターにトラフィックが送信されないため、スケーリングとアップグレードに役立ちます。

その他の問題と修正

  • 潜在的な割り当て同期のデッドロックの問題が修正されました(問題 #17)。
  • Prometheus のアノテーションが Pod の仕様に移動されました(問題 #69)。
  • 不適切に表示される確認エラーの問題が修正されました(問題 #62)。

v1.1.0

8 月 26 日(水曜日)、Apigee Adapter for Envoy バージョン 1.1.0 をリリースしました。

対応プラットフォーム

MacOS、Linux、Windows のバイナリを公開しています。

Google の distroless、Ubuntu、BoringCrypto を使用する Ubuntu の Docker イメージを公開しています。

バージョン 1.1.0 では、次のプラットフォームをサポートしています。

  • Apigee ハイブリッド バージョン 1.3
  • Istio バージョン 1.5、1.6、1.7
  • Envoy バージョン 1.14、1.15

機能と改善点

機能 説明
バインディングの確認 新しいコマンドの apigee-remote-service-cli bindings verify が CLI に追加されました。このコマンドは、バインドされている特定の API プロダクトとそれに関連付けられたデベロッパー アプリにも、リモート サービス プロダクトが関連付けられていることを確認します。バインディングの確認をご覧ください。
サンプルの生成 新しいコマンドの apigee-remote-service-cli samples create が CLI に追加されました。このコマンドを使用すると、ネイティブの Envoy または Istio のデプロイ用にサンプル構成ファイルが作成されます。このコマンドで生成した構成ファイルは、以前のバージョンの Adapter for Envoy にインストールされたサンプル ファイルと置き換えられます。サンプル コマンドをご覧ください。
OAuth2 認証 アダプタが、Apigee Edge で多要素認証(MFA)が有効になっている場合に OAuth2 認証を使用するようになりました。--legacy フラグを使用する場合は、必ず --mfa フラグを使用してください。
Distroless コンテナ アダプターは、デフォルトの Docker イメージベースとして scratch の代わりに Google の Distroless(gcr.io/distroless/base)イメージを使用するようになりました。

その他の問題と修正

  • OPDK のバインディング コマンドに対する CLI の問題が修正されました(#29)。
  • 接続が失われると、割り当てが停止することがあります(apigee / apigee-remote-service-envoy)(#31)。
  • Docker イメージが、root 以外のユーザー(999)でビルドされるようになりました。
  • Kubernetes のサンプルでは、root 以外のユーザーにする必要があります。
  • プロキシ エンドポイントに対する curl コマンドで、--http1.1 が不要になりました。このフラグは、例から削除されています。

v1.0.0

7 月 31 日(金曜日)、Apigee Adapter for Envoy の一般提供版をリリースしました。

対応プラットフォーム

MacOS、Linux、Windows のバイナリを公開しています。

スクラッチ、Ubuntu、BoringCrypto を使用する Ubuntu の Docker イメージを公開しています。

バージョン 1.0.0 では、次のプラットフォームをサポートしています。

  • Apigee ハイブリッド バージョン 1.3
  • Istio バージョン 1.5、1.6
  • Envoy バージョン 1.14、1.15

追加と変更

v1.0-beta4 リリースと一般提供までの間に、アダプターに次の変更が加えられました。

  • Go Boring のビルド

    FIPS 準拠の Go BoringSSL ライブラリを使用する新しいビルドが利用できるようになりました。

  • ログレベルのフラグの変更

    apigee-remote-service-envoy サービスのロギングレベルのフラグが、整合性を保つために変更されました。

    旧フラグ 新フラグ
    log_level log-level
    json_log json-log
  • 新しい CLI フラグ

    CLI の token コマンドに、次の新フラグが追加されました。

    フラグ 説明
    --legacy Apigee Edge Cloud を使用している場合は、このフラグを設定します。
    --opdk Apigee Edge for Private Cloud を使用している場合は、このフラグを設定します。