Informacje o wersji Apigee Adapter dla Envoy

Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

v2.1.1

7 czerwca 2023 r. opublikowaliśmy wersję 2.1.1 adaptera Apigee dla Envoy.

Rozwiązane problemy

  • Rozwiązaliśmy problem polegający na tym, że limity nie były dzielone na poziomie usługi, ale były niewłaściwie duplikowane między operacjami.

v2.1.0

5 czerwca 2023 r. opublikowaliśmy wersję 2.1.0 adaptera Apigee dla Envoy.

Rozwiązane problemy

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

v2.0.7

9 marca 2023 r. opublikowaliśmy wersję 2.0.7 adaptera Apigee dla Envoy.

Funkcje i ulepszenia

  • Tokeny JWT mogą teraz dodać deklaracja o nazwie customattributes, która przekaże wartość do celu w nagłówku x-apigee-customattributes (jeśli append_metadata_headers jest skonfigurowane jako true).

Rozwiązane problemy

  • Rozwiązaliśmy problem, który powodował, że nieprawidłowy klucz interfejsu API mógł tworzyć fałszywe wpisy logu i rekordy analityczne.
  • Wycofana weryfikacja wersji została usunięta z serwera proxy, który powodował problemy w nowszych wersjach Apigee.

v2.0.6

18 października 2022 roku opublikowaliśmy wersję 2.0.6 adaptera Apigee dla Envoy.

Rozwiązane problemy

  • Wersja zabezpieczeń rozwiązująca lukę w zabezpieczeniach (DoS, Denial of Service) w bibliotece zależności. Zobacz CVE-2022-28948.

v2.0.5

3 marca 2022 roku opublikowaliśmy wersję 2.0.5 adaptera Apigee dla Envoy.

Rozwiązane problemy

  • Wersja zabezpieczeń eliminująca ryzyko DoS (DoS) w bibliotece Prometheus. Patrz: CVE-2022-21698.

v2.0.4

3 grudnia 2021 roku opublikowaliśmy wersję 2.0.4 adaptera Apigee dla Envoy.

Funkcje i ulepszenia

  • Lista obsługiwanych wersji Envoy i Istio dla polecenia samples interfejsu wiersza poleceń została zaktualizowana. Te wersje są teraz obsługiwane w przypadku przykładów:
    • Envoy w wersjach od 1.18 do 1.20
    • Istio w wersji od 1.10 do 1.12

Rozwiązane problemy

  • Aby uniknąć paniki, dodano kontrolę nil dla wczytywania klucza prywatnego blokowania PEM. (Zadanie 360)
  • Błędy autoryzacji usługi zdalnej są teraz rejestrowane na poziomie debugowania. Wyjątkiem od tej kategoryzacji są błędy pobierania tokenów dla kluczy interfejsu API. W takim przypadku błędy są rejestrowane na poziomie Błąd, aby były widoczne nawet wtedy, gdy poziom logowania debugowania apigee-remote-service-envoy jest wyłączony. Zobacz też Ustawianie poziomów rejestrowania usług zdalnych. (Problem nr 104)

v2.0.3

21 września 2021 roku opublikowaliśmy wersję 2.0.3 adaptera Apigee dla Envoy.

Rozwiązane problemy

  • Rozwiązaliśmy problem z logowaniem statystyk dotyczących odpowiedzi bezpośrednich. Problem wystąpił tylko w pewnych okolicznościach. Na przykład:
    • W przypadku żądań, które nie wymagają kontroli uwierzytelniania/z, nie wygenerowano żadnego elementu authContext, a dynamiczne metadane były zerowe, przez co wpis logu dostępu był ignorowany.
    • W odpowiedzi na odmowę użyto kodu RPC zamiast kodu HTTP, przez co rekordy w interfejsie Apigee były wyświetlane jako udane.

v2.0.2

7 czerwca 2021 roku opublikowaliśmy wersję 2.0.2 adaptera Apigee dla Envoy.

Rozwiązane problemy

  • Naprawiono warunek wyścigu, który mógł powodować błędy 403 i paniki, gdy zakresy deklaracji JWT były zerowe.

v2.0.0

We wtorek 6 kwietnia 2021 roku opublikowaliśmy wersję 2.0.0 adaptera Apigee dla Envoy.

Funkcje i ulepszenia

Funkcja Opis
Obsługa środowiska wielu najemców

Możesz teraz włączyć adapter, aby umożliwić obsługę wielu środowisk w organizacji Apigee. Ta funkcja pozwala na obsługę wielu środowisk za pomocą jednego adaptera Apigee dla Envoy powiązanego z jedną organizacją Apigee. Przed tą zmianą 1 adapter był zawsze powiązany z jednym środowiskiem Apigee. Więcej informacji na temat tej funkcji znajdziesz w artykule na temat obsługi środowiska wielu najemców.

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

Envoy w wersji 1.16+ pozwala na wysyłanie metadanych ext_authz bez konieczności używania nagłówków. Dzięki tym zmianom i powiązanym z nim zmianom zapewniamy lepsze kody odpowiedzi HTTP w przypadku odrzuconych żądań i nie musimy już instalować filtra RBAC w Envoy. Zobacz

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

Po tej zmianie 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łączać 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 z serwera proxy remote-service

Serwer proxy usługi zdalnej został przekształcony w 2 osobne serwery proxy. Obsługa administracyjna w wersji 2.0.x spowoduje zainstalowanie 2 serwerów proxy interfejsu API: usługa-zdalna i token-zdalny. Punkty końcowe /token i /certs zostały przeniesione z serwera proxy usługi zdalnej do tokenu zdalnego.

Ta zmiana pozwala rozdzielić funkcje. Serwer proxy usługi zdalnej jest używany tylko do wewnętrznej komunikacji adaptera, a serwer proxy tokena zdalnego udostępnia przykładowy przepływ pracy OAuth, który możesz dostosować. Nigdy nie zastąpimy Twojego niestandardowego serwera proxy zdalnym tokenem, nawet jeśli używane jest polecenie provision --force-proxy-install.

Obsługa przechwytywania danych

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

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

RBAC nie jest wymagane

Jak wspomnieliśmy wcześniej w sekcji Obsługa metadanych Envoy, teraz natychmiast odrzucamy nieautoryzowane żądania bez konieczności stosowania osobnego filtra RBAC. Ponieważ RBAC nie jest używany, klienci będą teraz otrzymywać od adaptera te kody stanu HTTP:

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

Jeśli chcesz zezwolić na kontynuowanie nieautoryzowanych żądań, możesz ustawić auth:allow_unauthorized:true w pliku config.yaml adaptera.

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

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

Niestandardowe dopasowywanie żądania do celu usługi zdalnej

Semantyka właściwości konfiguracji api_header pozostaje bez zmian jak poprzednia właściwość target_header (wartość domyślna to nadal docelowa nazwa hosta), a zawartość określonego nagłówka będzie nadal zgodna z atrybutem Zdalny cel usługi produktu API lub apiSource w operacji API Product (tylko Apigee hybrid i Apigee X).

Aby zastąpić tę wartość nagłówka za pomocą metadanych Envoy, możesz przekazać element metadanych apigee_api z Envoy do adaptera w celu bezpośredniego określenia zdalnego celu usługi lub źródła interfejsu API produktu API. Aby skonfigurować, dodaj kod podobny do tego do pliku konfiguracji Envoy (który możesz 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
Statystyki odrzuconych żądań są rejestrowane natychmiast

Adapter Envoy będzie teraz natychmiast rejestrować odrzucone żądania w Analytics w razie potrzeby, zamiast czekać na ich zwrócenie w logu dostępu. Jest to bardziej efektywne i nie wymaga dołączania do żądania żadnych metadanych.

Obsługa UDCA została wycofana

Strumieniowe przesyłanie danych do agenta Universal Data Collection Agent (UDCA) Apigee w wersji hybrydowej Apigee nie jest już potrzebne do prowadzenia analiz, ponieważ zastąpiło tę usługę przesyłaniem bezpośrednim. Ta zmiana spowoduje usunięcie starszej wersji obsługi tej opcji.

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

Użytkownicy Apigee Edge for Private Cloud mogą dostarczać 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ń usług za pomocą interfejsu wiersza poleceń.

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

Certyfikaty TLS po stronie klienta możesz podać w sekcji tenant pliku config.yaml adaptera, aby używać mTLS między adapterem a środowiskiem wykonawczym Apigee. Ta zmiana dotyczy wszystkich obsługiwanych platform Apigee. Umożliwia też analizę mTLS dla platformy Apigee Edge dla Private Cloud. Więcej informacji znajdziesz w artykule o konfigurowaniu mTLS między adapterem a środowiskiem wykonawczym Apigee.

Rozwiązane problemy

  • Rozwiązaliśmy problem, który polegał na tym, że wiele konfiguracji operacji z tym samym źródłem interfejsu API korzystało z tych samych identyfikatorów zasobników limitów i powodowało konflikty przy obliczaniu limitów. (Wydanie #34)
  • Rozwiązaliśmy problem, który powodował, że operacje bez określonych czasowników powodowały odrzucenie żądania (oczekiwane działanie to zezwolenie na wszystkie czasowniki, jeśli nie określono żadnych czasowników). (Wydanie #39)

v1.4.0

W środę 16 grudnia 2020 roku opublikowaliśmy wersję 1.4.0 adaptera Apigee dla Envoy.

Obsługiwane platformy

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

Publikujemy obrazy Dockera z rozwiązań dystrybucyjnych Google, Ubuntu i Ubuntu za pomocą Boring Crypto.

Ta wersja obsługuje następujące platformy:

  • Apigee hybrydowa wersja 1.3.x, 1.4.x (oczekująca data wydania), Apigee Edge dla chmury publicznej, Apigee Edge dla Private Cloud i Apigee w Google Cloud
  • Istio w wersjach 1.5, 1.6, 1.7, 1.8
  • Envoy w wersjach 1.14, 1.15, 1.16

Funkcje i ulepszenia

Funkcja Opis
Serwer proxy remote-service nie wymaga już powiązania z usługą API, która używa zdalnych celów usług.

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

  • Podczas obsługi administracyjnej usługa interfejsu API usługi zdalnej nie jest już tworzona.
  • Polecenie interfejsu wiersza poleceń bindings verify nie jest już odpowiednie i zostało wycofane.
Rola administratora organizacji Apigee nie jest już wymagana do obsługi administracyjnej.

Zamiast wymagać uprawnień administratora organizacji do obsługi administracyjnej, możesz teraz używać ról uprawnień Twórca i Wdrażający interfejs API. Aby zapewnić obsługę administracyjną, musisz przypisać obie te role.
(Dotyczy tylko Apigee w Google Cloud i Apigee w wersji hybrydowej)

Inne problemy i poprawki

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

v1.3.0

W poniedziałek 23 listopada opublikowaliśmy wersję 1.3.0 adaptera Apigee dla Envoy.

Obsługiwane platformy

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

Publikujemy obrazy Dockera z rozwiązań dystrybucyjnych Google, Ubuntu i Ubuntu za pomocą Boring Crypto.

Ta wersja obsługuje następujące platformy:

  • Apigee hybrydowa wersja 1.3.x, 1.4.x (oczekująca data wydania), Apigee Edge dla chmury publicznej, Apigee Edge dla Private Cloud i Apigee w Google Cloud
  • Istio w wersjach 1.5, 1.6, 1.7, 1.8
  • Envoy w wersjach 1.14, 1.15, 1.16

Funkcje i ulepszenia

Funkcja Opis
Obsługa grup operacji związanych z usługami API. OperationGroups łączą zasoby i powiązane egzekwowanie limitów na serwerze proxy lub w usłudze zdalnej za pomocą metod HTTP.
(Dotyczy tylko Apigee w Google Cloud i Apigee w wersji hybrydowej)
Usuń obsługę dynamicznego serwera proxy przekierowania z generowania przykładów. Ze względu na tę zmianę klienci muszą zawierać nagłówek HOST, jeśli nazwa hosta różni się od hosta celu usługi zdalnej określonego w interfejsie 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 hybrydowym Apigee, musisz użyć parametru analytics-sa w poleceniu apigee-remote-service-cli provision. Dodatkowo adapter obsługuje teraz Workload Identity w Google Kubernetes Engine (GKE). Zobacz Polecenie obsługi administracyjnej.
(Dotyczy tylko Apigee w Google Cloud i Apigee w wersji hybrydowej)
Nowy atrybut konfiguracji jwt_provider_key. Ten klucz jest dodawany do pliku konfiguracyjnego. Reprezentuje klucz payload_in_metadata dostawcy JWT w konfiguracji Envoy lub wydawcę tokena JWT RequestAuth w konfiguracji Istio.
Atrybut konfiguracji KeepAliveMaxConnectionAge przyjmuje teraz domyślnie 1 minutę. Poprzednia wartość domyślna to 10 minut. Ta zmiana umożliwia płynniejsze skalowanie. Ta wartość jest też używana przez czas trwania strumienia logów dostępu. Zobacz plik konfiguracyjny.
Usunięto polecenia interfejsu wiersza poleceń. Poniższe polecenia interfejsu wiersza poleceń zostały wycofane. Zamiast tego zalecamy używanie interfejsów API Edge do aktualizowania zdalnych celów usług dla usług 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 dotychczasowe polecenie interfejsu wiersza poleceń. Wprowadzono zmianę w poleceniu apigee-remote-service-cli samples create. Flagi specyficzne dla szablonów Envoy lub Istio są ściśle sprawdzane, a w przypadku nieprawidłowo użytych flag zwracane są błędy. Opcja native szablonu 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.

v1.2.0

W środę 30 września opublikowaliśmy wersję 1.2.0 adaptera Apigee dla Envoy.

Obsługiwane platformy

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

Publikujemy obrazy Dockera z rozwiązań dystrybucyjnych Google, Ubuntu i Ubuntu za pomocą Boring Crypto.

Ta wersja obsługuje następujące platformy:

  • Hybrydowa wersja Apigee 1.3.x
  • Istio w wersjach 1.5, 1.6, 1.7
  • Envoy w wersjach 1.14, 1.15

Funkcje i ulepszenia

Funkcja Opis
Obsługa Apigee w Google Cloud Teraz możesz używać adaptera Apigee dla Envoy z Apigee w Google Cloud. Możesz uruchomić adapter we własnym klastrze lub przez uruchomienie usługi zdalnej dla Envoy jako natywnego pliku binarnego lub kontenera. Udostępnij adapter w Apigee za pomocą polecenia obsługi.
Bezpośrednie przesyłanie danych analitycznych Możesz teraz skonfigurować adapter Apigee tak, aby przesyłał dane analityczne bezpośrednio do Apigee. Jeśli korzystasz z Apigee hybrydowej, ta nowa funkcja umożliwia wdrożenie adaptera we własnym klastrze Kubernetes poza klastrem, w którym zainstalowano Apigee hybrydowy. Aby włączyć przesyłanie bezpośrednie, użyj nowej flagi --analytics-sa w poleceniu provision. Zobacz polecenie obsługi administracyjnej.
Kontrola stanu zwraca stan „Gotowe” po wczytaniu danych produktów do interfejsu API z Apigee Kontrola stanu Kubernetes nie zwróci stanu „Gotowe”, dopóki nie zostaną wczytane dane usług interfejsu API z Apigee. Ta zmiana ułatwia skalowanie i uaktualnianie, ponieważ do nowo utworzonego adaptera nie będzie kierowany ruch, dopóki nie będzie on gotowy.

Inne problemy i poprawki

  • Rozwiązaliśmy problem, który powodował potencjalne zakleszczenie synchronizacji limitów (problem nr 17).
  • Adnotacje Prometheus zostały przeniesione do specyfikacji poda (Problem nr 69).
  • Rozwiązaliśmy problem, aby usunąć nieprawidłowo wyświetlone błędy weryfikacji (problem nr 62).

v1.1.0

W środę 26 sierpnia opublikowaliśmy wersję 1.1.0 adaptera Apigee dla Envoy.

Obsługiwane platformy

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

Publikujemy obrazy Dockera z rozwiązań dystrybucyjnych Google, Ubuntu i Ubuntu za pomocą Boring Crypto.

Wersja 1.1.0 obsługuje następujące platformy:

  • Apigee hybrydowa wersja 1.3
  • Istio w wersjach 1.5, 1.6, 1.7
  • Envoy w wersjach 1.14, 1.15

Funkcje i ulepszenia

Funkcja Opis
Zweryfikuj powiązania Do interfejsu wiersza poleceń dodano nowe polecenie apigee-remote-service-cli bindings verify. To polecenie pozwala sprawdzić, czy określona powiązana usługa API i powiązane z nią aplikacje dewelopera są też powiązane z usługą zdalną. Zapoznaj się z informacjami o weryfikowaniu wiązania.
Wygeneruj próbki Do interfejsu wiersza poleceń dodano nowe polecenie apigee-remote-service-cli samples create. To polecenie tworzy przykładowe pliki konfiguracji dla natywnych wdrożeń Envoy lub Istio. Pliki konfiguracji wygenerowane za pomocą tego polecenia zastępują przykładowe pliki, które zostały zainstalowane przy użyciu adaptera dla Envoy w poprzednich wersjach. Zapoznaj się z poleceniem Samples.
Uwierzytelnianie OAuth2 Adapter korzysta teraz z uwierzytelniania OAuth2, gdy dla Apigee Edge włączone jest uwierzytelnianie wielopoziomowe (MFA). Używaj flagi --mfa za każdym razem, gdy używasz flagi --legacy.
Kontener bezdystansowy Jako domyślną bazę obrazu Dockera adapter używa teraz obrazu niepełnego Google (gcr.io/distroless/base) zamiast scratch.

Inne problemy i poprawki

  • Rozwiązaliśmy problem interfejsu wiersza poleceń w interfejsie OPDK z poleceniami powiązań. (#29)
  • Limit może zawiesić się w przypadku utraty połączenia (apigee/apigee-remote-service-envoy. (#31)
  • Obrazy Dockera są teraz tworzone z użytkownikiem innym niż root (999).
  • Przykłady Kubernetes wymuszają na użytkownikach korzystanie z poziomu konta root.
  • Element --http1.1 nie jest już potrzebny w przypadku poleceń curl w punktach końcowych serwera proxy. Flaga została usunięta z przykładów.

v1.0.0

W piątek 31 lipca opublikowaliśmy wersję GA adaptera Apigee dla Envoy.

Obsługiwane platformy

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

Publikujemy obrazy Dockera od zera oraz Ubuntu i Ubuntu za pomocą Boring Crypto.

Wersja 1.0.0 obsługuje następujące platformy:

  • Apigee hybrydowa wersja 1.3
  • Istio w wersjach 1.5, 1.6
  • Envoy w wersjach 1.14, 1.15

Dodatki i zmiany

Między wersją 1.0 i beta4 a dostępem do GA wprowadziliśmy następujące zmiany w adapterze:

  • nudne kompilacje

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

  • Zmiany flag na poziomie logu

    Flagi poziomu logowania usługi apigee-remote-service-envoy zostały zmienione, aby zapewnić spójność:

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

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

    Flaga Opis
    --legacy Ustaw tę flagę, jeśli korzystasz z Apigee Edge Cloud.
    --opdk Ustaw tę flagę, jeśli używasz Apigee Edge dla chmury prywatnej.