Freigeben über


Architektur der Azure API Management-Zielzone

Azure API Management
Azure Application Gateway
Azure-Funktionen
.NET

APIs sind zunehmend integraler geworden, um zu erfahren, wie Organisationen und ihre Kunden sowohl innerhalb interner Systeme als auch über externe Kanäle auf Dienste 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 dient als Grundlage der Anleitungen für die API-Verwaltung in einer Azure-Zielzone 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 Referenzimplementierung der Azure-Zielzone 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 WAF-Richtlinien (Web Application Firewall) 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 verbindet auch regelmäßig Abhängigkeiten, z. B. Azure Key Vaults. In der Regel erfolgt diese private Konnektivität mit Endpunkten in einem dedizierten privaten Endpunktsubnetz.

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

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.

  • Dns-Zonen (Private Domain Name System) 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. Es werden verschiedene Plattformen unterstützt, darunter .NET, Node.js, Java und Python. Die Lösung 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 mit Daten in Azure Monitor-Protokollen bearbeiten und ausführen können, optional über das 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 zu 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 sowohl in Windows- als auch in 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 multiregionsübergreifende 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 bilden die Säulen des Azure Well-Architected Framework, einer Reihe von Leitprinzipien, die Sie zur Verbesserung der Qualität eines Workloads verwenden können. 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 Funktion bedeutet, dass Ihre Dienste auch dann weiterhin ausgeführt werden können, wenn eine Region oder Zone abläuft. 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-Sicherheitsrisiken durch Anomaliebeobachtungen zur Laufzeit mithilfe von machine learning-basierten und regelbasierten Erkennungen zu erkennen.

  • 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 Schlüsseltresorschlüssel als benannte Werte in API-Verwaltungsrichtlinien , um vertrauliche Informationen in API-Verwaltungsrichtlinien 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 Schutz des Anwendungsgateways und des verteilten Denial-of-Service (DDoS) trägt dazu bei, übermäßigen Datenverkehr oder Verbindungsfluten zu verhindern, dass die API-Verwaltungsinstanz überwältigt wird. 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.

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 automatisch in der API-Verwaltung gedreht, was die Änderungen innerhalb von vier Stunden widerspiegelt.

  • Wenn Sie ein DevOps-Tool wie Azure DevOps oder GitHub verwenden, werden die in der Cloud gehosteten Agents oder Runner über das öffentliche Internet betrieben. 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 initiieren die Vorlagen zur Behandlung dieser einzelnen Bereitstellungen.

Bereitstellen dieses Szenarios

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

Beitragende

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

Hauptautoren:

Um nichtublic LinkedIn-Profile anzuzeigen, melden Sie sich bei LinkedIn an.

Nächste Schritte