API's beveiligen met Application Gateway en API Management

Azure API Management
Azure Application Gateway

Met meer workloads die voldoen aan de API-eerste benadering voor hun ontwerp en het groeiende aantal en de ernst van bedreigingen voor webtoepassingen via internet, is het essentieel om een beveiligingsstrategie te hebben om API's te beschermen. Een stap voor API-beveiliging is het beveiligen van het netwerkverkeer met behulp van het gatewayrouteringspatroon. U gebruikt de gateway om verkeersbronlocaties en verkeerskwaliteit te beperken, naast het ondersteunen van flexibele routeringsregels. In dit artikel wordt beschreven hoe u Azure-toepassing Gateway en Azure API Management gebruikt om API-toegang te beveiligen.

Architectuur

In dit artikel worden de onderliggende services van de toepassing, zoals App Service Environment, Azure SQL Managed Instance en Azure Kubernetes Services, niet behandeld. Deze onderdelen van het diagram laten alleen zien wat u als een bredere oplossing kunt doen. In dit artikel worden de gearceerde gebieden, API Management en Application Gateway beschreven.

Diagram showing how Application Gateway and API Management protect APIs.

Een Visio-bestand van deze architectuur downloaden.

Workflow

  • De Application Gateway ontvangt HTTP-aanvragen die zijn toegestaan door de netwerkbeveiligingsgroep (NSG) van het subnet.

  • De Web Application Firewall (WAF) in Application Gateway controleert vervolgens de aanvraag op basis van WAF-regels, inclusief geomatch-filtering. 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. Afhankelijk van de URL-indeling van de API-aanroep:

    • URL's die zijn opgemaakt zoals 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 dead end (sinkpool), een back-endpool zonder doel.

  • Bovendien accepteert Application Gateway interne aanroepen en proxy's, die afkomstig zijn van resources in hetzelfde virtuele Azure-netwerk, onder api.<some-domain>/internal/*.

  • Ten slotte worden API's op API Management-niveau ingesteld voor het accepteren van aanroepen onder de volgende patronen:

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

    In dit scenario maakt API Management gebruik van twee typen IP-adressen, openbaar en privé. Openbare IP-adressen zijn bedoeld voor interne communicatie op poort 3443 en voor runtime-API-verkeer in de configuratie van het externe virtuele netwerk. 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 de API Management-service in VNet voor meer informatie.

  • Een routeringsregel op Application Gateway-niveau leidt gebruikers portal.<some-domain>/* correct om naar de ontwikkelaarsportal, zodat ontwikkelaars API's en hun configuraties vanuit zowel interne als externe omgevingen kunnen beheren.

Onderdelen

  • Met Azure Virtual Network kunnen veel soorten Azure-resources privé communiceren met elkaar, internet en on-premises netwerken.

  • Azure-toepassing Gateway is een load balancer voor webverkeer waarmee verkeer naar webtoepassingen wordt beheerd. Dit type routering staat bekend al taakverdeling op de toepassingslaag (OSI-laag 7). Het host een Web Application Firewall (WAF) om te beschermen tegen veelvoorkomende aanvalsvectoren op internet.

  • Azure API Management is een hybride, multicloudbeheerplatform voor API's in alle omgevingen. API Management maakt consistente, moderne API-gateways voor bestaande back-endservices.

Aanbevelingen

Deze oplossing 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 VNET met Application Gateway voor meer informatie over het integratieproces van het virtuele NETWERK van API Management.

Als u wilt communiceren met privébronnen in de back-end, moeten Application Gateway en API Management zich in hetzelfde virtuele netwerk bevinden 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 de binnenkant van die netwerkcontext. Als u deze functie wilt inschakelen, implementeert u de lagen Developer of Premium API Management.

  • Certificaten en wachtwoorden beheren in Azure Key Vault.

  • Als u interacties met de services wilt personaliseren, kunt u CNAME-vermeldingen gebruiken.

Alternatieven

U kunt andere services gebruiken om een vergelijkbaar niveau van firewall- en WaF-beveiliging (Web Application Firewall) te leveren:

Overwegingen

Betrouwbaarheid

Azure-toepassing Gateway wordt altijd op maximaal beschikbare wijze geïmplementeerd, ongeacht het aantal exemplaren. Om de impact van een zonestoring te voorkomen, kunt u application gateway zo configureren dat meerdere Beschikbaarheidszones. Zie Automatische schaalaanpassing 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, waardoor ze bestand zijn tegen zonefouten. De API Management Premium-laag is vereist voor de ondersteuning van beschikbaarheidszones.

API Management biedt ook ondersteuning voor implementaties in meerdere regio's, waardoor de beschikbaarheid kan worden verbeterd als één regio offline gaat. Zie implementatie in meerdere regio's voor meer informatie. In deze topologie is het belangrijk om ook één Application Gateway per regio te hebben, omdat Application Gateway een regionale service is.

Beveiliging

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.

Azure DDoS Protection, gecombineerd met best practices voor toepassingsontwerp, biedt verbeterde DDoS-risicobeperkingsfuncties om meer bescherming te bieden tegen DDoS-aanvallen. Schakel Azure DDOS Protection in voor elk virtueel perimeternetwerk.

Kostenoptimalisatie

De kosten van deze architectuur zijn afhankelijk van configuratieaspecten zoals:

  • Servicelagen
  • Schaalbaarheid, wat betekent dat het aantal exemplaren dynamisch wordt toegewezen door services om een bepaalde vraag te ondersteunen
  • Of deze architectuur nu continu of slechts een paar uur per maand wordt uitgevoerd

Nadat u deze aspecten hebt beoordeeld, gaat u naar de Azure-prijscalculator om de prijzen te schatten.

Prestatie-efficiëntie

Application Gateway is het toegangspunt voor deze architectuur en de WAF-functie vereist extra verwerkingskracht voor elke aanvraaganalyse. Als u wilt toestaan dat Application Gateway de rekencapaciteit ter plaatse uitbreidt, is het belangrijk om automatisch schalen in te schakelen. Zie Automatische schaalaanpassing opgeven voor meer informatie. Volg de aanbevelingen voor productdocumentatie voor de grootte van het subnet voor Application Gateway. Dit zorgt ervoor dat het subnet groot genoeg is om volledige uitschaling te ondersteunen.

Als u maximaal gelijktijdige scenario's wilt ondersteunen, schakelt u automatische schaalaanpassing van API Management in. Automatisch schalen breidt API Management-mogelijkheden uit als reactie op groeiende aantallen binnenkomende aanvragen. Zie Automatisch een Azure API Management-exemplaar schalen voor meer informatie.

Dit scenario implementeren

Dit scenario wordt gedemonstreerd in de Azure Quickstart-galeriepublicatie van Application Gateway met interne API Management en Web App.

Volgende stappen

Ontwerp uw API's volgens goede richtlijnen voor het ontwerpen van web-API's en implementeer deze met behulp van goede web-API-implementatieprocedures .