Note di rilascio dell'adattatore Apigee per Envoy

Stai visualizzando la documentazione di Apigee Edge.
Vai alla documentazione di Apigee X.
informazioni

v2.1.1

Il 7 giugno 2023 abbiamo rilasciato la versione 2.1.1 di Apigee Adapter for Envoy.

Problemi risolti

  • È stato risolto un problema per cui le quote venivano duplicate in modo errato tra le operazioni anziché essere condivise a livello di prodotto.

v2.1.0

Il 5 giugno 2023 abbiamo rilasciato la versione 2.1.0 di Apigee Adapter for Envoy.

Problemi risolti

  • La dichiarazione application_id è stata aggiunta alla risposta /verifyApiKey.

v2.0.7

Il 9 marzo 2023 abbiamo rilasciato la versione 2.0.7 di Apigee Adapter for Envoy.

Funzionalità e miglioramenti

  • I JWT ora possono aggiungere una rivendicazione denominata customattributes che passerà il valore al target in un'intestazione x-apigee-customattributes (se append_metadata_headers è configurato per essere true).

Problemi risolti

  • È stato risolto un problema per cui una chiave API non valida poteva creare voci di log e record di analisi false.
  • Un controllo della versione deprecata è stato rimosso in un proxy che ha causato problemi nelle versioni più recenti di Apigee.

v2.0.6

Il 18 ottobre 2022 abbiamo rilasciato la versione 2.0.6 di Apigee Adapter for Envoy.

Problemi risolti

  • Release di sicurezza per risolvere una vulnerabilità Denial of Service (DoS) in una libreria di dipendenze. Vedi CVE-2022-28948.

v2.0.5

Il 3 marzo 2022 abbiamo rilasciato la versione 2.0.5 di Apigee Adapter for Envoy.

Problemi risolti

  • Release di sicurezza per risolvere un rischio di tipo Denial of Service (DoS) nella libreria Prometheus. Vedi CVE-2022-21698.

v2.0.4

Il 3 dicembre 2021 abbiamo rilasciato la versione 2.0.4 di Apigee Adapter for Envoy.

Funzionalità e miglioramenti

  • L'elenco delle versioni Envoy e Istio supportate per il comando samples dell'interfaccia a riga di comando è stato aggiornato. Queste versioni sono ora supportate per gli esempi:
    • Versioni Envoy da 1.18 a 1.20
    • Istio versioni da 1.10 a 1.12

Problemi risolti

  • È stato aggiunto un controllo nullo per il caricamento della chiave privata del blocco PEM per evitare il panico. (Problema n. 360)
  • Ora gli errori di autorizzazione del servizio remoto vengono registrati a livello di debug. Viene fatta un'eccezione a questa classificazione per gli errori di recupero dei token per le chiavi API. In questo caso, gli errori vengono registrati a livello di errore in modo che siano visibili anche se il livello di log di debug per apigee-remote-service-envoy è disabilitato. Vedi anche Impostare i livelli di log dei servizi remoti. (Problema n. 104)

v2.0.3

Il 21 settembre 2021 abbiamo rilasciato la versione 2.0.3 di Apigee Adapter for Envoy.

Problemi risolti

  • È stato risolto un problema di logging di Analytics con risposte dirette. Il problema si è verificato solo in determinate circostanze. Ad esempio:
    • Per le richieste che non richiedono il controllo dell'autorizzazione, non è stato generato alcun authContext e i metadati dinamici erano nulli, pertanto la voce del log degli accessi è stata ignorata.
    • La risposta negata utilizzava codice RPC anziché codice HTTP, causando la visualizzazione corretta dei record nella UI di Apigee.

v2.0.2

Il 7 giugno 2021 abbiamo rilasciato la versione 2.0.2 di Apigee Adapter for Envoy.

Problemi risolti

  • È stata corretta una condizione di gara che poteva causare errori 403 e panico quando gli ambiti delle dichiarazioni JWT erano nulli.

v2.0.0

Martedì 6 aprile 2021 abbiamo rilasciato la versione 2.0.0 di Apigee Adapter for Envoy.

Funzionalità e miglioramenti

Funzionalità Descrizione
Supporto per ambienti multi-tenant

Ora puoi abilitare l'adattatore per il servizio di più ambienti in un'organizzazione Apigee. Questa funzionalità consente di utilizzare un adattatore Apigee per Envoy associato a un'organizzazione Apigee per gestire più ambienti. Prima di questa modifica, un adattatore era sempre associato a un ambiente Apigee. Per scoprire di più su questa funzionalità, consulta la pagina relativa al supporto per l'ambiente multi-tenant.

Supporto dell'API Envoy v3
Supporto per i metadati di Envoy

Envoy 1.16 e versioni successive, consente di inviare metadati ext_authz senza dover utilizzare intestazioni. Grazie a questa e alle modifiche correlate, ora forniamo codici di risposta HTTP migliori per le richieste rifiutate e non dobbiamo più installare un filtro RBAC in Envoy. Consulta

Questa funzionalità è supportata solo per Envoy 1.16 e versioni successive e Istio 1.9 e versioni successive.

Con questa modifica, la seguente configurazione non viene più aggiunta al file di configurazione 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

Per aggiungere intestazioni alle richieste relative a un caso speciale, imposta la proprietà append_metadata_headers:true nel file config.yaml dell'adattatore.

Suddividi il proxy remote-token dal proxy remote-service

Il proxy remote-service è stato sottoposto a refactoring in due proxy separati. La versione 2.0.x, per il provisioning, installerà due proxy API: remote-service e remote-token. Gli endpoint /token e /certs sono stati spostati dal proxy remote-service a remote-token.

Questo cambiamento crea una separazione utile delle funzioni. Ora il proxy di servizio remoto viene utilizzato solo per le comunicazioni interne dell'adattatore, mentre il proxy remote-token fornisce un flusso di lavoro OAuth di esempio che puoi personalizzare. Non sovrascriveremo mai il tuo proxy remote-token personalizzato, anche se viene utilizzato il comando provision --force-proxy-install.

Assistenza per l'acquisizione di dati

Disponibile solo per Apigee X e Apigee hybrid.

L'adattatore ora supporta il passaggio dei metadati Envoy alla funzionalità di acquisizione dati di Apigee, che invia i dati acquisiti nelle variabili specificate da te all'analisi Apigee per l'utilizzo nei report personalizzati.

RBAC non richiesto

Come indicato in precedenza nel supporto per i metadati di Envoy, ora rifiutiamo immediatamente le richieste non autorizzate senza richiedere un filtro RBAC separato. Poiché RBAC non viene utilizzato, i client ora riceveranno questi codici di stato HTTP come appropriato dall'adattatore:

  • richiesta non autorizzata (401)
  • richiesta vietata (403)
  • 429 Troppe richieste
  • Errore interno del server (500)

Se vuoi consentire le richieste non autorizzate, puoi farlo impostando auth:allow_unauthorized:true nel file config.yaml dell'adattatore.

Le intestazioni x-apigee-* non vengono più aggiunte per impostazione predefinita

Come indicato in precedenza nella sezione Supporto dei metadati Envoy, le intestazioni x-apigee-* non vengono più aggiunte per impostazione predefinita. Se vuoi aggiungerli, imposta append_metadata_headers:true nel file config.yaml. Questa configurazione è completamente facoltativa e deve essere utilizzata solo quando è opportuno inoltrare le intestazioni al servizio di destinazione upstream.

Abbinamento personalizzato di una richiesta a un target di servizio remoto

La semantica della proprietà di configurazione api_header rimane la stessa della proprietà target_header precedente (il valore predefinito è ancora il nome host di destinazione) e i contenuti dell'intestazione specificata continueranno a corrispondere all'attributo del prodotto API Remote service target o al campo apiSource in un'operazione di prodotto API (solo Apigee hybrid e Apigee X).

Per sostituire questo valore di intestazione utilizzando i metadati Envoy, puoi passare l'elemento di metadati apigee_api da Envoy all'adattatore per specificare direttamente il target di servizio remoto del prodotto API o l'origine API dell'operazione del prodotto API. Per eseguire la configurazione, aggiungi al file di configurazione Envoy un codice simile al seguente (che puoi generare utilizzando l'interfaccia a riga di comando dell'adattatore):

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
Le analisi delle richieste rifiutate vengono registrate immediatamente

Envoy Adapter registrerà immediatamente le richieste rifiutate nell'analisi come necessario, anziché attendere che la richiesta venga restituita nel log degli accessi. Questa operazione è più efficiente e non richiede l'aggiunta di metadati alla richiesta.

Il supporto UDCA è stato rimosso

I flussi di dati verso Universal Data Collection Agent (UDCA) di Apigee in Apigee hybrid e Apigee X non sono più necessari per l'analisi poiché è stato sostituito dal caricamento diretto. Questa modifica rimuove semplicemente il supporto legacy per questa opzione.

Aggiunta del supporto di mTLS per Edge per il cloud privato nei comandi dell'interfaccia a riga di comando di provisioning/associazione

Gli utenti di Apigee Edge per il cloud privato possono fornire certificati TLS lato client e certificati radice rispettivamente tramite ‑‑tls‑cert, ‑‑tls‑key e ‑‑tls‑ca durante il provisioning o l'elenco delle associazioni di prodotti tramite l'interfaccia a riga di comando.

Supporto di mTLS tra l'adattatore e il runtime Apigee

Puoi fornire certificati TLS lato client nella sezione tenant del file config.yaml dell'adattatore per utilizzare mTLS tra l'adattatore e il runtime Apigee. Questa modifica si applica a tutte le piattaforme Apigee supportate. Inoltre, abilita mTLS per l'analisi per la piattaforma Apigee Edge per il cloud privato. Per maggiori informazioni, consulta Configurare mTLS tra l'adattatore e il runtime Apigee.

Problemi risolti

  • È stato risolto un problema a causa del quale più configurazioni di operazioni con la stessa origine API condividevano gli stessi identificatori dei bucket di quota, causando conflitti nel calcolo della quota. (Numero #34)
  • È stato risolto un problema per cui le operazioni senza verbi specificati causavano il rifiuto della richiesta (il comportamento previsto è consentire tutti i verbi se nessuno è specificato). (Numero #39)

v1.4.0

Mercoledì 16 dicembre 2020 abbiamo rilasciato la versione 1.4.0 di Apigee Adapter for Envoy.

Piattaforme supportate

Pubblichiamo programmi binari per MacOS, Linux e Windows.

Pubblichiamo immagini Docker da distroless di Google, Ubuntu e Ubuntu con Boring Crypto.

In questa versione sono supportate le seguenti piattaforme:

  • Apigee versione ibrida 1.3.x, 1.4.x (data di rilascio in attesa), Apigee Edge per cloud pubblico, Apigee Edge per cloud privato e Apigee su Google Cloud
  • Istio versioni 1.5, 1.6, 1.7, 1.8
  • Versioni Envoy 1.14, 1.15, 1.16

Funzionalità e miglioramenti

Funzionalità Descrizione
Il proxy remote-service non richiede più l'associazione con un prodotto API che utilizza destinazioni dei servizi remoti.

Poiché questa associazione non è più necessaria, tieni presente le seguenti modifiche:

  • Durante il provisioning non viene più creato un prodotto API remote-service.
  • Il comando dell'interfaccia a riga di comando bindings verify non è più pertinente ed è stato deprecato.
Il ruolo Amministratore organizzazione Apigee non è più necessario per il provisioning.

Anziché richiedere l'autorizzazione di amministratore dell'organizzazione per il provisioning, ora puoi utilizzare l'API Creator e Deployer dei ruoli IAM. Devi concedere entrambi questi ruoli per eseguire correttamente il provisioning.
(si applica solo ad Apigee su Google Cloud e Apigee hybrid)

Altri problemi e correzioni

  • È stato risolto un problema a causa del quale il nuovo provisioning di Apigee senza l'opzione --rotate è stato chiuso con un errore.
  • L'interfaccia a riga di comando del provisioning ora legge e riutilizza le credenziali dell'account di servizio di analisi da un determinato file config.yaml (problema n. 133).

v1.3.0

Lunedì 23 novembre abbiamo rilasciato la versione 1.3.0 di Apigee Adapter for Envoy.

Piattaforme supportate

Pubblichiamo programmi binari per MacOS, Linux e Windows.

Pubblichiamo immagini Docker da distroless di Google, Ubuntu e Ubuntu con Boring Crypto.

In questa versione sono supportate le seguenti piattaforme:

  • Apigee versione ibrida 1.3.x, 1.4.x (data di rilascio in attesa), Apigee Edge per cloud pubblico, Apigee Edge per cloud privato e Apigee su Google Cloud
  • Istio versioni 1.5, 1.6, 1.7, 1.8
  • Versioni Envoy 1.14, 1.15, 1.16

Funzionalità e miglioramenti

Funzionalità Descrizione
Supporto per OperationGroups del prodotto API. OperationGroups associa le risorse e l'applicazione della quota associata in un proxy o in un servizio remoto con metodi HTTP.
(si applica solo ad Apigee su Google Cloud e Apigee hybrid)
Rimuovi il supporto per il proxy di inoltro dinamico dalla generazione di esempi. A causa di questa modifica, i client devono includere l'intestazione HOST se il nome host è diverso dall'host di destinazione del servizio remoto impostato nel prodotto API. Ad esempio:
curl -i http://localhost:8080/httpbin/headers -H "HOST:httpbin.org"

Vedi Creare un prodotto API.

Supporta gli account di servizio e Workload Identity. Per consentire il caricamento dei dati di analisi su Apigee durante l'esecuzione dell'adattatore al di fuori di un cluster ibrido Apigee, devi utilizzare il parametro analytics-sa con il comando apigee-remote-service-cli provision. Inoltre, l'adattatore ora supporta Workload Identity su Google Kubernetes Engine (GKE). Vedi Esegui il provisioning del comando.
(si applica solo ad Apigee su Google Cloud e Apigee hybrid)
Nuovo attributo di configurazione jwt_provider_key. Questa chiave viene aggiunta al file di configurazione. Rappresenta la chiave payload_in_metadata del provider JWT nella configurazione di Envoy o l'emittente JWT di RequestAuthentication in configurazione di Istio.
L'attributo di configurazione KeepAliveMaxConnectionAge ora è impostato su 1 minuto per impostazione predefinita. Il valore predefinito precedente era di 10 minuti. Questa modifica consente una scalabilità più fluida. Questo valore viene utilizzato anche per la durata del flusso di log degli accessi. Vedi file di configurazione.
Comandi dell'interfaccia a riga di comando rimossi. I seguenti comandi dell'interfaccia a riga di comando sono stati deprecati. Ti consigliamo di utilizzare le API Edge per aggiornare i target dei servizi remoti per i prodotti API:
  • apigee-remote-service-cli bindings add
  • apigee-remote-service-cli bindings remove
È stato aggiunto un nuovo comando dell'interfaccia a riga di comando. Il comando:
apigee-remote-service-cli samples templates

elenca le opzioni disponibili che puoi utilizzare con il flag --template nel comando samples create. Consulta la documentazione di riferimento dell'interfaccia a riga di comando.

Il comando dell'interfaccia a riga di comando esistente è stato modificato. È stata apportata una modifica al comando apigee-remote-service-cli samples create. I flag specifici per i modelli Envoy o Istio vengono controllati rigorosamente e gli errori vengono restituiti per i flag utilizzati in modo errato. L'opzione del modello native è deprecata. Per visualizzare un elenco dei modelli disponibili, utilizza il comando apigee-remote-service-cli samples templates. Vedi anche Riferimento a riga di comando.
La risposta dell'endpoint /token ora segue le specifiche OAuth2. Il parametro access_token è stato aggiunto alla risposta e il parametro token è deprecato.

v1.2.0

Mercoledì 30 settembre abbiamo rilasciato la versione 1.2.0 di Apigee Adapter for Envoy.

Piattaforme supportate

Pubblichiamo programmi binari per MacOS, Linux e Windows.

Pubblichiamo immagini Docker da distroless di Google, Ubuntu e Ubuntu con Boring Crypto.

In questa versione sono supportate le seguenti piattaforme:

  • Apigee versione ibrida 1.3.x
  • Istio versioni 1.5, 1.6, 1.7
  • Versioni Envoy 1.14, 1.15

Funzionalità e miglioramenti

Funzionalità Descrizione
Assistenza per Apigee su Google Cloud Ora puoi utilizzare Apigee Adapter per Envoy con Apigee su Google Cloud. Puoi eseguire l'adattatore nel proprio cluster o eseguendo il Servizio remoto per Envoy come programma binario nativo o in un container. Esegui il provisioning dell'adattatore su Apigee utilizzando il comando di provisioning.
Caricamento diretto per i dati di analisi Ora puoi configurare l'adattatore Apigee per caricare i dati di analisi direttamente su Apigee. Se utilizzi Apigee hybrid, questa nuova funzionalità consente di eseguire il deployment dell'adattatore nel proprio cluster Kubernetes, all'esterno del cluster in cui è installato Apigee hybrid. Per abilitare il caricamento diretto, utilizza il nuovo flag --analytics-sa con il comando provision. Vedi il comando di provisioning.
Il controllo di integrità restituisce "Pronto" dopo il caricamento dei dati di prodotto API da Apigee Il controllo di integrità di Kubernetes non restituirà "Pronto" fino a quando i dati di prodotto API non vengono caricati da Apigee. Questa modifica facilita la scalabilità e l'upgrade, poiché non verrà inviato traffico all'adattatore appena creato un'istanza finché non sarà pronto.

Altri problemi e correzioni

  • È stato risolto un problema per risolvere un potenziale deadlock di sincronizzazione delle quote (Problema n. 17).
  • Le annotazioni Prometheus sono state spostate nella specifica dei pod (Problema n. 69).
  • È stato risolto un problema per risolvere errori di verifica emessi in modo errato (Problema n. 62).

v1.1.0

Mercoledì 26 agosto abbiamo rilasciato la versione 1.1.0 di Apigee Adapter for Envoy.

Piattaforme supportate

Pubblichiamo programmi binari per MacOS, Linux e Windows.

Pubblichiamo immagini Docker da distroless di Google, Ubuntu e Ubuntu con Boring Crypto.

Nella versione 1.1.0 sono supportate le seguenti piattaforme:

  • Apigee versione ibrida 1.3
  • Istio versioni 1.5, 1.6, 1.7
  • Versioni Envoy 1.14, 1.15

Funzionalità e miglioramenti

Funzionalità Descrizione
Verifica le associazioni È stato aggiunto un nuovo comando apigee-remote-service-cli bindings verify all'interfaccia a riga di comando. Questo comando verifica che al prodotto API associato specificato e alle relative app per sviluppatori associate sia associato anche un prodotto di servizio remoto. Consulta Verificare un'associazione.
Genera esempi È stato aggiunto un nuovo comando apigee-remote-service-cli samples create all'interfaccia a riga di comando. Questo comando crea file di configurazione di esempio per i deployment nativi di Envoy o Istio. I file di configurazione generati con questo comando sostituiscono i file di esempio installati con Adapter for Envoy nelle versioni precedenti. Vedi Comando Samples.
Autenticazione OAuth2 L'adattatore ora utilizza l'autenticazione OAuth2 quando l'autenticazione a più fattori (MFA) è abilitata per Apigee Edge. Usa il flag --mfa ogni volta che usi il flag --legacy.
Container distroless L'adattatore ora utilizza l'immagine distroless (gcr.io/distroless/base) di Google anziché scratch per la base di immagini Docker predefinite.

Altri problemi e correzioni

  • È stato risolto un problema dell'interfaccia a riga di comando per i comandi di associazione in OPDK. (#29)
  • La quota potrebbe bloccarsi quando viene persa la connessione (apigee/apigee-remote-service-envoy. (#31)
  • Ora le immagini Docker vengono create con un utente non root (999).
  • Gli esempi di Kubernetes applicano l'utente non deve essere root.
  • --http1.1 non è più necessario per i comandi curl sugli endpoint proxy. Il flag è stato rimosso dagli esempi.

v1.0.0

Venerdì 31 luglio abbiamo rilasciato la versione GA di Apigee Adapter for Envoy.

Piattaforme supportate

Pubblichiamo programmi binari per MacOS, Linux e Windows.

Pubblichiamo immagini Docker da zero, Ubuntu e Ubuntu con Boring Crypto.

Nella versione 1.0.0 sono supportate le seguenti piattaforme:

  • Apigee versione ibrida 1.3
  • Istio versioni 1.5, 1.6
  • Versioni Envoy 1.14, 1.15

Aggiunte e modifiche

Tra la versione 1.0-beta4 e la versione GA, sono state apportate le seguenti modifiche all'adattatore:

  • Crea build Go Boring

    È ora disponibile una nuova build che utilizza le librerie Go BoringSSL conformi a FIPS.

  • Modifiche ai flag a livello di log

    I flag di livello di logging per il servizio apigee-remote-service-envoy sono stati modificati per garantire la coerenza:

    Bandiera precedente Nuova segnalazione
    log_level log-level
    json_log json-log
  • Nuovi flag dell'interfaccia a riga di comando

    Sono stati aggiunti nuovi flag ai comandi token dell'interfaccia a riga di comando:

    Bandiera Descrizione
    --legacy Imposta questo flag se utilizzi Apigee Edge Cloud.
    --opdk Imposta questo flag se utilizzi Apigee Edge per il cloud privato.