Da sich zunehmend Workloads an den „API-First“-Ansatz für ihr Design halten und die Anzahl und der Schweregrad von Bedrohungen für Webanwendungen über das Internet beständig wächst, ist es von entscheidender Bedeutung, über eine Sicherheitsstrategie zum Schutz von APIs zu verfügen. Ein Schritt in Richtung API-Sicherheit besteht darin, den Netzwerkdatenverkehr mithilfe des Musters „Gatewayrouting“ zu schützen. Sie verwenden das Gateway, um die Standorte der Datenverkehrsquellen und die Datenverkehrsqualität zusätzlich zur Unterstützung flexibler Routingregeln einzuschränken. In diesem Artikel wird beschrieben, wie Sie Azure Application Gateway und Azure API Management verwenden, um den API-Zugriff zu schützen.
Aufbau
In diesem Artikel werden nicht die zugrunde liegenden Plattformen der Anwendung wie App Service-Umgebung, Azure SQL Managed Instance und Azure Kubernetes Services behandelt. Diese Teile des Diagramms zeigen nur, was Sie als allgemeinere Lösung unternehmen können. In diesem Artikel werden insbesondere die Grauzonen API Management und Application Gateway erläutert.
Laden Sie eine Visio-Datei dieser Architektur herunter.
Workflow
Das Anwendungsgateway empfängt HTTP-Anforderungen, die von der Netzwerksicherheitsgruppe (Network Security Group, NSG) ihres Subnetzes zugelassen wurden.
Die Web Application Firewall (WAF) in Application Gateway überprüft anschließend die Anforderung anhand von WAF-Regeln, einschließlich benutzerdefinierter Geomatch-Regeln. Wenn die Anforderung gültig ist, wird sie fortgesetzt.
Application Gateway richtet einen URL-Proxymechanismus ein, der die Anforderung an den ordnungsgemäßen Back-End-Pool sendet. In Abhängigkeit vom URL-Format des API-Aufrufs:
URLs, die wie
api.<some-domain>/external/*
formatiert sind, können das Back-End erreichen, um mit den angeforderten APIs zu interagieren.Aufrufe, die als
api.<some-domain>/*
formatiert sind, landen in einer Sackgasse (Sinkpool), wobei es sich um einen Back-End-Pool ohne Ziel handelt.
Application Gateway akzeptiert auch interne Aufrufe, die von Ressourcen im selben virtuellen Azure-Netzwerk stammen, und leitet sie unter
api.<some-domain>/internal/*
um.Schließlich werden APIs auf API Management-Ebene so festgelegt, dass sie Aufrufe der folgenden Muster akzeptieren:
api.<some-domain>/external/*
api.<some-domain>/internal/*
In diesem Szenario verwendet API Management zwei Arten von IP-Adressen – öffentlich und privat. Öffentliche IP-Adressen dienen der internen Kommunikation an Port 3443 und dem Runtime-API-Datenverkehr in der Konfiguration des externen virtuellen Netzwerks. Wenn API Management eine Anforderung an ein öffentliches Back-End mit Internetzugriff sendet, wird eine öffentliche IP-Adresse als Ursprung der Anforderung angezeigt. Weitere Informationen finden Sie unter IP-Adressen des API Management-Diensts im VNet.
Eine Routingregel auf Application Gateway-Ebene leitet Benutzer ordnungsgemäß unter
portal.<some-domain>/*
an das Entwicklerportal weiter, sodass Entwickler APIs und ihre Konfigurationen sowohl aus internen als auch aus externen Umgebungen heraus verwalten können.
Komponenten
Mit Azure Virtual Network können zahlreiche Arten von Azure-Ressourcen sicher miteinander sowie mit dem Internet und mit lokalen Netzwerken kommunizieren. In dieser Architektur ist das Application Gateway für das Tunneln des öffentlichen Internetdatenverkehrs in dieses private Netzwerk verantwortlich.
Azure Application Gateway ist ein Lastenausgleich für Webdatenverkehr, der den an die Webanwendung fließenden Datenverkehr verwaltet. Diese Art des Routings wird als Lastenausgleich auf Anwendungsebene (OSI-Schicht 7) bezeichnet. In dieser Architektur wird das Gateway nicht nur für das Routing verwendet, sondern hostet auch eine Web Application Firewall (WAF), um vor gängigen webbasierten Angriffsvektoren zu schützen.
Azure API Management ist eine hybride Multi-Cloud-Verwaltungsplattform für APIs in allen Umgebungen. API Management erstellt konsistente und moderne API-Gateways für vorhandene Back-End-Dienste. In dieser Architektur wird API Management in einem vollständig privaten Modus verwendet, um Probleme durch Überschneidungen aus dem API-Code und den Hosts zu entladen.
Empfehlungen
Diese Lösung konzentriert sich auf die Implementierung der gesamten Lösung und das Testen des API-Zugriffs von innerhalb und außerhalb des virtuellen API Management-Netzwerks. Weitere Informationen zur Verwendung des Prozesses zum Integrieren von API Management in ein virtuelles Netzwerk finden Sie unter Integrieren von API Management in ein internes VNET mit Application Gateway.
Um mit privaten Ressourcen im Back-End zu kommunizieren, müssen sich Application Gateway und API Management im selben virtuellen Netzwerk wie die Ressourcen oder in einem virtuellen Netzwerk mit Peering befinden.
Das private, interne Bereitstellungsmodell ermöglicht API Management, eine Verbindung mit einem vorhandenen virtuellen Netzwerk herzustellen, wodurch es innerhalb dieses Netzwerkkontexts erreichbar ist. Zum Aktivieren dieses Features stellen Sie entweder die Ebene Developer oder Premium von API Management bereit.
Verwalten Sie App-Gateway-Zertifikate in Azure Key Vault.
Um Interaktionen mit den Diensten zu personalisieren, können Sie CNAME-Einträge verwenden.
Alternativen
Sie können andere Dienste verwenden, um ein vergleichbares Schutzniveau wie bei einer Firewall und Web Application Firewall (WAF) zu bieten:
- Azure Front Door
- Azure Firewall
- Partnerlösungen wie Barracuda
- Andere im Azure Marketplace verfügbare Lösungen
Überlegungen
Zuverlässigkeit
Azure Application Gateway wird immer hochverfügbar bereitgestellt, unabhängig von der Anzahl der Instanzen. Um die Auswirkungen eines Zonenausfalls zu vermeiden, können Sie das Anwendungsgateway so konfigurieren, dass es mehrere Verfügbarkeitszonen umfasst. Weitere Informationen finden Sie unter Automatische Skalierung und Hochverfügbarkeit.
Aktivieren Sie Zonenredundanz für Ihre API Management-Dienstkomponenten, um Resilienz und Hochverfügbarkeit bereitzustellen. Zonenredundanz repliziert das API Management-Gateway und die Steuerungsebene zwischen Rechenzentren in physisch getrennten Zonen, sodass sie gegenüber Zonenausfällen resilient sind. Die Ebene Premium von API Management ist erforderlich, um Verfügbarkeitszonen zu unterstützen.
API Management unterstützt außerdem Bereitstellungen in mehreren Regionen, was die Verfügbarkeit verbessern kann, wenn eine Region offline geht. Weitere Informationen finden Sie unter Bereitstellungen in mehreren Regionen. In dieser Topologie ist es wichtig, auch über ein Anwendungsgateway pro Region zu verfügen, da Application Gateway ein regionaler Dienst ist.
Sicherheit
Weitere Informationen zur Application Gateway-Sicherheit finden Sie unter Azure-Sicherheitsbaseline für Application Gateway.
Weitere Informationen zur API Management-Sicherheit finden Sie unter Azure-Sicherheitsbaseline für API Management.
Azure DDoS Protection, kombiniert mit bewährten Methoden für den Anwendungsentwurf, bietet erweiterte Features zur DDoS-Risikominderung, um besser vor DDoS-Angriffen zu schützen. Sie sollten Azure DDOS Protection in allen virtuellen Umkreisnetzwerken aktivieren.
Kostenoptimierung
Die Kosten dieser Architektur hängen von Konfigurationsaspekten wie den folgenden ab:
- Dienstebenen
- Skalierbarkeit, d. h. die Anzahl der Instanzen, die von Diensten dynamisch zugeordnet werden, um einen bestimmten Bedarf zu unterstützen.
- Ob diese Architektur kontinuierlich oder nur wenige Stunden im Monat ausgeführt wird
Nachdem Sie diese Aspekte bewertet haben, wechseln Sie zum Azure-Preisrechner, um die Preise abzuschätzen.
Effiziente Leistung
Application Gateway ist der Einstiegspunkt für diese Architektur, und das WAF-Feature erfordert zusätzliche Verarbeitungsleistung für jede Anforderungsanalyse. Damit Application Gateway seine Rechenkapazität auf der Stelle erweitern kann, ist es wichtig, die automatische Skalierung zu aktivieren. Weitere Informationen finden Sie unter Angeben der automatischen Skalierung. Folgen Sie den Produktdokumentationsempfehlungen der Größe des Subnetzes für Application Gateway. Dadurch wird sichergestellt, dass das Subnetz groß genug ist, um die vollständige horizontale Skalierung zu unterstützen.
Aktivieren Sie die automatische Skalierung von API Management, um Szenarien mit vielen gleichzeitigen Prozessen zu unterstützen. Die automatische Skalierung erweitert API Management-Funktionen als Reaktion auf eine wachsende Anzahl eingehender Anforderungen. Weitere Informationen finden Sie unter Automatisches Skalieren einer Azure API Management-Instanz.
Bereitstellen dieses Szenarios
Dieses Szenario wird in der Veröffentlichung des Azure-Schnellstartkatalogs von Application Gateway mit internem API Management und interner Web App veranschaulicht.
Nächste Schritte
Entwerfen Sie Ihre APIs nach guten Richtlinien des Web-API-Designs, und implementieren Sie sie mithilfe von guten Methoden der Web-API-Implementierung.