Delen via


API's beveiligen met Application Gateway en API Management

Azure API Management
Azure Application Gateway

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.

Diagram dat laat zien hoe Application Gateway en API Management API's beveiligen.

Een Visio-bestand van deze architectuur downloaden.

Workflow

  1. Application Gateway ontvangt HTTPS-aanvragen die de netwerkbeveiligingsgroep (NSG) van het subnet toestaat.

  2. 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.

  3. 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.

  4. Application Gateway accepteert interne aanroepen en proxy's van resources in hetzelfde virtuele Azure-netwerk onder api.<some-domain>/internal/*.

  5. 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:

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:

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:

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:

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.