Informacje o wersji Apigee Adapter dla Envoy

Wyświetlasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
info

v2.1.1

7 czerwca 2023 r. udostępniliśmy Apigee Adapter for Envoy w wersji 2.1.1.

Rozwiązane problemy

  • Rozwiązaliśmy problem, który powodował nieprawidłowe duplikowanie limitów między operacjami zamiast udostępniania ich na poziomie usługi.

v2.1.0

5 czerwca 2023 r. udostępniliśmy wersję 2.1.0 Apigee Adapter for Envoy.

Rozwiązane problemy

  • Roszczenie application_id zostało dodane do odpowiedzi /verifyApiKey.

v2.0.7

9 marca 2023 r. udostępniliśmy Apigee Adapter for Envoy w wersji 2.0.7.

Funkcje i ulepszenia

  • Do tokenów JWT można teraz dodać deklarację o nazwie customattributes, która przekazuje wartość do miejsca docelowego w nagłówku o nazwie x-apigee-customattributes (jeśli parametr append_metadata_headers ma wartość true).

Rozwiązane problemy

  • Rozwiązaliśmy problem, który powodował, że nieprawidłowy klucz interfejsu API mógł tworzyć fałszywe wpisy w dzienniku i rekordy analityczne.
  • W proxy usunięto sprawdzanie wersji, która została wycofana, co powodowało problemy w nowszych wersjach Apigee.

v2.0.6

18 października 2022 r. udostępniliśmy wersję 2.0.6 adaptera Apigee dla Envoy.

Rozwiązane problemy

  • Wersja zabezpieczająca, która usuwa lukę w zabezpieczeniach typu DoS (Denial of Service) w bibliotece zależności. Zobacz CVE-2022-28948.

v2.0.5

3 marca 2022 r. udostępniliśmy Apigee Adapter for Envoy w wersji 2.0.5.

Rozwiązane problemy

  • Aktualizacja zabezpieczeń, która eliminuje ryzyko ataku typu DoS w bibliotece Prometheus. Zobacz CVE-2022-21698.

v2.0.4

3 grudnia 2021 roku udostępniliśmy Apigee Adapter for Envoy w wersji 2.0.4.

Funkcje i ulepszenia

  • Zaktualizowaliśmy listę obsługiwanych wersji Envoy i Istio dla polecenia interfejsu wiersza poleceń samples. W przypadku próbek obsługiwane są teraz te wersje:
    • Envoy w wersjach od 1.18 do 1.20
    • Istio w wersjach od 1.10 do 1.12

Rozwiązane problemy

  • Dodano sprawdzanie wartości null podczas wczytywania klucza prywatnego bloku PEM, aby uniknąć paniki. (Problem 360)
  • Błędy autoryzacji usługi zdalnej są teraz rejestrowane na poziomie debugowania. Wyjątkiem od tej klasyfikacji są błędy pobierania tokenów w przypadku kluczy interfejsu API. W takim przypadku błędy są rejestrowane na poziomie Błąd, dzięki czemu są widoczne nawet wtedy, gdy poziom dziennika debugowania dla apigee-remote-service-envoy jest wyłączony. Zobacz też Ustawianie poziomów rejestrowania usług zdalnych. (Problem 104)

v2.0.3

21 września 2021 r. udostępniliśmy wersję 2.0.3 Apigee Adapter for Envoy.

Rozwiązane problemy

  • Rozwiązaliśmy problem z logowaniem danych analitycznych w przypadku odpowiedzi bezpośrednich. Problem występował tylko w określonych okolicznościach. Na przykład:
    • W przypadku żądań, które nie wymagają sprawdzania uwierzytelniania i autoryzacji, nie generowano wartości authContext, a metadane dynamiczne miały wartość null, co powodowało ignorowanie wpisu logu dostępu.
    • Odpowiedź odrzucająca używała kodu RPC zamiast kodu HTTP, co powodowało, że rekordy były wyświetlane w interfejsie Apigee jako udane.

v2.0.2

7 czerwca 2021 r. udostępniliśmy wersję 2.0.2 Apigee Adapter for Envoy.

Rozwiązane problemy

  • Rozwiązaliśmy problem z sytuacją wyścigu, który mógł powodować błędy 403 i panikę, gdy zakresy deklaracji JWT miały wartość null.

2.0.0

6 kwietnia 2021 roku udostępniliśmy wersję 2.0.0 Apigee Adapter for Envoy.

Funkcje i ulepszenia

Funkcja Opis
Obsługa środowiska wielodostępnego

Możesz teraz włączyć adapter do obsługi wielu środowisk w organizacji Apigee. Ta funkcja umożliwia używanie jednego adaptera Apigee dla Envoy powiązanego z jedną organizacją Apigee do obsługi wielu środowisk. Przed tą zmianą 1 adapter był zawsze powiązany z 1 środowiskiem Apigee. Więcej informacji o tej funkcji znajdziesz w sekcji Obsługa środowiska z wieloma najemcami.

Obsługa interfejsu API Envoy w wersji 3
Obsługa metadanych Envoy

Envoy w wersji 1.16 lub nowszej umożliwia wysyłanie ext_authz metadanych bez konieczności używania nagłówków. Dzięki tej i powiązanym zmianom udostępniamy teraz lepsze kody odpowiedzi HTTP dla odrzuconych żądań i nie musimy już instalować w Envoy filtra RBAC. Zobacz

Ta funkcja jest obsługiwana tylko w przypadku Envoy w wersji 1.16 lub nowszej i Istio w wersji 1.9 lub nowszej.

Po wprowadzeniu tej zmiany do pliku konfiguracji Envoy (envoy-config.yaml) nie będzie już dodawana ta konfiguracja:

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

Jeśli chcesz dołączyć nagłówki do żądań w szczególnym przypadku, ustaw właściwość append_metadata_headers:true w pliku config.yaml adaptera.

Podziel serwer proxy remote-token od serwera proxy remote-service

Usługa proxy remote-service została podzielona na 2 osobne usługi proxy. Wersja 2.0.x, provisioning zainstaluje 2 proxy interfejsu API: remote-serviceremote-token. Punkty końcowe /token/certs zostały przeniesione z proxy remote-service do proxy remote-token.

Ta zmiana pozwala na przydatne rozdzielenie funkcji. Teraz serwer proxy remote-service jest używany tylko do wewnętrznej komunikacji adaptera, a serwer proxy remote-token udostępnia przykładowy przepływ pracy OAuth, który możesz dostosować. Nigdy nie zastąpimy Twojego niestandardowego serwera proxy remote-token, nawet jeśli użyjesz polecenia provision --force-proxy-install.

Obsługa przechwytywania danych

Dostępne tylko w przypadku Apigee X i Apigee hybrid.

Adapter obsługuje teraz przekazywanie metadanych Envoy do funkcji przechwytywania danych Apigee, która wysyła dane przechwycone w określonych przez Ciebie zmiennych do analityki Apigee w celu wykorzystania w raportach niestandardowych.

RBAC nie jest wymagany

Jak wspomnieliśmy wcześniej w sekcji Obsługa metadanych Envoy, nieautoryzowane żądania są teraz odrzucane natychmiast bez konieczności stosowania osobnego filtra RBAC. Ponieważ nie jest używana kontrola dostępu oparta na rolach, klienci będą teraz otrzymywać z adaptera odpowiednie kody stanu HTTP:

  • 401 Brak autoryzacji
  • 403 Dostęp zabroniony
  • 429 Zbyt wiele żądań
  • 500 Wewnętrzny błąd serwera

Jeśli chcesz zezwolić na dalsze przesyłanie nieautoryzowanych żądań, możesz to zrobić, ustawiając auth:allow_unauthorized:true w pliku config.yaml adaptera.

Nagłówki x-apigee-* nie są już domyślnie dołączane

Jak wspomnieliśmy wcześniej w sekcji Obsługa metadanych Envoy, nagłówki x-apigee-* nie są już domyślnie dołączane. Jeśli chcesz je dodać, ustaw wartość append_metadata_headers:true w pliku config.yaml. Ta konfiguracja jest całkowicie opcjonalna i powinna być używana tylko wtedy, gdy chcesz przekazywać nagłówki do usługi docelowej upstream.

Dopasowywanie niestandardowe żądania do zdalnego miejsca docelowego usługi

Semantyka właściwości konfiguracji api_header pozostaje taka sama jak w przypadku poprzedniej właściwości target_header (wartość domyślna to nadal nazwa hosta docelowego), a zawartość określonego nagłówka będzie nadal zgodna z atrybutem Docelowy zdalny serwis produktu API lub polem apiSource w operacji produktu API (tylko Apigee Hybrid i Apigee X).

Aby zastąpić wartość tego nagłówka za pomocą metadanych Envoy, możesz przekazać element metadanych apigee_apiz Envoy do adaptera, aby bezpośrednio określić docelowy zdalny serwis produktu API lub źródło API operacji produktu API. Aby skonfigurować, dodaj do pliku konfiguracji Envoy kod podobny do tego (możesz go wygenerować za pomocą interfejsu wiersza poleceń adaptera):

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
Dane Analytics dotyczące odrzuconych próśb są rejestrowane natychmiast

Adapter Envoy będzie teraz natychmiast rejestrować odrzucone żądania w usłudze analitycznej zgodnie z wymaganiami, zamiast czekać na powrót żądania w dzienniku dostępu. Jest to bardziej efektywne i nie wymaga dołączania do żądania żadnych metadanych.

Wsparcie dla UDCA zostało usunięte

W przypadku analityki nie jest już potrzebne przesyłanie strumieniowe do narzędzia Apigee Universal Data Collection Agent (UDCA) w Apigee hybrid i Apigee X, ponieważ zostało ono zastąpione bezpośrednim przesyłaniem. Ta zmiana po prostu usuwa starszą obsługę tej opcji.

Dodano obsługę mTLS w przypadku Edge for Private Cloud w poleceniach interfejsu wiersza poleceń provision/bindings

Użytkownicy Apigee Edge w chmurze prywatnej mogą podać certyfikaty TLS po stronie klienta i certyfikat główny za pomocą odpowiednio ‑‑tls‑cert, ‑‑tls‑key i ‑‑tls‑ca podczas udostępniania lub wyświetlania powiązań produktów za pomocą interfejsu CLI.

Obsługa mTLS między adapterem a środowiskiem wykonawczym Apigee

Aby używać mTLS między adapterem a środowiskiem wykonawczym Apigee, możesz podać certyfikaty TLS po stronie klienta w sekcji tenant pliku config.yaml adaptera. Ta zmiana dotyczy wszystkich obsługiwanych platform Apigee. Umożliwia też mTLS w przypadku statystyk na platformie Apigee Edge Private Cloud. Więcej informacji znajdziesz w artykule Konfigurowanie wzajemnego uwierzytelniania TLS między adapterem a środowiskiem wykonawczym Apigee.

Rozwiązane problemy

  • Rozwiązaliśmy problem, który powodował, że wiele konfiguracji operacji z tym samym źródłem interfejsu API miało te same identyfikatory zasobnika limitu i powodowało konflikty w obliczeniach limitu. (Problem 34)
  • Rozwiązaliśmy problem, który powodował, że operacje bez określonych czasowników powodowały odrzucenie żądania (oczekiwane zachowanie to zezwolenie na wszystkie czasowniki, jeśli nie określono żadnego). (Problem 39)

v1.4.0

W środę 16 grudnia 2020 r. udostępniliśmy wersję 1.4.0 Apigee Adapter for Envoy.

Obsługiwane platformy

Publikujemy pliki binarne dla systemów macOS, Linux i Windows.

Publikujemy obrazy Dockera z dystrybucji bez systemu operacyjnego od Google, Ubuntu i Ubuntu z Boring Crypto.

W tej wersji obsługujemy te platformy:

  • Apigee hybrid w wersji 1.3.x, 1.4.x (data premiery w trakcie ustalania), Apigee Edge na potrzeby chmury publicznej, Apigee Edge na potrzeby chmury prywatnej i Apigee w Google Cloud
  • Istio w wersjach 1.5, 1.6, 1.7 i 1.8
  • Wersje Envoy 1.14, 1.15, 1.16

Funkcje i ulepszenia

Funkcja Opis
Proxy remote-service nie wymaga już powiązania z produktem API, który korzysta ze zdalnych miejsc docelowych usługi.

To powiązanie nie jest już wymagane, dlatego zwróć uwagę na te zmiany:

  • Podczas udostępniania nie jest już tworzony produkt interfejsu API usługi zdalnej.
  • Polecenie interfejsu bindings verify nie jest już istotne i zostało wycofane.
Rola administratora organizacji Apigee nie jest już wymagana do udostępniania.

Zamiast wymagać uprawnień administratora organizacji do udostępniania, możesz teraz używać ról uprawnień Twórca i Wdrażający interfejsu API. Aby prawidłowo przeprowadzić aprowizację, musisz przyznać obie te role.
(Dotyczy tylko Apigee w Google Cloud i Apigee hybrid)

Inne problemy i rozwiązania

  • Rozwiązaliśmy problem, który powodował, że ponowne udostępnianie Apigee bez opcji --rotate kończyło się błędem.
  • Interfejs CLI do aprowizacji odczytuje teraz i ponownie wykorzystuje dane logowania konta usługi Analytics z danego pliku config.yaml (problem nr 133).

1.3.0

W poniedziałek 23 listopada udostępniliśmy Apigee Adapter for Envoy w wersji 1.3.0.

Obsługiwane platformy

Publikujemy pliki binarne dla systemów macOS, Linux i Windows.

Publikujemy obrazy Dockera z dystrybucji bez systemu operacyjnego od Google, Ubuntu i Ubuntu z Boring Crypto.

W tej wersji obsługujemy te platformy:

  • Apigee hybrid w wersji 1.3.x, 1.4.x (data premiery w trakcie ustalania), Apigee Edge na potrzeby chmury publicznej, Apigee Edge na potrzeby chmury prywatnej i Apigee w Google Cloud
  • Istio w wersjach 1.5, 1.6, 1.7 i 1.8
  • Wersje Envoy 1.14, 1.15, 1.16

Funkcje i ulepszenia

Funkcja Opis
Obsługa grup operacji w przypadku produktów API. Grupy operacji wiążą zasoby i powiązane z nimi egzekwowanie limitów w usłudze proxy lub usłudze zdalnej z metodami HTTP.
(Dotyczy tylko Apigee w Google Cloud i Apigee hybrid)
Usunięcie z generowania próbek obsługi dynamicznego serwera proxy przekazującego. Z tego powodu klienci muszą uwzględniać nagłówek HOST, jeśli nazwa hosta różni się od hosta docelowego usługi zdalnej ustawionego w produkcie API. Na przykład:
curl -i http://localhost:8080/httpbin/headers -H "HOST:httpbin.org"

Zobacz Tworzenie usługi API.

Obsługa kont usługi i Workload Identity Aby umożliwić przesyłanie danych analitycznych do Apigee podczas uruchamiania adaptera poza klastrem Apigee hybrid, musisz użyć parametru analytics-sa z poleceniem apigee-remote-service-cli provision. Dodatkowo adapter obsługuje teraz Workload Identity w Google Kubernetes Engine (GKE). Zobacz polecenie provision.
(Dotyczy tylko Apigee w Google Cloud i Apigee hybrid)
Nowy atrybut konfiguracji jwt_provider_key. Ten klucz jest dodawany do pliku konfiguracji. Reprezentuje klucz payload_in_metadata dostawcy JWT w konfiguracji Envoy lub wystawcę JWT RequestAuthentication w konfiguracji Istio.
Atrybut konfiguracji KeepAliveMaxConnectionAge ma teraz domyślnie wartość 1 minuta. Wcześniej domyślna wartość wynosiła 10 minut. Ta zmiana umożliwia płynniejsze skalowanie. Ta wartość jest też używana w przypadku czasu życia strumienia dziennika dostępu. Patrz plik konfiguracyjny.
Usunięte polecenia interfejsu wiersza poleceń. Te polecenia interfejsu wiersza poleceń zostały wycofane. Zamiast tego zalecamy używanie interfejsów Edge API do aktualizowania zdalnych miejsc docelowych usług dla produktów API:
  • apigee-remote-service-cli bindings add
  • apigee-remote-service-cli bindings remove
Dodano nowe polecenie interfejsu wiersza poleceń. Polecenie:
apigee-remote-service-cli samples templates

zawiera listę dostępnych opcji, których możesz używać z flagą --template w poleceniu samples create. Zobacz dokumentację interfejsu wiersza poleceń.

Zmieniono istniejące polecenie interfejsu wiersza poleceń. W poleceniu apigee-remote-service-cli samples create wprowadzono zmianę. Flagi specyficzne dla szablonów Envoy lub Istio są sprawdzane rygorystycznie, a w przypadku nieprawidłowego użycia flag zwracane są błędy. Opcja szablonu native została wycofana. Aby wyświetlić listę dostępnych szablonów, użyj polecenia apigee-remote-service-cli samples templates. Zobacz też dokumentację interfejsu wiersza poleceń.
Odpowiedź punktu końcowego /token jest teraz zgodna ze specyfikacją OAuth2. Do odpowiedzi dodano parametr access_token, a parametr token został wycofany.

Wersja 1.2.0

W środę 30 września udostępniliśmy Apigee Adapter for Envoy w wersji 1.2.0.

Obsługiwane platformy

Publikujemy pliki binarne dla systemów macOS, Linux i Windows.

Publikujemy obrazy Dockera z dystrybucji bez systemu operacyjnego od Google, Ubuntu i Ubuntu z Boring Crypto.

W tej wersji obsługujemy te platformy:

  • Apigee Hybrid w wersji 1.3.x
  • Istio w wersjach 1.5, 1.6 i 1.7
  • Envoy w wersjach 1.14 i 1.15

Funkcje i ulepszenia

Funkcja Opis
Pomoc dotycząca Apigee w Google Cloud Możesz teraz używać Apigee Adapter for Envoy z Apigee w Google Cloud. Adapter możesz uruchomić we własnym klastrze lub za pomocą usługi zdalnej dla Envoy jako natywnego pliku binarnego lub w kontenerze. Zainicjuj adapter w Apigee za pomocą polecenia provision.
Bezpośrednie przesyłanie danych analitycznych Możesz teraz skonfigurować adapter Apigee tak, aby przesyłał dane analityczne bezpośrednio do Apigee. Jeśli używasz Apigee Hybrid, ta nowa funkcja umożliwia wdrożenie adaptera we własnym klastrze Kubernetes, poza klastrem, w którym jest zainstalowana platforma Apigee Hybrid. Aby włączyć przesyłanie bezpośrednie, użyj nowej flagi --analytics-sa z poleceniem provision. Zobacz polecenie provision.
Testowanie zwraca „Gotowe” po załadowaniu danych produktu API z Apigee Sprawdzanie stanu Kubernetes nie zwróci wartości „Gotowe”, dopóki dane produktu API nie zostaną załadowane z Apigee. Ta zmiana ułatwia skalowanie i ulepszanie, ponieważ do nowo utworzonego adaptera nie będzie kierowany żaden ruch, dopóki nie będzie on gotowy.

Inne problemy i rozwiązania

  • Rozwiązaliśmy problem, który mógł powodować zakleszczenie synchronizacji limitów (problem nr 17).
  • Adnotacje Prometheus zostały przeniesione do specyfikacji poda (Issue #69).
  • Rozwiązaliśmy problem z nieprawidłowo emitowanymi błędami weryfikacji (problem nr 62).

Wersja 1.1.0

W środę 26 sierpnia udostępniliśmy Apigee Adapter for Envoy w wersji 1.1.0.

Obsługiwane platformy

Publikujemy pliki binarne dla systemów macOS, Linux i Windows.

Publikujemy obrazy Dockera z dystrybucji bez systemu operacyjnego od Google, Ubuntu i Ubuntu z Boring Crypto.

W wersji 1.1.0 obsługujemy te platformy:

  • Apigee Hybrid w wersji 1.3
  • Istio w wersjach 1.5, 1.6 i 1.7
  • Envoy w wersjach 1.14 i 1.15

Funkcje i ulepszenia

Funkcja Opis
Weryfikowanie powiązań Do interfejsu CLI dodano nowe polecenie apigee-remote-service-cli bindings verify. To polecenie sprawdza, czy określony powiązany produkt API i powiązane z nim aplikacje dewelopera mają też powiązany produkt usługi zdalnej. Zapoznaj się z sekcją Weryfikowanie powiązania.
Generowanie próbek Do interfejsu CLI dodano nowe polecenie apigee-remote-service-cli samples create. To polecenie tworzy przykładowe pliki konfiguracji wdrożeń natywnego Envoy lub Istio. Pliki konfiguracyjne wygenerowane za pomocą tego polecenia zastępują przykładowe pliki zainstalowane z adapterem Envoy w poprzednich wersjach. Zobacz polecenie Samples.
Uwierzytelnianie OAuth2 Gdy w Apigee Edge włączone jest uwierzytelnianie wielopoziomowe (MFA), adapter używa teraz uwierzytelniania OAuth2. Używaj flagi --mfa za każdym razem, gdy używasz flagi --legacy.
Kontener bez dystrybucji Adapter używa teraz obrazu bez dystrybucji Google (gcr.io/distroless/base) zamiast scratch jako domyślnego obrazu podstawowego Dockera.

Inne problemy i rozwiązania

  • Rozwiązaliśmy problem z interfejsem CLI dotyczący poleceń powiązań w OPDK. (#29)
  • Limit może się zablokować po utracie połączenia (apigee/apigee-remote-service-envoy). (#31)
  • Obrazy Dockera są teraz tworzone z użyciem użytkownika innego niż root (999).
  • Przykłady Kubernetes wymuszają, aby użytkownik nie był użytkownikiem root.
  • W przypadku poleceń curl kierowanych do punktów końcowych proxy nie jest już potrzebny znak --http1.1. Flaga została usunięta z przykładów.

Wersja 1.0.0

W piątek 31 lipca udostępniliśmy ogólną wersję Apigee Adapter for Envoy.

Obsługiwane platformy

Publikujemy pliki binarne dla systemów macOS, Linux i Windows.

Publikujemy obrazy Dockera od podstaw, Ubuntu i Ubuntu z Boring Crypto.

W wersji 1.0.0 obsługujemy te platformy:

  • Apigee hybrid w wersji 1.3
  • Istio w wersjach 1.5 i 1.6
  • Envoy w wersjach 1.14 i 1.15

Dodatki i zmiany

Między wersją 1.0-beta4 a wersją ogólnodostępną wprowadziliśmy w adapterze te zmiany:

  • Go Boring builds

    Dostępna jest nowa kompilacja, która korzysta z bibliotek Go BoringSSL zgodnych ze standardem FIPS.

  • Zmiany flagi poziomu logowania

    Flagi poziomu rejestrowania dla usługi apigee-remote-service-envoy zostały zmienione w celu zapewnienia spójności:

    Stara flaga Nowa flaga
    log_level log-level
    json_log json-log
  • Nowe flagi interfejsu wiersza poleceń

    Do poleceń interfejsu wiersza poleceń token dodano nowe flagi:

    Flaga Opis
    --legacy Ustaw tę flagę, jeśli używasz Apigee Edge Cloud.
    --opdk Ustaw tę flagę, jeśli używasz Apigee Edge for Private Cloud.