Architectuur van azure API Management-landingszone
API's zijn steeds meer geïntegreerd in de wijze waarop organisaties en hun klanten toegang hebben tot services, zowel binnen interne systemen als via externe kanalen. Intern maken API's de toegang tot LobB-toepassingen (Line-Of-Business), bedrijfseigen oplossingen en partnerintegraties mogelijk. Extern is een groeiend aantal organisaties gericht op het verbeteren van de productiviteit en het genereren van inkomsten via API-inkomsten. Gezien deze trend fungeert Azure API Management als een fundamenteel element in de gestandaardiseerde governance, publicatie en toezicht op API's voor zowel interne als externe belanghebbenden.
Azure Application Gateway fungeert als beveiligingscontrolepunt voor API's. In plaats van gebruikers rechtstreeks via internet verbinding te laten maken, routeert u al het verkeer via een toepassingsgateway. Met deze installatie worden extra besturingselementen voor toegang toegevoegd om uw API's te beveiligen. Met deze aanpak kunt u één API Management-exemplaar gebruiken om zowel interne API's binnen uw organisatie als externe API's buiten uw organisatie te ondersteunen, terwijl alle openbaar beschikbare API's achter de gateway worden beveiligd.
Notitie
Deze architectuur fungeert als de basis van de richtlijnen voor API Management in Azure-landingszones in het Cloud Adoption Framework voor Azure.
Architectuur
Een Visio-bestand van deze architectuur downloaden.
In deze architectuur wordt ervan uitgegaan dat het beleid is geïmplementeerd vanuit de referentie-implementatie van de Azure-landingszone en dat de structuur omlaag wordt gestuurd vanuit de beheergroep.
Werkproces
Openbare IP-adressen worden toegewezen aan een toepassingsgateway, die fungeert als het toegangspunt voor extern verkeer. Dat eindpunt maakt API's beschikbaar via een aangepast domein.
De toepassingsgateway wordt geïmplementeerd in een eigen subnet en beveiligd door WAF-beleid (Web Application Firewall) om binnenkomende aanvragen te controleren en te filteren.
Verkeer wordt gerouteerd van de toepassingsgateway naar API Management (Premium), dat zich in een afzonderlijk API Management-subnet bevindt. Het API Management-exemplaar is geconfigureerd in de interne modus, waardoor directe openbare toegang wordt voorkomen.
Privé-eindpunten worden gebruikt om API Management veilig te verbinden met back-endtoepassingsservers die alleen beschikbaar zijn voor het virtuele netwerk. API Management verbindt ook periodiek afhankelijkheden, zoals Azure-sleutelkluizen. Normaal gesproken vindt al deze privéconnectiviteit plaats met eindpunten in een toegewezen privé-eindpuntsubnet.
Log Analytics-werkruimten en Application Insights zijn geïntegreerd voor logboekregistratie, bewaking en telemetrie.
Onderdelen
API Management is een beheerde service waarmee u services in hybride en multicloudomgevingen kunt beheren. Het biedt controle en beveiliging voor de waarneembaarheid en het verbruik van API's door zowel interne als externe gebruikers. In deze architectuur fungeert API Management als een gevel om de back-endarchitectuur te abstraheren.
Application Gateway is een beheerde service die fungeert als een load balancer van laag 7 en WAF. Application Gateway beveiligt het interne API Management-exemplaar, waardoor zowel interne als externe modi kunnen worden gebruikt. In deze architectuur beveiligt API Management API's en voegt Application Gateway aanvullende mogelijkheden toe, zoals WAF.
Dns-zones (Private Domain Name System) zijn een functie van Azure DNS waarmee u domeinnamen binnen een virtueel netwerk kunt beheren en omzetten zonder dat u een aangepaste DNS-oplossing hoeft te implementeren. Een privé-DNS-zone kan worden afgestemd op een of meer virtuele netwerken via virtuele netwerkkoppelingen. In deze architectuur is een privé-DNS-zone vereist om de juiste naamomzetting binnen het virtuele netwerk te garanderen.
Application Insights is een uitbreidbare service voor het beheer van toepassingsprestaties waarmee ontwikkelaars afwijkingen kunnen detecteren, problemen kunnen diagnosticeren en gebruikspatronen kunnen begrijpen. Application Insights biedt uitbreidbaar beheer van toepassingsprestaties en bewaking voor live web-apps. Verschillende platforms worden ondersteund, waaronder .NET, Node.js, Java en Python. Het ondersteunt apps die worden gehost in Azure, on-premises, in een hybride omgeving of in andere openbare clouds. In deze architectuur bewaakt Application Insights het gedrag van de geïmplementeerde toepassing.
Log Analytics is een hulpprogramma voor gegevensanalyse in de cloud waarmee u logboekquery's kunt bewerken en uitvoeren op basis van gegevens in Azure Monitor-logboeken, optioneel vanuit Azure Portal. Ontwikkelaars kunnen eenvoudige query's uitvoeren om records op te halen of Log Analytics te gebruiken voor geavanceerde analyse en vervolgens de resultaten visualiseren. In deze architectuur voegt Log Analytics alle platformresourcelogboeken samen voor analyse en rapportage.
Azure Key Vault is een cloudservice waarmee geheimen veilig worden opgeslagen en geopend. Deze geheimen variëren van API-sleutels en wachtwoorden tot certificaten en cryptografische sleutels. In deze architectuur slaat Key Vault de SSL-certificaten (Secure Sockets Layer) op die door Application Gateway worden gebruikt.
Alternatieven
Voor de back-endservices waarmee het API Management-exemplaar verbinding maakt, zijn er verschillende alternatieven beschikbaar:
Azure App Service is een volledig beheerde HTTP-service waarmee web-apps worden gebouwd, geïmplementeerd en geschaald. Het ondersteunt .NET, .NET Core, Java, Ruby, Node.js, PHP en Python. Toepassingen kunnen worden uitgevoerd en geschaald in Windows- of Linux-omgevingen.
Azure Kubernetes Service (AKS) is een beheerde Kubernetes-aanbieding die volledig beheerde clusters levert. Het maakt geïntegreerde continue integratie en continue levering (CI/CD) mogelijk, samen met ingebouwde governance en beveiliging.
Azure Logic Apps is een cloudplatform waarmee geautomatiseerde werkstromen worden gemaakt en uitgevoerd. Zie een voorbeeld van een referentiearchitectuur voor meer informatie.
Azure Container Apps is een volledig beheerde serverloze containerservice waarmee u microservices en toepassingen in containers kunt uitvoeren op een serverloos platform.
Voor implementaties met meerdere regio's kunt u Azure Front Door gebruiken om snelle, betrouwbare en veilige toegang te bieden tussen uw gebruikers en de statische en dynamische webinhoud van uw toepassingen.
Zie API's beveiligen met Application Gateway en API Management voor meer voorbeelden van hoe Application Gateway API's kan beveiligen.
Overwegingen
Met deze overwegingen worden de pijlers van het Azure Well-Architected Framework geïmplementeerd. Dit is een set richtlijnen die u kunt gebruiken om de kwaliteit van een workload te verbeteren. Zie Well-Architected Framework voor meer informatie.
Betrouwbaarheid
Betrouwbaarheid zorgt ervoor dat uw toepassing kan voldoen aan de toezeggingen die u aan uw klanten hebt gedaan. Zie de controlelijst ontwerpbeoordeling voor betrouwbaarheid voor meer informatie.
Implementeer ten minste twee schaaleenheden van API Management die zijn verdeeld over twee of meer beschikbaarheidszones in elke regio. Bewaak de metrische capaciteitsgegevens en richt voldoende capaciteitseenheden in, zodat u kunt blijven werken, zelfs als de eenheden in één beschikbaarheidszone verloren gaan.
U wordt aangeraden de Premium-laag te gebruiken omdat deze ondersteuning biedt voor beschikbaarheidszones en implementaties met meerdere regio's. Deze mogelijkheid betekent dat uw services kunnen blijven worden uitgevoerd, zelfs als één regio of zone uitvalt. Deze functies helpen uw toepassing te beschermen tijdens storingen of noodgevallen.
Voor herstel na noodgevallen stelt u API Management in met een door de gebruiker toegewezen beheerde identiteit in plaats van een door het systeem toegewezen identiteit. Als u de resource opnieuw implementeert of verwijdert, blijven de identiteit en de bijbehorende machtigingen aanwezig, zodat u de toegang gemakkelijker kunt herstellen. Gebruik Azure Pipelines om back-ups te automatiseren. Bepaal of u uw services in meer dan één regio wilt implementeren voor een betere betrouwbaarheid.
Peering van virtuele netwerken biedt sterke prestaties binnen een regio, maar heeft een schaalbaarheidslimiet van 500 netwerken. Als u meer workloads wilt verbinden, gebruikt u een hub-spoke-ontwerp of Azure Virtual WAN.
Beveiliging
Beveiliging biedt garanties tegen opzettelijke aanvallen en misbruik van uw waardevolle gegevens en systemen. Zie de controlelijst ontwerpbeoordeling voor beveiliging voor meer informatie.
API Management-validatiebeleid valideert API-aanvragen en -antwoorden op basis van een OpenAPI-schema. Deze functies zijn geen vervanging voor een WAF, maar ze kunnen extra bescherming bieden tegen bepaalde bedreigingen. Het toevoegen van validatiebeleid kan gevolgen hebben voor de prestaties, dus we raden u aan prestatiebelastingstests te gebruiken om de impact op de API-doorvoer te beoordelen.
Microsoft Defender voor API's biedt volledige levenscyclusbeveiliging, detectie en reactie voor API's die zijn gepubliceerd in API Management. Een belangrijke mogelijkheid is het detecteren van aanvallen van de Open Web Application Security Project (OWASP) API Top 10 beveiligingsproblemen via runtime anomalieobservaties met behulp van detecties op basis van machine learning en op regels gebaseerde detecties.
API Management-werkruimten helpen u bij het organiseren en isoleren van uw API's. Deze aanpak maakt het eenvoudiger om te bepalen wie er toegang heeft tot en beheren. Elke werkruimte kan een eigen set machtigingen hebben, zodat u de toegang kunt beperken tot alleen de personen of teams die deze nodig hebben. Deze scheiding vermindert het risico op onbedoelde wijzigingen of onbevoegde toegang en ondersteunt een veiligere API-omgeving.
Gebruik Key Vault-geheimen als benoemde waarden in API Management-beleid om gevoelige informatie in API Management-beleid te beveiligen.
Gebruik Application Gateway voor externe toegang van een intern API Management-exemplaar om het API Management-exemplaar te beveiligen, te beschermen tegen veelvoorkomende aanvallen en beveiligingsproblemen van webtoepassingen met behulp van WAF en hybride connectiviteit in te schakelen.
Implementeer de API Management-gateway in een virtueel netwerk ter ondersteuning van hybride connectiviteit en verbeterde beveiliging.
Peering van virtuele netwerken verbetert de prestaties in een regio en maakt privécommunicatie tussen virtuele netwerken mogelijk.
Wanneer u een WAF gebruikt, introduceert u een laag die binnenkomend verkeer inspecteert op schadelijk gedrag. Deze beveiliging helpt veelvoorkomende bedreigingen, zoals SQL-injectie en cross-site scripting, te blokkeren. Application Gateway en DDoS-beveiliging (DDoS) voor gedistribueerde denial-of-service (DDoS) helpen te voorkomen dat overmatig verkeer of verbindingsstromen het API Management-exemplaar overspoeld raken. Zie API's beveiligen met Application Gateway en API Management voor meer informatie.
Met privé-eindpunten voor Azure Functions kunt u veilig verbinding maken met uw functie-apps via een privé-IP-adres in uw virtuele netwerk. Deze instelling voorkomt blootstelling van uw functies aan het openbare internet, waardoor het risico op onbevoegde toegang wordt beperkt. In deze architectuur zorgen privé-eindpunten ervoor dat alleen vertrouwde resources in uw netwerk toegang hebben tot Azure Functions.
Kostenoptimalisatie
Kostenoptimalisatie richt zich op manieren om onnodige uitgaven te verminderen en operationele efficiëntie te verbeteren. Zie de controlelijst ontwerpbeoordeling voor Kostenoptimalisatie voor meer informatie.
Deze implementatie maakt gebruik van het Premium-abonnement ter ondersteuning van de beschikbaarheidszone en de mogelijkheden van virtuele netwerken. Als u geen toegewezen exemplaren nodig hebt, kunt u ook Flex Consumption gebruiken, dat zowel netwerktoegang als beschikbaarheidszones ondersteunt. Bekijk de prijscalculator voor deze implementatie.
Voor bewijs van concepten of prototypen wordt u aangeraden andere API Management-lagen te gebruiken, zoals Developer of Standard.
Operationele uitmuntendheid
Operational Excellence behandelt de operationele processen die een toepassing implementeren en deze in productie houden. Zie de controlelijst ontwerpbeoordeling voor Operational Excellence voor meer informatie.
Vertegenwoordig API Management-configuraties als Azure Resource Manager-sjablonen en gebruik een IaC-benadering (Infrastructure as Code).
Gebruik een CI/CD-proces om API Management-configuraties te beheren, versie en bij te werken.
Maak aangepaste statustests om de status van uw API Management-exemplaar te valideren. Gebruik de URL
/status-0123456789abcdefom een algemeen statuseindpunt te maken voor de API Management-service in de toepassingsgateway.Certificaten die in de sleutelkluis worden bijgewerkt, worden automatisch geroteerd in API Management, wat de wijzigingen binnen vier uur weerspiegelt.
Als u een DevOps-hulpprogramma gebruikt, zoals Azure DevOps of GitHub, werken in de cloud gehoste agents of hardlopers via het openbare internet. Omdat API Management in deze architectuur is ingesteld op een intern netwerk, moet u een DevOps-agent gebruiken die toegang heeft tot het virtuele netwerk. Met de DevOps-agent kunt u beleidsregels en andere wijzigingen in de API's in uw architectuur implementeren. U kunt deze CI/CD-sjablonen gebruiken om het proces te scheiden in onderdelen, zodat uw ontwikkelteams wijzigingen voor elke API kunnen implementeren. DevOps-runners initiëren de sjablonen voor het afhandelen van deze afzonderlijke implementaties.
Dit scenario implementeren
Deze architectuur is beschikbaar op GitHub. Het bevat alle benodigde IaC-bestanden en de implementatie-instructies.
Medewerkers
Microsoft onderhoudt dit artikel. De volgende inzenders hebben dit artikel geschreven.
Belangrijkste auteurs:
- Pete Urla | Senior Cloud Solution Architect
- Anthony Nevico | Senior Cloud Solution Architect
Als u niet-openbare LinkedIn-profielen wilt zien, meldt u zich aan bij LinkedIn.
Volgende stappen
- Api Management-landingszoneversneller
- API Management-terminologie
- Documentatie voor Application Gateway