Apigee Adapter for Envoy 版本資訊

您正在查看 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_headers 設為 true)。

已修正的問題

  • 先前無效 API 金鑰可能會建立假的記錄項目和數據分析記錄,這個問題現已修正。
  • 已從 Proxy 中移除已淘汰的版本檢查,該 Proxy 會導致新版 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 版本清單已更新。範例現已支援這些版本:
    • 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 版。

已修正的問題

  • 修正直接回應的 Analytics (分析) 記錄問題。這個問題只會在部分情況下發生。例如:
    • 針對不需要驗證/z 檢查的要求,系統不會產生 authContext,且動態中繼資料為 nil 導致忽略存取記錄項目。
    • 遭拒的回應使用 RPC 代碼 (而非 HTTP 程式碼),導致 Apigee UI 成功顯示記錄。

v2.0.2

2021 年 6 月 7 日,我們發布了 Apigee Adapter for Envoy 2.0.2 版。

已修正的問題

  • 已修正競爭狀況。當 JWT 憑證附加資訊範圍為零時,可能會導致 403 錯誤和恐慌。

v2.0.0

2021 年 4 月 6 日星期二,我們發布了 Apigee Adapter for Envoy 2.0.0 版。

功能及改善

功能 說明
支援多用戶群環境

您現在可以啟用轉接器,為 Apigee 機構中的多個環境提供服務。有了這項功能,您就能使用與一個 Apigee 機構相關聯的一個 Apigee Adapter for Envoy 來為多個環境提供服務。在這項變更之前,一個轉接器始終與一個 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 Proxy 與 remote-service Proxy 拆分

remote-service Proxy 已重構為兩個不同的 Proxy。v2.0.x 佈建作業會安裝兩個 API Proxy:remote-serviceremote-token/token/certs 端點已從 remote-service Proxy 移至 remote-token

這項變更可協助您分隔函式。remote-service Proxy 只能用於內部轉接器通訊,remote-token Proxy 則提供可自訂的 OAuth 工作流程範例。我們絕不會覆寫您的自訂 remote-token Proxy,即使使用了 provision --force-proxy-install 指令也一樣。

資料擷取支援

僅適用於 Apigee X 和 Apigee Hybrid。

轉接器現在支援將 Envoy 中繼資料傳送至 Apigee 的資料擷取功能,這項功能會將您指定變數中擷取的資料傳送至 Apigee 數據分析,以便用於自訂報表。

不需要 RBAC

如先前在「Envoy 中繼資料支援」一節所述,我們現在立即拒絕未經授權的要求,不需另外進行 RBAC 篩選器。由於未使用 RBAC,用戶端現在可視情況從轉接器接收下列 HTTP 狀態碼:

  • 401 未授權
  • 403 禁止
  • 429 要求數量過多
  • 500 內部伺服器錯誤

如要允許系統繼續處理未經授權的要求,您可以在轉接程式的 config.yaml 檔案中設定 auth:allow_unauthorized:true

預設不再附加 x-apigee-* 標頭

如之前的「Envoy 中繼資料支援」一節所述,根據預設,系統不會再附加 x-apigee-* 標頭。如要新增這些元素,請在 config.yaml 檔案中設定 append_metadata_headers:true。這項設定完全是選用項目,只有在需要將標頭轉送至上游目標服務時才需使用。

對遠端服務目標的要求自訂比對

api_header 設定屬性的語意與先前的 target_header 屬性相同 (預設仍是目標主機名稱),且指定標頭的內容仍會與 API 產品作業 (僅限 Apigee 混合型和 Apigee X) 中的 API 產品遠端服務目標屬性或 apiSource 欄位相符。

如要使用 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 現在會視需要立即將遭拒要求記錄至 Analytics (分析),而不是等待要求傳回存取記錄檔。這樣更有效率,且不需要在要求中附加任何中繼資料。

已移除對 UDCA 的支援

在 Apigee Hybrid 和 Apigee X 中不再需要將內容串流至 Apigee 的通用資料收集代理程式 (UDCA),因為這項服務已由直接上傳取代。這項變更只是移除對這個選項的舊版支援。

透過佈建/繫結 CLI 指令,新增 Edge for Private Cloud 的 mTLS 支援

使用 CLI 佈建或列出產品繫結時,Apigee Edge for Private Cloud 使用者可以分別透過 ‑‑tls‑cert‑‑tls‑key‑‑tls‑ca 提供用戶端傳輸層安全標準 (TLS) 憑證和根憑證。

轉接程式和 Apigee 執行階段之間的 mTLS 支援

您可以在轉接器 config.yaml 檔案的 tenant 區段中提供用戶端 TLS 憑證,以便在轉接器和 Apigee 執行階段之間使用 mTLS。這項變更適用於所有支援的 Apigee 平台。還可以為 Apigee Edge 私有雲平台啟用 mTLS 進行數據分析。詳情請參閱「設定轉接器與 Apigee 執行階段之間的 mTLS」。

已修正的問題

  • 修正問題:如有多項作業設定使用相同的 API 來源,共用相同的配額值區 ID 並導致計算配額發生衝突。(問題 #34)
  • 問題已修正,沒有指定動詞的運算導致要求遭拒 (如未指定,預期行為會是允許所有動詞)。(問題 #39)

v1.4.0

2020 年 12 月 16 日星期三,我們發布了 Apigee Adapter for Envoy 的 1.4.0 版。

支援平台

我們發布了 MacOS、Linux 和 Windows 適用的二進位檔。

我們透過 Boring Crypto 從 Google 的不鏽鋼、Ubuntu 和 Ubuntu 發布 Docker 映像檔。

這個版本支援下列平台:

  • Apigee Hybrid 1.3.x 版、1.4.x 版 (尚未發布)、Apigee Edge (公用雲端)、Apigee Edge (私有雲)、Apigee Edge (私有雲) 和 Google Cloud 中的 Apigee
  • Istio 1.5、1.6、1.7、1.8 版
  • Envoy 1.14、1.15、1.16 版

功能及改善

功能 說明
remote-service Proxy 不再需要與使用遠端服務目標的 API 產品建立關聯。

由於不再需要建立關聯,請注意下列變更:

  • 佈建期間不會再建立 remote-service API 產品。
  • bindings verify CLI 指令不再相關且已淘汰。
佈建作業不再需要 Apigee 機構管理員角色。

如不需要機構管理員權限才能進行佈建,您現在可以改用 IAM 角色 API 建立者和部署者。您必須同時授予這兩個角色,才能順利佈建。
(僅適用於 Google Cloud 和 Apigee Hybrid)

其他問題及修正方式

  • 修正問題:重新佈建 Apigee 時若沒有 --rotate 選項,並發生錯誤,這個問題現已修正。
  • 佈建 CLI 現在會讀取並重複使用特定 config.yaml 檔案中的數據分析服務帳戶憑證 (問題 #133)。

v1.3.0

11 月 23 日星期一,我們推出了 Apigee Adapter for Envoy 版本 1.3.0。

支援平台

我們發布了 MacOS、Linux 和 Windows 適用的二進位檔。

我們透過 Boring Crypto 從 Google 的不鏽鋼、Ubuntu 和 Ubuntu 發布 Docker 映像檔。

這個版本支援下列平台:

  • Apigee Hybrid 1.3.x 版、1.4.x 版 (尚未發布)、Apigee Edge (公用雲端)、Apigee Edge (私有雲)、Apigee Edge (私有雲) 和 Google Cloud 中的 Apigee
  • Istio 1.5、1.6、1.7、1.8 版
  • Envoy 1.14、1.15、1.16 版

功能及改善

功能 說明
API 產品 OperationGroups 支援。 OperationGroup 會透過 HTTP 方法繫結 Proxy 或遠端服務中的資源和相關配額強制執行作業。
(僅適用於 Google Cloud 和 Apigee Hybrid)
從產生範例中移除動態轉送 Proxy 的支援。 這項異動生效後,如果主機名稱與 API 產品中設定的遠端服務目標主機不同,用戶端就必須加入 HOST 標頭。例如:
curl -i http://localhost:8080/httpbin/headers -H "HOST:httpbin.org"

請參閱「建立 API 產品」一文。

支援服務帳戶和 Workload Identity 如要在 Apigee Hybrid 叢集外執行轉接程式,如要允許將數據分析資料上傳至 Apigee,您必須使用 analytics-sa 參數搭配 apigee-remote-service-cli provision 指令。此外,轉接程式現在支援 Google Kubernetes Engine (GKE) 中的 Workload Identity。請參閱佈建指令
(僅適用於 Google Cloud 和 Apigee Hybrid)
新的 jwt_provider_key 設定屬性。 這組金鑰會新增至設定檔。它代表 Envoy 設定中的 JWT 供應商 payload_in_metadata 金鑰,或是 Istio 設定中的 RequestAuthentication JWT 核發者。
KeepAliveMaxConnectionAge 設定屬性現在預設為 1 分鐘。 原本的預設值為 10 分鐘。這項變更可讓資源調度更加順暢。這個值也會用於存取記錄串流生命週期。請參閱設定檔
移除 CLI 指令。 下列 CLI 指令已淘汰。建議您改用 Edge API 更新 API 產品的遠端服務目標:
  • 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 適用的二進位檔。

我們透過 Boring Crypto 從 Google 的不鏽鋼、Ubuntu 和 Ubuntu 發布 Docker 映像檔。

這個版本支援下列平台:

  • Apigee Hybrid 1.3.x 版
  • Istio 1.5、1.6、1.7 版
  • Envoy 1.14、1.15 版

功能及改善

功能 說明
Google Cloud 適用的 Apigee 支援 您現在可以將 Apigee Adapter for Envoy 與 Google Cloud 中的 Apigee 搭配使用。您可以在自己的叢集中執行轉接程式,或是在容器中執行 Remote Service for Envoy 做為原生二進位檔或容器。使用佈建指令在 Apigee 中佈建轉接程式。
直接上傳數據分析資料 您現在可以設定 Apigee Adapter,將數據分析資料直接上傳至 Apigee。如果您使用的是 Apigee Hybrid,這項新功能可將轉接器部署至其自己的 Kubernetes 叢集,但位於安裝 Apigee Hybrid 的叢集之外。如要啟用直接上傳功能,請搭配 provision 指令使用新的 --analytics-sa 旗標。請參閱佈建指令
從 Apigee 載入 API 產品資料後,健康狀態檢查會傳回「已就緒」 除非從 Apigee 載入 API 產品資料,否則 Kubernetes 健康狀態檢查不會傳回「就緒」。本次變更有助於資源調度及升級,因為在準備就緒之前,系統不會將任何流量傳送至已執行個體化的轉接程式。

其他問題及修正方式

  • 已修正一個問題,解決可能發生的配額同步處理死結問題 (問題 #17)。
  • Prometheus 註解已移至 Pod 規格 (問題 #69)。
  • 修正了一項問題,以解決誤發驗證錯誤 (問題 #62)。

v1.1.0

8 月 26 日星期三,我們發布了 Apigee Adapter for Envoy 的 1.1.0 版。

支援平台

我們發布了 MacOS、Linux 和 Windows 適用的二進位檔。

我們透過 Boring Crypto 從 Google 的不鏽鋼、Ubuntu 和 Ubuntu 發布 Docker 映像檔。

在 1.1.0 版中,我們支援下列平台:

  • Apigee Hybrid 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 旗標。
不散的容器 轉接程式現在會使用 Google 的不鏽鋼 (gcr.io/distroless/base) 映像檔,而非 scratch 做為預設的 Docker 映像檔基礎。

其他問題及修正方式

  • 已修正 OPDK 中繫結指令的 CLI 問題。(#29)
  • 連線遺失時,配額可能會停滯 (apigee/apigee-remote-service-envoy。(#31)
  • 現在可以使用非超級使用者 (999) 建構 Docker 映像檔。
  • Kubernetes 範例不得強制要求使用者授予 Root 權限,
  • 對 Proxy 端點的 curl 指令不再需要使用 --http1.1。已從範例中移除旗標。

v1.0.0

7 月 31 日星期五,我們發布了 Apigee Adapter for Envoy。

支援平台

我們發布了 MacOS、Linux 和 Windows 適用的二進位檔。

我們透過 Boring Crypto 從零、Ubuntu 和 Ubuntu 發布 Docker 映像檔。

在 1.0.0 版中,我們支援下列平台:

  • Apigee Hybrid 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,請設定這個旗標。