Arkitektur för Azure API Management-landningszoner
API:er har blivit allt mer integrerade i hur organisationer och deras kunder får åtkomst till tjänster, både inom interna system och via externa kanaler. Internt underlättar API:er åtkomst till verksamhetsspecifika program (LoB), egna lösningar och partnerintegreringar. Externt fokuserar ett växande antal organisationer på att öka produktiviteten och generera intäkter genom API-intäktsgenerering. Med tanke på den här trenden fungerar Azure API Management som ett grundläggande element i standardiserad styrning, publicering och tillsyn av API:er för både interna och externa intressenter.
Azure Application Gateway fungerar som en säkerhetskontrollpunkt för API:er. I stället för att tillåta användare att ansluta direkt via Internet dirigerar du all trafik via en programgateway. Den här konfigurationen lägger till extra åtkomstkontroller för att skydda dina API:er. Med den här metoden kan du använda en enda API Management-instans för att stödja både interna API:er i din organisation och externa API:er utanför organisationen, samtidigt som alla offentligt exponerade API:er skyddas bakom gatewayen.
Kommentar
Den här arkitekturen utgör grunden för vägledningen för API Management i Azure-landningszoner i Cloud Adoption Framework för Azure.
Arkitektur
Ladda ned en Visio-fil med den här arkitekturen.
Den här arkitekturen förutsätter att principerna finns på plats från referensimplementeringen för Azure-landningszonen och att strukturen drivs nedåt från hanteringsgruppen.
Arbetsflöde
Offentliga IP-adresser tilldelas till en programgateway som fungerar som startpunkt för extern trafik. Slutpunkten exponerar API:er via en anpassad domän.
Programgatewayen distribueras i ett eget undernät och skyddas av WAF-principer (Web Application Firewall) för att inspektera och filtrera inkommande begäranden.
Trafik dirigeras från programgatewayen till API Management (Premium), som finns i ett separat API Management-undernät. API Management-instansen konfigureras i internt läge, vilket förhindrar direkt offentlig åtkomst.
Privata slutpunkter används för att på ett säkert sätt ansluta API Management till serverdelsprogramservrar som endast exponeras för det virtuella nätverket. API Management ansluter också regelbundet beroenden, till exempel Azure-nyckelvalv. Normalt sker all den här privata anslutningen med slutpunkter i ett dedikerat privat slutpunktsundernät.
Log Analytics-arbetsytor och Application Insights är integrerade för loggning, övervakning och telemetri.
Komponenter
API Management är en hanterad tjänst som gör att du kan hantera tjänster i hybridmiljöer och miljöer med flera moln. Det ger kontroll och säkerhet för API-observerbarhet och förbrukning av både interna och externa användare. I den här arkitekturen fungerar API Management som en fasad för att abstrahera serverdelsarkitekturen.
Application Gateway är en hanterad tjänst som fungerar som en layer-7-lastbalanserare och WAF. Application Gateway skyddar den interna API Management-instansen, som möjliggör användning av både interna och externa lägen. I den här arkitekturen skyddar API Management API:er och Application Gateway lägger till kompletterande funktioner som WAF.
DNS-zoner (Private Domain Name System) är en funktion i Azure DNS som gör att du kan hantera och matcha domännamn i ett virtuellt nätverk utan att behöva implementera en anpassad DNS-lösning. En privat DNS-zon kan justeras till ett eller flera virtuella nätverk via virtuella nätverkslänkar. I den här arkitekturen krävs en privat DNS-zon för att säkerställa korrekt namnmatchning i det virtuella nätverket.
Application Insights är en utökningsbar tjänst för hantering av programprestanda som hjälper utvecklare att identifiera avvikelser, diagnostisera problem och förstå användningsmönster. Application Insights-funktioner utökningsbar programprestandahantering och övervakning för webbappar i realtid. Olika plattformar stöds, inklusive .NET, Node.js, Java och Python. Den stöder appar som finns i Azure, lokalt, i en hybridmiljö eller i andra offentliga moln. I den här arkitekturen övervakar Application Insights beteendet för det distribuerade programmet.
Log Analytics är ett molnbaserat dataanalysverktyg som gör att du kan redigera och köra loggfrågor mot data i Azure Monitor-loggar, eventuellt från Azure-portalen. Utvecklare kan köra enkla frågor för att hämta poster eller använda Log Analytics för avancerad analys och sedan visualisera resultaten. I den här arkitekturen aggregerar Log Analytics alla plattformsresursloggar för analys och rapportering.
Azure Key Vault är en molntjänst som lagrar och kommer åt hemligheter på ett säkert sätt. Dessa hemligheter sträcker sig från API-nycklar och lösenord till certifikat och kryptografiska nycklar. I den här arkitekturen lagrar Key Vault SSL-certifikaten (Secure Sockets Layer) som Application Gateway använder.
Alternativ
För serverdelstjänster som API Management-instansen ansluter till finns det flera alternativ:
Azure App Service är en fullständigt hanterad HTTP-baserad tjänst som skapar, distribuerar och skalar webbappar. Den stöder .NET, .NET Core, Java, Ruby, Node.js, PHP och Python. Program kan köras och skalas i windows- eller Linux-baserade miljöer.
Azure Kubernetes Service (AKS) är ett hanterat Kubernetes-erbjudande som levererar fullständigt hanterade kluster. Det möjliggör integrerad kontinuerlig integrering och kontinuerlig leverans (CI/CD), tillsammans med inbyggd styrning och säkerhet.
Azure Logic Apps är en molnbaserad plattform som skapar och kör automatiserade arbetsflöden. Mer information finns i ett exempel på en referensarkitektur.
Azure Container Apps är en fullständigt hanterad serverlös containertjänst som gör att du kan köra mikrotjänster och containerbaserade program på en serverlös plattform.
För distributioner i flera regioner bör du överväga att använda Azure Front Door för att ge snabb, tillförlitlig och säker åtkomst mellan dina användare och programmens statiska och dynamiska webbinnehåll.
Mer information om hur Application Gateway kan skydda API:er finns i Skydda API:er med Application Gateway och API Management.
Att tänka på
Dessa överväganden implementerar grundpelarna i Azure Well-Architected Framework, som är en uppsättning vägledande grundsatser som du kan använda för att förbättra kvaliteten på en arbetsbelastning. Mer information finns iWell-Architected Framework.
Tillförlitlighet
Tillförlitlighet hjälper till att säkerställa att ditt program kan uppfylla de åtaganden som du gör gentemot dina kunder. Mer information finns i Checklista för designgranskning för tillförlitlighet.
Distribuera minst två skalningsenheter för API Management som är spridda över två eller flera tillgänglighetszoner i varje region. Övervaka kapacitetsmåtten och etablera tillräckligt med kapacitetsenheter så att du kan fortsätta att fungera även om enheterna i en tillgänglighetszon går förlorade.
Vi rekommenderar att du använder Premium-nivån eftersom den stöder tillgänglighetszoner och distributioner i flera regioner. Den här funktionen innebär att dina tjänster kan fortsätta att köras även om en region eller zon slutar fungera. De här funktionerna hjälper dig att skydda ditt program vid avbrott eller katastrofer.
För haveriberedskap konfigurerar du API Management med en användartilldelad hanterad identitet i stället för en systemtilldelad identitet. Om du distribuerar om eller tar bort resursen finns identiteten och dess behörigheter kvar, så att du enklare kan återställa åtkomsten. Använd Azure Pipelines för att automatisera säkerhetskopieringar. Bestäm om du behöver distribuera dina tjänster i mer än en region för bättre tillförlitlighet.
Peering för virtuella nätverk ger starka prestanda i en region, men den har en skalbarhetsgräns på 500 nätverk. Om du behöver ansluta fler arbetsbelastningar använder du en hub-spoke-design eller Azure Virtual WAN.
Säkerhet
Säkerhet ger garantier mot avsiktliga attacker och missbruk av dina värdefulla data och system. Mer information finns i Checklista för designgranskning för säkerhet.
Valideringsprinciper för API Management validerar API-begäranden och svar mot ett OpenAPI-schema. Dessa funktioner ersätter inte en WAF, men de kan ge extra skydd mot vissa hot. Att lägga till valideringsprinciper kan ha prestandakonsekvenser, så vi rekommenderar att du använder prestandabelastningstester för att utvärdera deras inverkan på API-dataflödet.
Microsoft Defender för API:er ger fullständigt livscykelskydd, identifiering och svar för API:er som publicerats i API Management. En viktig funktion är att identifiera sårbarheter i OWASP-API:et (Open Web Application Security Project) de 10 främsta sårbarheterna genom avvikelseobservationer vid körning med hjälp av maskininlärningsbaserade och regelbaserade identifieringar.
API Management-arbetsytor hjälper dig att organisera och isolera dina API:er. Den här metoden gör det enklare att styra vem som kan komma åt och hantera dem. Varje arbetsyta kan ha en egen uppsättning behörigheter, så att du bara kan begränsa åtkomsten till de personer eller team som behöver den. Den här separationen minskar risken för oavsiktliga ändringar eller obehörig åtkomst och stöder en säkrare API-miljö.
Använd Key Vault-hemligheter som namngivna värden i API Management-principer för att skydda känslig information i API Management-principer.
Använd Application Gateway för extern åtkomst till en intern API Management-instans för att skydda API Management-instansen, skydda mot vanliga sårbarheter och sårbarheter för webbprogram med hjälp av WAF och aktivera hybridanslutning.
Distribuera API Management-gatewayen i ett virtuellt nätverk för att stödja hybridanslutning och ökad säkerhet.
Peering för virtuella nätverk förbättrar prestandan i en region och möjliggör privat kommunikation mellan virtuella nätverk.
När du använder en WAF introducerar du ett lager som inspekterar inkommande trafik för skadligt beteende. Det här skyddet hjälper till att blockera vanliga hot som SQL-inmatning och skript för flera platser. Application Gateway och DDoS-skydd (Distributed Denial-of-Service) hjälper till att förhindra att överdriven trafik eller anslutningsöversvämmningar överbelastar API Management-instansen. Mer information finns i Skydda API:er med hjälp av Application Gateway och API Management.
Med privata slutpunkter för Azure Functions kan du på ett säkert sätt ansluta till dina funktionsappar via en privat IP-adress i ditt virtuella nätverk. Den här konfigurationen förhindrar exponering av dina funktioner för det offentliga Internet, vilket minskar risken för obehörig åtkomst. I den här arkitekturen ser privata slutpunkter till att endast betrodda resurser i nätverket kan komma åt Azure Functions.
Kostnadsoptimering
Kostnadsoptimering fokuserar på sätt att minska onödiga utgifter och förbättra drifteffektiviteten. Mer information finns i Checklista för designgranskning för kostnadsoptimering.
Den här distributionen använder Premium-planen för att stödja tillgänglighetszoner och virtuella nätverksfunktioner. Om du inte behöver dedikerade instanser kan du också använda Flex Consumption, som stöder både nätverksåtkomst och tillgänglighetszoner. Granska priskalkylatorn för den här distributionen.
För bevis på koncept eller prototyper rekommenderar vi att du använder andra API Management-nivåer, till exempel Developer eller Standard.
Operativ skicklighet
Operational Excellence omfattar de driftsprocesser som distribuerar ett program och håller det igång i produktion. Mer information finns i Checklista för designgranskning för Operational Excellence.
Representera API Management-konfigurationer som Azure Resource Manager-mallar och anta en IaC-metod (infrastruktur som kod).
Använd en CI/CD-process för att hantera, version och uppdatera API Management-konfigurationer.
Skapa anpassade hälsoavsökningar för att verifiera statusen för din API Management-instans. Använd URL:en
/status-0123456789abcdefför att skapa en gemensam hälsoslutpunkt för API Management-tjänsten i programgatewayen.Certifikat som uppdateras i nyckelvalvet roteras automatiskt i API Management, vilket återspeglar ändringarna inom fyra timmar.
Om du använder ett DevOps-verktyg, till exempel Azure DevOps eller GitHub, fungerar molnbaserade agenter eller löpare via det offentliga Internet. Eftersom API Management i den här arkitekturen är inställt på ett internt nätverk måste du använda en DevOps-agent som har åtkomst till det virtuella nätverket. DevOps-agenten hjälper dig att distribuera principer och andra ändringar av API:erna i din arkitektur. Du kan använda dessa CI/CD-mallar för att separera processen i delar så att utvecklingsteamen kan distribuera ändringar för varje API. DevOps-löpare initierar mallarna för att hantera dessa enskilda distributioner.
Distribuera det här scenariot
Den här arkitekturen är tillgänglig på GitHub. Den innehåller alla nödvändiga IaC-filer och distributionsinstruktionerna.
Deltagare
Microsoft underhåller den här artikeln. Följande deltagare skrev den här artikeln.
Huvudsakliga författare:
- Pete Messina - Sverige | Senior molnlösningsarkitekt
- Anthony Nevico - Sverige | Senior molnlösningsarkitekt
Om du vill se linkedin-profiler som inte är offentliga loggar du in på LinkedIn.
Nästa steg
- ACCELERATOR för API Management-landningszon
- API Management-terminologi
- Dokumentation om Application Gateway