Freigeben über


Azure API Management Architektur der Zielzone

Azure API Management
Azure Application Gateway
Azure-Funktionen
.NET

APIs sind zunehmend ein wesentlicher Bestandteil davon geworden, wie Organisationen und ihre Kunden sowohl innerhalb interner Systeme als auch über externe Kanäle auf Dienstleistungen zugreifen. Intern erleichtern APIs den Zugriff auf Branchenanwendungen, proprietäre Lösungen und Partnerintegrationen. Extern konzentriert sich eine wachsende Anzahl von Organisationen auf die Steigerung der Produktivität und das Generieren von Einnahmen durch API-Monetarisierung. Angesichts dieses Trends dient Azure API Management als grundlegendes Element in der standardisierten Governance, Veröffentlichung und Aufsicht von APIs für interne und externe Stakeholder.

Azure Application Gateway dient als Sicherheitsprüfpunkt für APIs. Anstatt Benutzern die direkte Verbindung über das Internet zu ermöglichen, leiten Sie den gesamten Datenverkehr über ein Anwendungsgateway weiter. Dieses Setup fügt zusätzliche Zugriffssteuerungen hinzu, um Ihre APIs zu schützen. Mit diesem Ansatz können Sie eine einzelne API-Verwaltungsinstanz verwenden, um sowohl interne APIs innerhalb Ihrer Organisation als auch externe APIs außerhalb Ihrer Organisation zu unterstützen, während alle öffentlich verfügbar gemachten APIs, die hinter dem Gateway geschützt sind, beibehalten werden.

Hinweis

Diese Architektur bildet die Grundlage der Anleitung für das API-Management in einer Azure-Landezone im Cloud Adoption Framework für Azure.

Aufbau

Das Diagramm zeigt eine sichere Basisarchitektur für die API-Verwaltung.

Laden Sie eine Visio-Datei dieser Architektur herunter.

Bei dieser Architektur wird davon ausgegangen, dass die Richtlinien aus der Azure Zielzonenreferenzimplementierung vorhanden sind und dass die Struktur von der Verwaltungsgruppe nach unten gesteuert wird.

Arbeitsablauf

  • Öffentliche IP-Adressen werden einem Anwendungsgateway zugewiesen, das als Einstiegspunkt für externen Datenverkehr dient. Dieser Endpunkt macht APIs über eine benutzerdefinierte Domäne verfügbar.

  • Das Anwendungsgateway wird in einem eigenen Subnetz bereitgestellt und durch Web Application Firewall (WAF)-Richtlinien geschützt, um eingehende Anforderungen zu prüfen und zu filtern.

  • Der Datenverkehr wird vom Anwendungsgateway an die API-Verwaltung (Premium) weitergeleitet, die sich in einem separaten API-Verwaltungssubnetz befindet. Die API-Verwaltungsinstanz ist im internen Modus konfiguriert, wodurch der direkte öffentliche Zugriff verhindert wird.

  • Private Endpunkte werden verwendet, um die API-Verwaltung sicher mit Back-End-Anwendungsservern zu verbinden, die nur für das virtuelle Netzwerk verfügbar gemacht werden. Die API-Verwaltung stellt regelmäßig Verbindungen zu Abhängigkeiten her, wie beispielsweise zu Azure Key Vaults. In der Regel erfolgt diese private Konnektivität mit Endpunkten in einem dedizierten privaten Endpunktsubnetz.

  • Log Analytics und Application Insights Arbeitsbereiche sind integriert für die Protokollierung, Überwachung und Telemetrie.

Komponenten

  • DIE API-Verwaltung ist ein verwalteter Dienst, mit dem Sie Dienste in hybriden und multicloud-Umgebungen verwalten können. Es bietet Kontrolle und Sicherheit für API-Observability und -Verbrauch durch interne und externe Benutzer. In dieser Architektur dient API Management als Fassade, um die Back-End-Architektur abstrahieren zu können.

  • Das Anwendungsgateway ist ein verwalteter Dienst, der als Layer-7-Lastenausgleich und WAF dient. Das Anwendungsgateway schützt die interne API-Verwaltungsinstanz, die die Verwendung interner und externer Modi ermöglicht. In dieser Architektur sichert API Management APIs, und Das Anwendungsgateway fügt ergänzende Funktionen wie WAF hinzu.

  • Private Domain Name System (DNS)-Zonen sind ein Feature von Azure DNS, mit dem Sie Domänennamen in einem virtuellen Netzwerk verwalten und auflösen können, ohne eine benutzerdefinierte DNS-Lösung implementieren zu müssen. Eine private DNS-Zone kann über virtuelle Netzwerkverbindungen an einem oder mehreren virtuellen Netzwerken ausgerichtet werden. In dieser Architektur ist eine private DNS-Zone erforderlich, um die richtige Namensauflösung innerhalb des virtuellen Netzwerks sicherzustellen.

  • Application Insights ist ein erweiterbarer Anwendungsleistungsverwaltungsdienst, der Entwicklern hilft, Anomalien zu erkennen, Probleme zu diagnostizieren und Verwendungsmuster zu verstehen. Application Insights bietet eine erweiterbare Verwaltung und Überwachung der Anwendungsleistung für Live-Web-Apps. Verschiedene Plattformen werden unterstützt, darunter .NET, Node.js, Java und Python. Es unterstützt Apps, die in Azure, lokal, in einer Hybridumgebung oder in anderen öffentlichen Clouds gehostet werden. In dieser Architektur überwacht Application Insights das Verhalten der bereitgestellten Anwendung.

  • Log Analytics ist ein cloudbasiertes Datenanalysetool, mit dem Sie Protokollabfragen in Azure Monitor Protokollen bearbeiten und ausführen können, optional im Azure Portal. Entwickler können einfache Abfragen ausführen, um Datensätze abzurufen oder Log Analytics für die erweiterte Analyse zu verwenden, und dann die Ergebnisse visualisieren. In dieser Architektur aggregiert Log Analytics alle Plattformressourcenprotokolle zur Analyse und Berichterstellung.

  • Azure Key Vault ist ein Clouddienst, der geheime Schlüssel sicher speichert und darauf zugreift. Diese geheimen Schlüssel reichen von API-Schlüsseln und Kennwörtern bis hin zu Zertifikaten und kryptografischen Schlüsseln. In dieser Architektur speichert Key Vault die Ssl-Zertifikate (Secure Sockets Layer), die das Anwendungsgateway verwendet.

Alternativen

Für die Back-End-Dienste, mit denen die API-Verwaltungsinstanz eine Verbindung herstellt, stehen mehrere Alternativen zur Verfügung:

  • Azure App Service ist ein vollständig verwalteter HTTP-basierter Dienst, der Web-Apps erstellt, bereitgestellt und skaliert. Es unterstützt .NET, .NET Core, Java, Ruby, Node.js, PHP und Python. Anwendungen können in Windows- oder Linux-basierten Umgebungen ausgeführt und skaliert werden.

  • Azure Kubernetes Service (AKS) ist ein verwaltetes Kubernetes-Angebot, das vollständig verwaltete Cluster bereitstellt. Es ermöglicht integrierte kontinuierliche Integration und kontinuierliche Bereitstellung (CI/CD) sowie integrierte Governance und Sicherheit.

  • Azure Logic Apps ist eine cloudbasierte Plattform, die automatisierte Workflows erstellt und ausführt. Weitere Informationen finden Sie in einer Beispielreferenzarchitektur.

  • Azure Container Apps ist ein vollständig verwalteter serverloser Containerdienst, mit dem Sie Microservices und containerisierte Anwendungen auf einer serverlosen Plattform ausführen können.

Für Multiregion-Bereitstellungen sollten Sie Azure Front Door verwenden, um schnellen, zuverlässigen und sicheren Zugriff zwischen Ihren Benutzern und den statischen und dynamischen Webinhalten Ihrer Anwendungen zu ermöglichen.

Weitere Beispiele zum Schützen von APIs finden Sie unter "Schützen von APIs mit Anwendungsgateway und API-Verwaltung".

Überlegungen

Diese Überlegungen implementieren die Säulen des Azure Well-Architected-Frameworks, die eine Reihe von Leitsätzen sind, die Sie verwenden können, um die Qualität einer Arbeitsauslastung zu verbessern. Weitere Informationen finden Sie unter Well-Architected Framework.

Zuverlässigkeit

Zuverlässigkeit trägt dazu bei, dass Ihre Anwendung die Verpflichtungen erfüllen kann, die Sie für Ihre Kunden vornehmen. Weitere Informationen finden Sie unter Erstellen einer Checkliste zur Überprüfung der Zuverlässigkeit.

  • Stellen Sie mindestens zwei Skalierungseinheiten der API-Verwaltung bereit, die über zwei oder mehr Verfügbarkeitszonen in jeder Region verteilt sind. Überwachen Sie die Kapazitätsmetriken, und stellen Sie ausreichende Kapazitätseinheiten bereit, damit Sie weiterhin arbeiten können, auch wenn die Einheiten in einer Verfügbarkeitszone verloren gehen.

  • Es wird empfohlen, die Premium-Stufe zu verwenden, da sie Verfügbarkeitszonen und multiregionsübergreifende Bereitstellungen unterstützt. Diese Fähigkeit bedeutet, dass Ihre Dienste auch dann ausgeführt werden können, wenn eine Region oder Zone ausfällt. Diese Features tragen zum Schutz Ihrer Anwendung bei Ausfallen oder Katastrophen bei.

  • Richten Sie für die Notfallwiederherstellung die API-Verwaltung mit einer vom Benutzer zugewiesenen verwalteten Identität anstelle einer vom System zugewiesenen Identität ein. Wenn Sie die Ressource erneut bereitstellen oder löschen, bleiben die Identität und ihre Berechtigungen vorhanden, sodass Sie den Zugriff einfacher wiederherstellen können. Verwenden Sie Azure Pipelines, um Sicherungen zu automatisieren. Entscheiden Sie, ob Sie Ihre Dienste in mehr als einer Region bereitstellen müssen, um eine bessere Zuverlässigkeit zu erzielen.

  • Virtuelles Netzwerk-Peering bietet eine starke Leistung innerhalb einer Region, verfügt jedoch über eine Skalierbarkeitsgrenze von 500 Netzwerken. Wenn Sie weitere Workloads verbinden müssen, verwenden Sie ein Hub-Spoke-Design oder Azure Virtual WAN.

Sicherheit

Sicherheit bietet Sicherheitsmaßnahmen gegen bewusste Angriffe und den Missbrauch Ihrer wertvollen Daten und Systeme. Weitere Informationen finden Sie unter Erstellen einer Checkliste zur Überprüfung der Sicherheit.

  • Api-Verwaltungsüberprüfungsrichtlinien überprüfen API-Anforderungen und -Antworten anhand eines OpenAPI-Schemas. Diese Features sind kein Ersatz für eine WAF, aber sie können zusätzlichen Schutz vor einigen Bedrohungen bieten. Das Hinzufügen von Validierungsrichtlinien kann Auswirkungen auf die Leistung haben, daher wird empfohlen, Leistungslasttests zu verwenden, um deren Auswirkungen auf den API-Durchsatz zu bewerten.

  • Microsoft Defender für APIs bietet vollständigen Lebenszyklusschutz, Erkennung und Reaktion auf APIs, die in der API-Verwaltung veröffentlicht wurden. Eine wichtige Funktion besteht darin, Exploits der Open Web Application Security Project (OWASP) API-Top-10-Schwachstellen durch Anomaliebeobachtungen zur Laufzeit mithilfe von maschinenlern-basierten und regelbasierten Erkennungen zu identifizieren.

  • API-Verwaltungsarbeitsbereiche helfen Ihnen beim Organisieren und Isolieren Ihrer APIs. Mit diesem Ansatz können Sie leichter steuern, wer darauf zugreifen und diese verwalten kann. Jeder Arbeitsbereich kann über einen eigenen Satz von Berechtigungen verfügen, sodass Sie den Zugriff nur auf die Personen oder Teams beschränken können, die ihn benötigen. Diese Trennung reduziert das Risiko versehentlicher Änderungen oder nicht autorisierten Zugriffs und unterstützt eine sicherere API-Umgebung.

  • Verwenden Sie Key Vault-Geheimnisse als benannte Werte in API-Management-Richtlinien, um sensible Informationen in API-Management-Richtlinien zu schützen.

  • Verwenden Sie das Anwendungsgateway für den externen Zugriff einer internen API-Verwaltungsinstanz , um die API-Verwaltungsinstanz zu schützen, vor allgemeinen Webanwendungs-Exploits und Sicherheitsrisiken mithilfe von WAF zu schützen und die Hybridkonnektivität zu aktivieren.

  • Stellen Sie das API-Verwaltungsgateway in einem virtuellen Netzwerk bereit, um hybride Konnektivität und erhöhte Sicherheit zu unterstützen.

  • Virtual Network Peering verbessert die Leistung in einer Region und ermöglicht die private Kommunikation zwischen virtuellen Netzwerken.

  • Wenn Sie eine WAF verwenden, führen Sie eine Ebene ein, die eingehenden Datenverkehr auf böswilliges Verhalten überprüft. Dieser Schutz hilft bei der Blockierung allgemeiner Bedrohungen wie sql injection und cross-site scripting. Der Anwendungsgateway-Schutz und der verteilte Denial-of-Service-Schutz (DDoS) helfen, übermäßigen Datenverkehr oder Verbindungsfluten zu verhindern, die die API-Verwaltungsinstanz überwältigen könnten. Weitere Informationen finden Sie unter Schützen von APIs mithilfe des Anwendungsgateways und der API-Verwaltung.

  • Private Endpunkte für Azure Functions ermöglichen es Ihnen, eine sichere Verbindung mit Ihren Funktions-Apps über eine private IP-Adresse in Ihrem virtuellen Netzwerk herzustellen. Diese Einrichtung verhindert die Gefährdung Ihrer Funktionen im öffentlichen Internet, wodurch das Risiko eines nicht autorisierten Zugriffs reduziert wird. In dieser Architektur stellen private Endpunkte sicher, dass nur vertrauenswürdige Ressourcen in Ihrem Netzwerk auf Azure Functions zugreifen können.

Umgang mit API-Managementrichtlinien hinter einem Reverse-Proxy

Das Anwendungsgateway mit Web Application Firewall (WAF) wird vor der API-Verwaltung positioniert und behandelt den gesamten API-Datenverkehr, bevor er die interne API-Verwaltungsinstanz erreicht. Die Absicht besteht darin, eine Sicherheitsebene auf Edgeebene hinzuzufügen, die Clientanforderungen überprüft, filtert und weiterleitet, während die API-Verwaltung sich auf API-Governance, Transformation und Back-End-Integration konzentriert.

Diese mehrschichtige Topologie hat jedoch Verhaltensauswirkungen für bestimmte API-Verwaltungsrichtlinien: Wenn TLS-Beendigung, Routingentscheidungen oder Header-/Verbindungstransformationen an der Grenze zum Anwendungsgateway auftreten, wird vom API-Verwaltungsrichtlinienmodul möglicherweise nicht die ursprünglichen Details der Clientanforderung angezeigt, die sie erwartet. Dies kann dazu führen, dass Richtlinien anders funktionieren, als wenn das API Management direkt bereitgestellt wird. Beispiel:

  • Client-IP-basierte Filterung: Richtlinien wie ip-filter, bei denen Sie den Datenverkehr basierend auf Quell-IP-Adressen zulassen oder verweigern können, sehen nun die private IP des Anwendungsgateways als Quelle und nicht die tatsächliche Clientadresse. Daher muss die ip-filter Richtlinie sorgfältig geplant und verwaltet werden, um sicherzustellen, dass der richtige Datenverkehr gefiltert wird.

  • Richtliniensortierung und Kontextannahmen: API-Managementrichtlinien erwarten, dass sie bei Anforderungen mit bestimmten Headern, Hostnamen oder Anforderungsmerkmalen ausgeführt werden. Wenn Application Gateway Header neu schreibt (für Routing, benutzerdefinierte Domänen oder SSL-Offload), stimmt der Kontext, auf den nachgeschaltete API-Verwaltungsrichtlinien basieren, möglicherweise nicht mit den in diesen Richtlinien definierten Werten überein. Dies kann dazu führen, dass Routingrichtlinien, Validierung oder Transformationslogik innerhalb des API-Managements nicht mit den Absichten des Clients übereinstimmen.

Anwendungsgateway und API-Verwaltung werden zu zwei Erzwingungsebenen, und die Ansicht der eingehenden Anforderungen der API-Verwaltung ist ein Schritt aus dem ursprünglichen Clientkontext entfernt. Sie müssen die Verwendung von Richtlinien in der API-Verwaltung vermeiden, die von rohen Clientattributen abhängen, es sei denn, diese Attribute bleiben end-to-End erhalten, und müssen möglicherweise benutzerdefinierte Richtlinien basierend auf den daten erstellen, die in der HTTP-Anforderung verfügbar sind.

Weitere Empfehlungen zum Beibehalten von Daten wie Hostheadern finden Sie unter Beibehalten des ursprünglichen HTTP-Hostnamens zwischen einem Reverseproxy und der Back-End-Webanwendung.

Kostenoptimierung

Die Kostenoptimierung konzentriert sich auf Möglichkeiten, unnötige Ausgaben zu reduzieren und die betriebliche Effizienz zu verbessern. Weitere Informationen finden Sie unter Erstellen einer Checkliste zur Überprüfung der Kostenoptimierung.

  • Diese Bereitstellung verwendet den Premium-Plan , um verfügbarkeitszone und virtuelle Netzwerkfunktionen zu unterstützen. Wenn Sie keine dedizierten Instanzen benötigen, können Sie auch Flex-Verbrauch verwenden, der sowohl Netzwerkzugriffs- als auch Verfügbarkeitszonen unterstützt. Überprüfen Sie den Preisrechner für diese Bereitstellung.

  • Für den Nachweis von Konzepten oder Prototypen empfehlen wir, andere API-Verwaltungsebenen wie Entwickler oder Standard zu verwenden.

Operative Exzellenz

„Optimaler Betrieb“ deckt die Betriebsprozesse ab, die für die Bereitstellung einer Anwendung und deren Ausführung in der Produktion sorgen. Weitere Informationen finden Sie unter Checkliste für die Designüberprüfung zur betrieblichen Exzellenz.

  • Stellen Sie API-Verwaltungskonfigurationen als Azure Resource Manager Vorlagen dar, und übernehmen Sie eine Infrastruktur als Code (IaC)-Ansatz.

  • Verwenden Sie einen CI/CD-Prozess zum Verwalten, Versionieren und Aktualisieren von API Management-Konfigurationen.

  • Erstellen Sie benutzerdefinierte Integritätssonden, um den Status Ihrer API-Verwaltungsinstanz zu überprüfen. Verwenden Sie die URL /status-0123456789abcdef , um einen allgemeinen Integritätsendpunkt für den API-Verwaltungsdienst im Anwendungsgateway zu erstellen.

  • Im Schlüsseltresor aktualisierte Zertifikate werden im API-Management automatisch rotiert, was die Änderungen innerhalb von vier Stunden widerspiegelt.

  • Wenn Sie ein DevOps-Tool wie Azure DevOps oder GitHub verwenden, arbeiten cloudgehostete Agents oder Läufer über das öffentliche Internet. Da die API-Verwaltung in dieser Architektur auf ein internes Netzwerk festgelegt ist, müssen Sie einen DevOps-Agent verwenden, der Zugriff auf das virtuelle Netzwerk hat. Der DevOps-Agent hilft Ihnen beim Bereitstellen von Richtlinien und anderen Änderungen an den APIs in Ihrer Architektur. Sie können diese CI/CD-Vorlagen verwenden, um den Prozess in Teile zu trennen, damit Ihre Entwicklungsteams Änderungen für jede API bereitstellen können. DevOps-Runner starten die Vorlagen zum Verwalten dieser einzelnen Bereitstellungen.

Dieses Szenario bereitstellen

Diese Architektur ist auf GitHub verfügbar. Sie enthält alle erforderlichen IaC-Dateien und die Deployment-Anweisungen.

Beitragende

Microsoft pflegt diesen Artikel. Die folgenden Mitwirkenden haben diesen Artikel geschrieben.

Hauptautoren:

Um nicht-öffentliche LinkedIn-Profile zu sehen, melden Sie sich bei LinkedIn an.

Nächste Schritte