API's beveiligen met Application Gateway en API Management
Organisaties nemen steeds vaker API-first ontwerpmethoden aan terwijl ze te maken krijgen met groeiende bedreigingen voor webtoepassingen. U hebt een uitgebreide beveiligingsstrategie nodig om API's te beveiligen, met name bij het beschikbaar maken van AI-API's en het implementeren van zero Trust-architectuurprincipes. Het routeringspatroon van de gateway biedt één benadering voor API-beveiliging door netwerkverkeer te beveiligen. De gateway beperkt de verkeersbronlocaties en de verkeerskwaliteit en ondersteunt flexibele routeringsregels. In dit artikel wordt beschreven hoe u Azure-toepassing Gateway en Azure API Management gebruikt om API-toegang te beveiligen.
Architecture
Dit artikel heeft geen betrekking op de onderliggende platforms van de toepassing, zoals App Service Environment, Azure SQL Managed Instance en Azure Kubernetes Service (AKS). Deze onderdelen van het diagram laten zien wat u als een bredere oplossing kunt implementeren. In dit artikel worden de gearceerde gebieden, API Management en Application Gateway beschreven.
Een Visio-bestand van deze architectuur downloaden.
Workflow
Application Gateway ontvangt HTTPS-aanvragen die de netwerkbeveiligingsgroep (NSG) van het subnet toestaat.
De Web Application Firewall (WAF) in Application Gateway controleert de aanvraag op BASIS VAN WAF-regels, inclusief aangepaste regels voor geomatch. Als de aanvraag geldig is, wordt de aanvraag voortgezet.
Application Gateway stelt een URL-proxymechanisme in waarmee de aanvraag naar de juiste back-endpool wordt verzonden. Het routeringsgedrag is afhankelijk van de URL-indeling van de API-aanroep:
URL's die zijn opgemaakt als
api.<some-domain>/external/*kunnen de back-end bereiken om te communiceren met de aangevraagde API's.Aanroepen die zijn opgemaakt als
api.<some-domain>/*go naar een dood einde, een sinkpool genoemd, een back-endpool zonder doel.Met een routeringsregel op Application Gateway-niveau worden gebruikers omgeleid naar
portal.<some-domain>/*de ontwikkelaarsportal. Ontwikkelaars kunnen API's en hun configuraties beheren vanuit zowel interne als externe omgevingen. U kunt de ontwikkelaarsportal ook volledig blokkeren.
Application Gateway accepteert interne aanroepen en proxy's van resources in hetzelfde virtuele Azure-netwerk onder
api.<some-domain>/internal/*.Op API Management-niveau accepteren API's aanroepen onder de volgende patronen:
api.<some-domain>/external/*api.<some-domain>/internal/*
In dit scenario maakt API Management gebruik van openbare en privé-IP-adressen. Openbare IP-adressen ondersteunen beheerbewerkingen op poort 3443 voor het beheervlak en voor runtime-API-verkeer in configuraties van externe virtuele netwerken. Wanneer API Management een aanvraag naar een openbare internetgerichte back-end verzendt, wordt er een openbaar IP-adres weergegeven als de oorsprong van de aanvraag. Zie IP-adressen van API Management in een virtueel netwerk voor meer informatie.
Components
Met Azure Virtual Network kunnen veel soorten Azure-resources privé communiceren met elkaar, internet en on-premises netwerken. In deze architectuur tunnels Application Gateway openbaar internetverkeer naar dit particuliere netwerk.
Application Gateway is een load balancer voor webverkeer waarmee verkeer naar webtoepassingen wordt beheerd. Dit type routering staat bekend als taakverdeling voor de toepassingslaag (OSI-laag 7). In deze architectuur biedt de gateway routering en host een WAF om te beschermen tegen algemene aanvalsvectoren op internet.
API Management- is een hybride, multicloudbeheerplatform voor API's in alle omgevingen. API Management maakt consistente, moderne API-gateways voor bestaande back-endservices. In deze architectuur werkt API Management in een volledig privémodus om kruislingse problemen van de API-code en -hosts te offloaden.
Alternatives
U kunt andere services gebruiken om een vergelijkbaar niveau van firewall- en WAF-beveiliging te leveren:
Azure Front Door biedt ingebouwde DDoS-beveiliging (Distributed Denial-of-Service) en wereldwijde taakverdeling.
Azure Firewall biedt beveiliging op netwerkniveau en gecentraliseerd beveiligingsbeleidsbeheer.
Partneroplossingen, zoals Barracuda WAF of andere WAF-oplossingen, zijn beschikbaar in Azure Marketplace.
Recommendations
Deze architectuur is gericht op het implementeren van de hele oplossing en het testen van API-toegang vanuit en buiten het virtuele API Management-netwerk. Zie API Management integreren in een intern virtueel netwerk met behulp van Application Gateway voor meer informatie over het integratieproces.
Als u wilt communiceren met privébronnen in de back-end, plaatst u Application Gateway en API Management in hetzelfde virtuele netwerk als de resources of in een gekoppeld virtueel netwerk.
Met het persoonlijke, interne implementatiemodel kan API Management verbinding maken met een bestaand virtueel netwerk, waardoor het bereikbaar is vanuit die netwerkcontext. Als u deze functie wilt inschakelen, implementeert u de lagen Developer of Premium API Management voor klassieke virtuele netwerkinjectie. Voor nieuwere opties voor virtuele netwerken gebruikt u de standard v2 - of Premium v2-lagen met mogelijkheden voor virtuele netwerkintegratie of injectiemogelijkheden.
Als uw clients werken in een ander abonnement of worden beheerd met een andere Microsoft Entra ID-map, gebruikt u Azure Private Link voor Application Gateway om privéconnectiviteit met Application Gateway te bieden vanuit virtuele clientnetwerken tussen abonnementen en regio's.
Application Gateway-certificaten beheren in Azure Key Vault.
Als u interacties met de services wilt personaliseren, kunt u canonieke naamvermeldingen (CNAME) gebruiken.
Considerations
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.
Reliability
Betrouwbaarheid zorgt ervoor dat uw toepassing kan voldoen aan de toezeggingen die u aan uw klanten hebt gedaan. Zie Controlelijst ontwerpbeoordeling voor betrouwbaarheidvoor meer informatie.
Application Gateway implementeert altijd in een maximaal beschikbare configuratie, ongeacht het aantal exemplaren. Als u de impact van een storing in een zone wilt verminderen, kunt u de toepassingsgateway zo configureren dat deze meerdere beschikbaarheidszones omvat. Zie Automatisch schalen en hoge beschikbaarheid voor meer informatie.
Schakel zoneredundantie in voor uw API Management-serviceonderdelen om tolerantie en hoge beschikbaarheid te bieden. Zoneredundantie repliceert de API Management-gateway en het besturingsvlak tussen datacenters in fysiek gescheiden zones. Deze configuratie maakt ze tolerant voor zonefouten. U moet de API Management Premium-laag gebruiken om beschikbaarheidszones te ondersteunen.
API Management biedt ook ondersteuning voor implementaties met meerdere regio's, waardoor de beschikbaarheid kan worden verbeterd als één regio offline gaat. Zie Ondersteuning voor meerdere regio's voor meer informatie. In deze topologie implementeert u één toepassingsgateway voor elke regio, omdat Application Gateway een regionale service is.
Security
Beveiliging biedt garanties tegen opzettelijke aanvallen en misbruik van uw waardevolle gegevens en systemen. Zie voor meer informatie controlelijst ontwerpbeoordeling voor Security.
Zie De Azure-beveiligingsbasislijn voor Application Gateway voor meer informatie over Application Gateway-beveiliging.
Zie De Azure-beveiligingsbasislijn voor API Management voor meer informatie over API Management-beveiliging.
Implementeer altijd de volgende beveiligingsmaatregelen:
Gebruik Azure Web Application Firewall-beleid met de nieuwste Open Web Application Security Project (OWASP) Core Rule Set (CRS) 3.2 of hoger om te beschermen tegen veelvoorkomende webproblemen, waaronder de OWASP Top 10-bedreigingen.
Configureer aangepaste waF-regels voor geomatch om verkeer te blokkeren of toe te staan op basis van geografische locatie. Deze benadering biedt enige bescherming tegen DDoS-aanvallen.
Schakel DDoS-beveiliging (Laag 7) in met behulp van Azure Web Application Firewall met Application Gateway om te beschermen tegen aanvallen op basis van volumetrische en protocollen. Combineer Azure DDoS Protection met procedures voor toepassingsontwerp om de DDoS-risicobeperkingsfuncties te verbeteren.
Gebruik privé-eindpunten voor API Management om beveiligde binnenkomende connectiviteit te bieden.
Schakel Microsoft Defender voor API's in om de API-beveiligingspostuur te bewaken en bedreigingen te detecteren.
Configureer beveiligingsregels voor WAF-bots om schadelijke bots te identificeren en te blokkeren.
Kostenoptimalisatie
Kostenoptimalisatie richt zich op manieren om onnodige uitgaven te verminderen en operationele efficiëntie te verbeteren. Zie controlelijst ontwerpbeoordeling voor kostenoptimalisatievoor meer informatie.
De kosten van deze architectuur zijn afhankelijk van verschillende configuratieaspecten:
Servicelagen: Overweeg de lagen Standard v2 en Premium v2 voor API Management om de kostenefficiëntie en prestaties te verbeteren.
Schaalbaarheid: Services wijzen dynamisch het aantal exemplaren toe om een bepaalde vraag te ondersteunen.
Runtimeduur: De kosten variëren, afhankelijk van of de architectuur continu of slechts een paar uur per maand wordt uitgevoerd.
Gegevensoverdracht: Voor implementaties met meerdere regio's worden kosten voor overdracht tussen regio's in rekening gebracht.
WAF-verwerking: De kosten zijn afhankelijk van het aantal aanvragen en regels dat wordt geëvalueerd.
Houd rekening met de volgende strategieën voor kostenoptimalisatie:
Gebruik de API Management-verbruikslaag voor laag gebruik, variabele workloads waarbij u alleen betaalt voor werkelijk gebruik.
Implementeer automatisch schalen van Application Gateway om het aantal exemplaren te optimaliseren op basis van de vraag.
Nadat u deze aspecten hebt beoordeeld, gebruikt u de Azure-prijscalculator om de prijzen te schatten.
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.
Uitgebreide bewaking en waarneembaarheid implementeren:
Configureer diagnostische gegevens van API Management om logboeken naar Azure Monitor te verzenden, zodat u Log Analytics kunt gebruiken voor gedetailleerde API-analyses.
Stel Diagnostische gegevens van Application Gateway in om WAF-gebeurtenissen en prestatiegegevens te bewaken.
Implementeer API Management-waarschuwingen voor API-prestatie- en beschikbaarheidsdrempels.
Prestatie-efficiëntie
Prestatie-efficiëntie verwijst naar de mogelijkheid van uw workload om efficiënt te voldoen aan de behoeften van de gebruiker. Zie controlelijst ontwerpbeoordeling voor prestatie-efficiëntievoor meer informatie.
Application Gateway fungeert als het toegangspunt voor deze architectuur en de Azure Web Application Firewall-functie vereist verwerkingskracht voor elke aanvraaganalyse. Schakel automatisch schalen in om Application Gateway toe te staan de rekencapaciteit op aanvraag uit te breiden. Zie Automatisch schalen en zoneredundantie in Application Gateway voor meer informatie. Volg de aanbevelingen voor productdocumentatie voor de configuratie van de Application Gateway-infrastructuur, inclusief de juiste grootte van subnetten. Deze aanpak zorgt ervoor dat het subnet groot genoeg is om volledige uitschaling te ondersteunen.
Bekijk de volgende prestatieoptimalisaties voor API Management:
Schakel automatisch schalen van API Management in om automatisch te reageren op toenemende aanvraagvolumes.
Gebruik cachebeleid voor API Management om de back-endbelasting te verminderen en de reactietijden te verbeteren.
Implementeer frequentiebeperking voor API Management om back-endservices te beschermen tegen overmatige belasting.
Gebruik standard v2- of Premium v2-lagen om de prestaties en netwerkmogelijkheden te verbeteren.
Volgende stappen
Als u API's wilt ontwerpen, volgt u goede richtlijnen voor het ontwerpen van web-API's . Gebruik goede implementatieprocedures voor web-API's om API's te implementeren.
Verwante middelen
- Routeringspatroon van gateway: routeaanvragen naar meerdere services met behulp van één eindpunt.
- Aggregatiepatroon van gateway: meerdere aanvragen aggregeren in één aanvraag.
- Offloadingpatroon van gateway: Gedeelde functionaliteit offloaden naar een API-gateway.
- Overzicht van routering op basis van URL-pad
- Zelfstudie: Een toepassingsgateway maken met op een URL-pad gebaseerde omleiding met behulp van de Azure CLI