Proteggere le API con il gateway applicazione e Gestione API

Gestione API di Azure
Gateway applicazione di Azure

Con più carichi di lavoro conformi all'approccio API-first per la progettazione e il numero crescente e la gravità delle minacce alle applicazioni Web su Internet, è fondamentale avere una strategia di sicurezza per proteggere le API. Un passaggio verso la sicurezza api consiste nel proteggere il traffico di rete usando il modello di routing del gateway. Il gateway viene usato per limitare le posizioni di origine del traffico e la qualità del traffico oltre a supportare regole di routing flessibili. Questo articolo descrive come usare app Azure lication Gateway e Azure Gestione API per proteggere l'accesso alle API.

Architettura

Questo articolo non riguarda i servizi sottostanti dell'applicazione, ad esempio ambiente del servizio app, Istanza gestita di SQL di Azure e servizio Azure Kubernetes. Queste parti del diagramma illustrano solo le operazioni che è possibile eseguire come soluzione più ampia. Questo articolo illustra in modo specifico le aree ombreggiate, le Gestione API e le gateway applicazione.

Diagram showing how Application Gateway and API Management protect APIs.

Scaricare un file di Visio di questa architettura.

Workflow

  • Il gateway applicazione riceve richieste HTTP consentite dal gruppo di sicurezza di rete (NSG) della subnet.

  • Web Application Firewall (WAF) in gateway applicazione quindi controlla la richiesta in base alle regole WAF, incluso il filtro Geomatch. Se la richiesta è valida, la richiesta procede.

  • gateway applicazione configura un meccanismo proxy URL che invia la richiesta al pool back-end appropriato. Ad esempio, a seconda del formato URL della chiamata API:

    • Gli URL formattati come api.<some-domain>/external/* possono raggiungere il back-end per interagire con le API richieste.

    • Chiamate formattate come api.<some-domain>/* vai a un dead-end (sinkpool), ovvero un pool back-end senza destinazione.

  • Inoltre, gateway applicazione accetta e proxy chiamate interne, provenienti da risorse nella stessa rete virtuale di Azure, in api.<some-domain>/internal/*.

  • Infine, a livello di Gestione API, le API sono configurate per accettare le chiamate nei modelli seguenti:

    • api.<some-domain>/external/*
    • api.<some-domain>/internal/*

    In questo scenario, Gestione API usa due tipi di indirizzi IP, pubblici e privati. Gli indirizzi IP pubblici sono per la comunicazione interna sulla porta 3443 e per il traffico dell'API di runtime nella configurazione della rete virtuale esterna. Quando Gestione API invia una richiesta a un back-end pubblico con connessione Internet, viene visualizzato un indirizzo IP pubblico come origine della richiesta. Per altre informazioni, vedere Indirizzi IP del servizio Gestione API nella rete virtuale.

  • Una regola di routing a livello di gateway applicazione reindirizza correttamente gli utenti nel portal.<some-domain>/* portale per sviluppatori, in modo che gli sviluppatori possano gestire LE API e le relative configurazioni da ambienti interni ed esterni.

Componenti

  • Azure Rete virtuale consente a molti tipi di risorse di Azure di comunicare privatamente tra loro, Internet e reti locali.

  • app Azure lication Gateway è un servizio di bilanciamento del carico del traffico Web che gestisce il traffico verso le applicazioni Web. Questo tipo di routing è detto bilanciamento del carico a livello di applicazione (OSI livello 7). Ospita un web application firewall (WAF) per proteggersi da vettori di attacco comuni basati sul Web.

  • Azure Gestione API è una piattaforma di gestione ibrida e multicloud per le API in tutti gli ambienti. Gestione API crea gateway API coerenti e moderni per i servizi back-end esistenti.

Consigli

Questa soluzione è incentrata sull'implementazione dell'intera soluzione e sul test dell'accesso all'API dall'interno e dall'esterno della rete virtuale Gestione API. Per altre informazioni sul processo di integrazione della rete virtuale Gestione API, vedere Integrare Gestione API in una rete virtuale interna con gateway applicazione.

Per comunicare con le risorse private nel back-end, gateway applicazione e Gestione API devono trovarsi nella stessa rete virtuale delle risorse o in una rete virtuale con peering.

  • Il modello di distribuzione interna privato consente Gestione API di connettersi a una rete virtuale esistente, rendendolo raggiungibile dall'interno di tale contesto di rete. Per abilitare questa funzionalità, distribuire i livelli di Gestione API Developer o Premium.

  • Gestire certificati e password in Azure Key Vault.

  • Per personalizzare le interazioni con i servizi, è possibile usare le voci CNAME.

Alternative

È possibile usare altri servizi per offrire un livello simile di protezione firewall e web application firewall (WAF):

Considerazioni

Affidabilità

app Azure lication Gateway viene sempre distribuito in modo a disponibilità elevata, indipendentemente dal numero di istanze. Per evitare l'impatto di un malfunzionamento della zona, è possibile configurare l'gateway applicazione per estendersi su più zone di disponibilità. Per altre informazioni, vedere Scalabilità automatica e disponibilità elevata.

Abilitare la ridondanza della zona per i componenti del servizio Gestione API per garantire resilienza e disponibilità elevata. La ridondanza della zona replica il gateway Gestione API e il piano di controllo tra data center in zone fisicamente separate, rendendole resilienti agli errori della zona. Il livello Gestione API Premium è necessario per supportare le zone di disponibilità.

Gestione API supporta anche distribuzioni in più aree, che possono migliorare la disponibilità se un'area passa offline. Per altre informazioni, vedere Distribuzione in più aree. In questa topologia è importante avere anche un gateway applicazione per area, perché gateway applicazione è un servizio a livello di area.

Sicurezza

Per altre informazioni sulla sicurezza gateway applicazione, vedere Baseline di sicurezza di Azure per gateway applicazione.

Per altre informazioni sulla sicurezza Gestione API, vedere Baseline di sicurezza di Azure per Gestione API.

Protezione DDoS di Azure, in combinazione con le procedure consigliate per la progettazione di applicazioni, offre funzionalità avanzate di mitigazione DDoS per difendersi meglio dagli attacchi DDoS. È consigliabile abilitare Protezione DDOS di Azure in qualsiasi rete virtuale perimetrale.

Ottimizzazione dei costi

Il costo di questa architettura dipende dagli aspetti di configurazione, ad esempio:

  • Livelli di servizio
  • Scalabilità, ovvero il numero di istanze allocate dinamicamente dai servizi per supportare una determinata domanda
  • Indica se questa architettura verrà eseguita in modo continuo o solo poche ore al mese

Dopo aver valutato questi aspetti, passare a Calcolatore prezzi di Azure per stimare i prezzi.

Efficienza prestazionale

gateway applicazione è il punto di ingresso per questa architettura e la funzionalità WAF richiede potenza di elaborazione aggiuntiva per ogni analisi delle richieste. Per consentire gateway applicazione di espandere la capacità di calcolo sul posto, è importante abilitare la scalabilità automatica. Per altre informazioni, vedere Specificare la scalabilità automatica. Seguire le indicazioni della documentazione del prodotto sulle dimensioni della subnet per gateway applicazione. Ciò garantisce che la subnet sia sufficientemente grande da supportare la scalabilità orizzontale completa.

Per supportare scenari altamente simultanei, attivare Gestione API scalabilità automatica. La scalabilità automatica espande Gestione API funzionalità in risposta a un numero crescente di richieste in ingresso. Per altre informazioni, vedere Ridimensionare automaticamente un'istanza di Gestione API di Azure.

Distribuire lo scenario

Questo scenario è illustrato nella pubblicazione della raccolta di guide introduttive di Azure di gateway applicazione con Gestione API interni e app Web.

Passaggi successivi

Progettare le API seguendo le linee guida per la progettazione di API Web e implementarle usando procedure di implementazione dell'API Web valide.