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 wersję 2.1.1 Apigee Adapter for Envoy.

Rozwiązane problemy

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

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 wersję 2.0.7 Apigee Adapter for Envoy.

Funkcje i ulepszenia

  • Do tokenów JWT można teraz dodać roszczenie o nazwie customattributes, które 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. opublikowaliśmy wersję 2.0.6 Apigee Adapter for Envoy.

Rozwiązane problemy

  • Wersja zabezpieczająca, która usuwa lukę w zabezpieczeniach biblioteki zależnej, która umożliwia przeprowadzenie ataku typu DoS (Denial of Service). Zobacz CVE-2022-28948.

v2.0.5

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

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 r. opublikowaliśmy wersję 2.0.4 Apigee Adapter for Envoy.

Funkcje i ulepszenia

  • Zaktualizowaliśmy listę obsługiwanych wersji Envoy i Istio dla polecenia interfejsu wiersza poleceń samples. Te wersje są teraz obsługiwane w przypadku próbek:
    • 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 Error, dzięki czemu są widoczne nawet wtedy, gdy poziom dziennika debugowania dla apigee-remote-service-envoy jest wyłączony. Zobacz też Ustawianie poziomów logowania 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 dotyczących reakcji bezpośrednich. Problem występował tylko w określonych okolicznościach. Na przykład:
    • W przypadku żądań, które nie wymagają sprawdzania autentyczności lub autoryzacji, nie wygenerowano wartości authContext, a dynamiczne metadane miały wartość null, co spowodowało zignorowanie wpisu logu dostępu.
    • Odmowa odpowiedzi używała kodu RPC zamiast kodu HTTP, co powodowało, że rekordy były wyświetlane w interfejsie Apigee jako zakończone powodzeniem.

v2.0.2

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

Rozwiązane problemy

  • Usunęliśmy sytuację wyścigu, która mogła powodować błędy 403 i panikę, gdy zakresy deklaracji JWT miały wartość null.

2.0.0

6 kwietnia 2021 r. 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ą jeden adapter był zawsze powiązany z jednym środowiskiem Apigee. Więcej informacji o tej funkcji znajdziesz w artykule Obsługa środowiska z wieloma najemcami.

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

Envoy w wersji 1.16 lub nowszej umożliwia wysyłanie metadanych ext_authz bez konieczności używania nagłówków. Dzięki tej i powiązanym zmianom zapewniamy teraz lepsze kody odpowiedzi HTTP w przypadku 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 Envoys (envoy-config.yaml) nie jest 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-service i remote-token. Punkty końcowe /token i /certs zostały przeniesione z serwera proxy remote-service do serwera remote-token.

Ta zmiana zapewnia przydatny podział 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.

Pomoc dotycząca rejestrowania 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 Analytics Apigee w celu wykorzystania w raportach niestandardowych.

RBAC nie jest wymagana

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ż RBAC nie jest używany, 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 przetwarzanie 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 wyższego poziomu.

Niestandardowe dopasowywanie żą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ścią domyślną jest nadal nazwa hosta docelowego), a zawartość określonego nagłówka będzie nadal zgodna z atrybutem zdalnego serwera docelowego 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_api z 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 konfiguracyjnego 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 zwrócenie żądania w dzienniku dostępu. Jest to bardziej wydajne i nie wymaga dołączania do żądania żadnych metadanych.

Wsparcie dla UDCA zostało usunięte

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

Dodano obsługę mTLS w poleceniach interfejsu wiersza poleceń provision/bindings w Edge dla chmury prywatnej

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

W sekcji tenant pliku config.yaml adaptera możesz podać certyfikaty TLS po stronie klienta, aby używać mTLS między adapterem a środowiskiem wykonawczym Apigee. Ta zmiana dotyczy wszystkich obsługiwanych platform Apigee. Umożliwia też mTLS w przypadku statystyk na platformie Apigee Edge dla chmury prywatnej. 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 zasobników 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. opublikowaliś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 Google bez pakietów, Ubuntu i Ubuntu z Boring Crypto.

W tej wersji obsługujemy te platformy:

  • Apigee hybrid w wersji 1.3.x, 1.4.x (data wydania w trakcie ustalania), Apigee Edge w chmurze publicznej, Apigee Edge w chmurze prywatnej i Apigee w Google Cloud
  • Istio w wersjach 1.5, 1.6, 1.7 i 1.8
  • Envoy w wersjach 1.14, 1.15 i 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ż aktualne 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. 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 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 wersję 1.3.0 adaptera Apigee Adapter for Envoy.

Obsługiwane platformy

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

Publikujemy obrazy Dockera z dystrybucji Google bez pakietów, Ubuntu i Ubuntu z Boring Crypto.

W tej wersji obsługujemy te platformy:

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

Funkcje i ulepszenia

Funkcja Opis
Obsługa grup operacji dotyczących produktów API. Grupy operacji wiążą zasoby i powiązane z nimi egzekwowanie limitów w proxy lub usłudze zdalnej z metodami HTTP.
(Dotyczy tylko Apigee w Google Cloud i Apigee hybrid)
Usunięcie obsługi dynamicznego serwera proxy z generowania próbek. 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 zostanie dodany do pliku konfiguracyjnego. 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ą ściśle sprawdzane, 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 opublikowaliśmy wersję 1.2.0 Apigee Adapter for Envoy.

Obsługiwane platformy

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

Publikujemy obrazy Dockera z dystrybucji Google bez pakietów, 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
  • Wersje Envoy 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 uruchamiając usługę zdalną dla Envoy jako natywny plik binarny 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 usługa Apigee Hybrid. Aby włączyć bezpośrednie przesyłanie, użyj nowej flagi --analytics-sa z poleceniem provision. Zobacz polecenie provision.
Test stanu zwraca wartość „Gotowy” 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 opublikowaliśmy wersję 1.1.0 Apigee Adapter for Envoy.

Obsługiwane platformy

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

Publikujemy obrazy Dockera z dystrybucji Google bez pakietów, 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
  • Wersje Envoy 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 konfiguracyjne wdrożeń natywnych 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.
  • Symbol --http1.1 nie jest już potrzebny w przypadku poleceń curl kierowanych do punktów końcowych proxy. Flaga została usunięta z przykładów.

Wersja 1.0.0

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

Obsługiwane platformy

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

Publikujemy obrazy Dockera od zera, 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
  • Wersje Envoy 1.14 i 1.15

Dodatki i zmiany

Od wersji 1.0-beta4 do wersji GA w adapterze wprowadzono 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.