USE CASE: Gestione, Rilascio e Sicurezza delle API utilizzando F5 Nginx Management Suite

25/07/2023

L’economia digitale odierna si sta orientando verso una dipendenza dai microservizi, che sono componenti software autonomi e riutilizzabili che lavorano in coordinazione per comporre le applicazioni che utilizziamo. La comunicazione tra i microservizi avviene tramite API (interfaccia di programmazione delle applicazioni).

Le chiamate API rappresentano circa l’83% di tutto il traffico Internet ed il loro numero sta aumentando in modo esponenziale. Con l’aumento del numero di API sorgono nuove sfide: diventa molto difficile scoprire e monitorare dove sono distribuite; le API non protette sono facili bersagli per gli attacchi e anche le minime configurazioni errate possono causare gravi interruzioni.

Poiché le aziende adottano le API per guidare l’innovazione, hanno bisogno di un nuovo tipo di soluzione di connettività che copra sia le architetture tradizionali che quelle basate su microservizi, e che soprattutto si allinei alle pratiche DevOps e automazione.

Per un importante cliente in ambito Insurance, ci è stato richiesto, all’interno del contesto di modernizzazione delle applicazioni in modalità Cloud Native, di studiare una nuova soluzione in sostituzione dell’ormai obsoleto sistema di API Management non compatibile con le nuove piattaforme di containerizzazione.

Poiché il cliente aveva già consolidato nel tempo un’importante infrastruttura di bilanciamento e gestione del traffico perimetrale basata su soluzioni F5, la scelta è ricaduta sulla piattaforma Nginx Management Suite (aka NMS).

I desiderata del cliente erano quelli di avere una soluzione “chiavi in mano”, semplice da deployare e configurare, che non avesse l’esigenza di particolari funzionalità complesse, quanto piuttosto velocità e semplicità di integrazione con l’ambiente esistente (sistemi di bilanciamento esterni F5, ambiente containerizzato basato su RedHat Openshift Container Platform).

Altro aspetto fondamentale per il cliente è stata la garanzia di poter operare su tale piattaforma in un contesto 100% CI/CD e IaC, automatizzando quindi ogni singola configurazione nel contesto di API lifecycle management.

Tra tutti i requisiti soddisfatti, sono stati due i driver fondamentali che hanno indirizzato la scelta:

  • soluzione perfettamente compatibile con il know-how già acquisito dal team sulle soluzioni F5 (es: la scrittura delle policy WAF, gestione di iRules, ecc…)
  • bassissimo impatto di deploy infrastrutturale all’interno di un environment RedHat Openshift (limitato numero di oggetti da deployare/configurare, irrisorio consumo di risorse dedicate del cluster OCP)

All’interno della soluzione progettata possiamo elencare i seguenti componenti:

  • NMS
    • Modulo Instance Manager (NIM)
    • Modulo API Connectivity Manager (ACM)
    • Modulo APP & API Security (NAP)
  • F5 Container Ingress Services (CIS)
  • Cert-Manager

Il modulo NIM è il componente principale della soluzione NMS ed è quello che si occupa della gestione di tutte le componenti Nginx che si trovano deployate su tutti gli ecosistemi del cliente.

Con Instance Manager è possibile:

  • Scoprire problemi di configurazione e ottenere suggerimenti per le correzioni
  • Aggiornare certificati in scadenza e verificare se le versioni di NGINX presentano potenziali esposizioni a CVE (Common Vulnerabilities and Exposures)
  • Specificare quali individui e team hanno il permesso di accedere alle configurazioni di NGINX
  • Scoprire se NGINX App Protect WAF è installato sulle tue istanze di NGINX e vedere quali versioni e pacchetti di firme sono stati applicati.

Il modulo ACM è invece la parte che si occupa fisicamente della gestione dell’infrastruttura di API, nonché dell’esposizione delle API stesse, corredato da annesso Developer Portal.

Insieme al modulo NIM fornisce quella che è la parte Control Plane di una moderna infrastruttura di API Management.

Con API Connectivity Manager, è possibile affrontare facilmente i principali casi d’uso focalizzati sulle API, tra cui:

  • Accelerare il time to market con strumenti automatizzati che semplificano la distribuzione, la configurazione e la gestione delle API con sicurezza e prestazioni ottimali
  • Consentire agli sviluppatori interni ed esterni di scoprire, integrare e utilizzare rapidamente le API nei loro progetti, grazie a documentazione e versioning coerenti
  • Fornire una supervisione uniforme e coerente per gli ambienti di piattaforma, i certificati e le configurazioni da un’unica interfaccia centralizzata.

Gli oggetti automaticamente orchestrati da NIM ed ACM non sono nient’altro che semplici istanze Nginx Plus, corredate da un agent per le comunicazioni con il control plane, banalmente rilasciati all’interno dei progetti dell’infrastruttura RH OCP.

Tali oggetti saranno il frontend di comunicazione posto davanti alle singole applicazioni. Su tali oggetti avvengono quindi tutte le configurazioni tipiche di un proxy per API: traffic shapingrequests limitsauthenticationauthorizationaccess controlcache, ecc…

Altro aspetto fondamentale dell‘infrastruttura è la capacità di integrazione automatica con l’ambiente già presente, per questo sono stati scelti due componenti in particolare: F5 CIS e Cert-Manager.

Il primo si occupa di automatizzare e rendere dinamiche le configurazioni degli apparati F5 BigIP per veicolare correttamente il traffico proveniente dalla rete internet esterna al cluster OCP (completa il quadro aver sostituito il Router di default di OCP con degli Ingress Controller Nginx+), sia in termini di regole di bilanciamento che di gestione dei record DNS delle singole applicazioni esposte.

Il secondo invece si occupa della gestione automatica del ciclo di vita dei certificati SSL/TLS delle comunicazioni che avvengono attraverso protocollo HTTPS. Infatti, il Cert-Manager oltre ad occuparsi dell’oggetto certificato si occupa anche della gestione della CA interna e del rollover periodico delle chiavi.

Ultimo, ma non certo per importanza, è il tema della sicurezza.

Il primo requisito del cliente è stato quello di poter integrare il consumo delle API con i sistemi di autenticazione ed autorizzazione basati su protocollo OIDC. Per la parte di autenticazione, e quindi stacco del token di autorizzazione, si è proceduto con l’integrazione con F5 APM già in essere presso il cliente.

Per quanto riguarda la protezione delle API esposte si farà uso del modulo NAP dell’offering Nginx, con l’enorme vantaggio di poter riutilizzare al 100% tutto il know-how acquisito sul medesimo modulo per l’offering F5 BigIP:

Lo scopo dell’inserimento di NGINX App Protect WAF all’interno del design della soluzione è per fornire una solida protezione per le API, identificando e bloccando in modo proattivo le minacce di sicurezza come attacchi DDoSSQL injectionXSS (Cross-Site Scripting) e molte altre, nonché proteggere l’esposizione delle API da vulnerabilità comuni e attacchi noti.

È possibile, inoltre, creare regole di sicurezza completamente personalizzate e analizzare il traffico in tempo reale (questo consente di rilevare e rispondere rapidamente agli attacchi in corso).

Sicuramente tale progetto non si può dire completato, infatti si apre a scenari futuri di integrazione, quali ad esempio il nuovissimo modulo di NMS recentemente rilasciato da Nginx: App Delivery Manager.

STAY TUNED!