Skydda API:er med Application Gateway och API Management

Azure API Management
Azure Application Gateway

Med fler arbetsbelastningar som följer DEN API-första metoden för deras design, och det växande antalet och allvarlighetsgraden för hot mot webbprogram via Internet, är det viktigt att ha en säkerhetsstrategi för att skydda API:er. Ett steg mot API-säkerhet är att skydda nätverkstrafiken med hjälp av gatewayroutningsmönstret. Du använder gatewayen för att begränsa trafikkällans platser och trafikkvalitet, förutom att stödja flexibla routningsregler. Den här artikeln beskriver hur du använder Azure Application Gateway och Azure API Management för att skydda API-åtkomst.

Arkitektur

Den här artikeln behandlar inte programmets underliggande tjänster, till exempel App Service-miljön, Azure SQL Managed Instance och Azure Kubernetes Services. Dessa delar av diagrammet visar bara vad du kan göra som en bredare lösning. I den här artikeln beskrivs specifikt skuggade områden, API Management och Application Gateway.

Diagram showing how Application Gateway and API Management protect APIs.

Ladda ned en Visio-fil med den här arkitekturen.

Arbetsflöde

  • Application Gateway tar emot HTTP-begäranden som har tillåtits av undernätets nätverkssäkerhetsgrupp (NSG).

  • Brandväggen för webbaserade program (WAF) på Application Gateway kontrollerar sedan begäran mot WAF-regler, inklusive Geomatch-filtrering. Om begäran är giltig fortsätter begäran.

  • Application Gateway konfigurerar en URL-proxymekanism som skickar begäran till rätt serverdelspool. Beroende på TILL exempel URL-formatet för API-anropet:

    • URL:er som är formaterade som api.<some-domain>/external/* kan nå serverdelen för att interagera med de begärda API:erna.

    • Anrop som är formaterade som api.<some-domain>/* går till en återvändsgränd (sinkpool), som är en serverdelspool utan mål.

  • Application Gateway accepterar och proxyservrar interna anrop, som kommer från resurser i samma virtuella Azure-nätverk, under api.<some-domain>/internal/*.

  • Slutligen konfigureras API:er på API Management-nivå för att acceptera anrop under följande mönster:

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

    I det här scenariot använder API Management två typer av IP-adresser, offentliga och privata. Offentliga IP-adresser är för intern kommunikation på port 3443 och för körnings-API-trafik i den externa virtuella nätverkskonfigurationen. När API Management skickar en begäran till en offentlig Internetuppkopplad serverdel visas en offentlig IP-adress som ursprung för begäran. Mer information finns i IP-adresser för API Management-tjänsten i VNet.

  • En routningsregel på Application Gateway-nivå omdirigerar användare under portal.<some-domain>/* till utvecklarportalen, så att utvecklare kan hantera API:er och deras konfigurationer från både interna och externa miljöer.

Komponenter

  • Med Azure Virtual Network kan många typer av Azure-resurser kommunicera privat med varandra, Internet och lokala nätverk.

  • Azure Application Gateway är en lastbalanserare för webbtrafik som hanterar trafik till webbprogram. Den här typen av routning kallas belastningsutjämning för programlager (OSI lager 7). Den är värd för en brandvägg för webbaserade program (WAF) för att skydda mot vanliga webbaserade attackvektorer.

  • Azure API Management är en hybridhanteringsplattform för flera moln för API:er i alla miljöer. API Management skapar konsekventa, moderna API-gatewayer för befintliga serverdelstjänster.

Rekommendationer

Den här lösningen fokuserar på att implementera hela lösningen och testa API-åtkomst inifrån och utanför det virtuella API Management-nätverket. Mer information om integreringsprocessen för det virtuella API Management-nätverket finns i Integrera API Management i ett internt VNET med Application Gateway.

För att kunna kommunicera med privata resurser i serverdelen måste Application Gateway och API Management finnas i samma virtuella nätverk som resurserna eller i ett peer-kopplat virtuellt nätverk.

  • Med den privata, interna distributionsmodellen kan API Management ansluta till ett befintligt virtuellt nätverk, vilket gör att det kan nås från insidan av nätverkskontexten. Om du vill aktivera den här funktionen distribuerar du antingen nivåerna Developer eller Premium API Management.

  • Hantera certifikat och lösenord i Azure Key Vault.

  • Om du vill anpassa interaktioner med tjänsterna kan du använda CNAME-poster.

Alternativ

Du kan använda andra tjänster för att leverera en liknande nivå av brandvägg och WAF-skydd (Web Application Firewall):

Att tänka på

Tillförlitlighet

Azure Application Gateway distribueras alltid på ett sätt med hög tillgänglighet, oavsett antal instanser. För att undvika påverkan av ett zonfel kan du konfigurera Application Gateway så att den sträcker sig över flera Tillgänglighetszoner. Mer information finns i Autoskalning och Hög tillgänglighet.

Aktivera zonredundans för dina API Management-tjänstkomponenter för att ge återhämtning och hög tillgänglighet. Zonredundans replikerar API Management-gatewayen och kontrollplanet mellan datacenter i fysiskt avgränsade zoner, vilket gör dem motståndskraftiga mot zonfel. API Management Premium-nivån krävs för att stödja tillgänglighetszoner.

API Management stöder även distributioner i flera regioner, vilket kan förbättra tillgängligheten om en region kopplas från. Mer information finns i Distribution i flera regioner. I den här topologin är det viktigt att även ha en Application Gateway per region, eftersom Application Gateway är en regional tjänst.

Säkerhet

Mer information om Application Gateway-säkerhet finns i Azure-säkerhetsbaslinje för Application Gateway.

Mer information om API Management-säkerhet finns i Azure-säkerhetsbaslinje för API Management.

Azure DDoS Protection, kombinerat med metodtips för programdesign, ger förbättrade DDoS-åtgärdsfunktioner för att ge mer skydd mot DDoS-attacker. Du bör aktivera Azure DDOS Protection i alla virtuella perimeternätverk.

Kostnadsoptimering

Kostnaden för den här arkitekturen beror på konfigurationsaspekter som:

  • Tjänstnivåer
  • Skalbarhet, vilket innebär antalet instanser som dynamiskt allokeras av tjänster för att stödja en viss efterfrågan
  • Om den här arkitekturen ska köras kontinuerligt eller bara några timmar i månaden

När du har utvärderat dessa aspekter går du till Priskalkylatorn för Azure för att uppskatta prissättningen.

Prestandaeffektivitet

Application Gateway är startpunkten för den här arkitekturen och WAF-funktionen kräver ytterligare bearbetningskraft för varje begärandeanalys. För att Application Gateway ska kunna utöka sin beräkningskapacitet på plats är det viktigt att aktivera automatisk skalning. Mer information finns i Ange autoskalning. Följ produktdokumentationens rekommendationer storleken på undernätet för Application Gateway. Detta säkerställer att undernätet är tillräckligt stort för att stödja fullständig utskalning.

Om du vill ha stöd för scenarier med hög samtidig användning aktiverar du automatisk skalning av API Management. Automatisk skalning utökar API Management-funktionerna som svar på allt fler inkommande begäranden. Mer information finns i Skala automatiskt en Azure API Management-instans.

Distribuera det här scenariot

Det här scenariot visas i azure snabbstartsgalleripublicering av Application Gateway med intern API Management och webbapp.

Nästa steg

Utforma dina API:er enligt bra designriktlinjer för webb-API:et och implementera dem med hjälp av bra implementeringsmetoder för webb-API.