Freigeben über


Sicher verwaltete Webanwendungen

Azure App Service
Azure Application Gateway
Azure SQL-Datenbank
Azure VPN Gateway
Azure Web Application Firewall

In diesem Artikel wird beschrieben, wie Sie sichere Anwendungen mithilfe der App Service-Umgebung bereitstellen. Diese Architektur verwendet Azure Application Gateway und Azure Web Application Firewall , um den Anwendungszugriff aus dem Internet einzuschränken. In diesem Artikel wird auch erläutert, wie Sie eine kontinuierliche Integration und kontinuierliche Bereitstellung (CI/CD) mit App Service-Umgebungen mithilfe von Azure DevOps integrieren.

Branchen wie Banken und Versicherungen verwenden diese Lösung häufig, da Kunden sowohl die Plattform- als auch die Sicherheit auf Anwendungsebene schätzen. Um diese Konzepte zu veranschaulichen, ermöglicht die folgende Beispielanwendung Benutzern das Übermitteln von Spesenabrechnungen.

Aufbau

Diagramm, das die Beispielszenarioarchitektur für eine sichere interne Bereitstellung des Lastenausgleichs-App Service-Umgebung zeigt.

Laden Sie eine Visio-Datei dieser Architektur herunter.

Datenfluss

Der folgende Datenfluss entspricht dem vorherigen Diagramm:

  1. HTTP- und HTTPS-Anforderungen erreichen das Anwendungsgateway.

  2. Optional ist die Microsoft Entra-Authentifizierung für die Web-App aktiviert. Nachdem der Datenverkehr das Anwendungsgateway erreicht hat, wird der Benutzer aufgefordert, Anmeldeinformationen zur Authentifizierung bei der Anwendung anzugeben. Das Diagramm zeigt diesen Schritt nicht an.

  3. Der Benutzer fordert den Fluss über den internen Lastenausgleich (ILB) der Umgebung ab, der den Datenverkehr an die Spesenweb-App weitergibt.

  4. Der Benutzer erstellt eine Spesenabrechnung.

  5. Im Rahmen der Erstellung der Spesenabrechnung wird die bereitgestellte API-App aufgerufen, um den Vorgesetztennamen und die E-Mail des Benutzers abzurufen.

  6. Das System speichert die Spesenabrechnung in der Azure SQL-Datenbank.

  7. Um eine kontinuierliche Bereitstellung zu ermöglichen, wird Code in die Azure DevOps-Instanz eingecheckt.

  8. Der virtuelle Buildcomputer (VM) enthält den Azure DevOps-Agent. Dieser Agent ermöglicht der Build-VM das Abrufen von Web-App-Artefakten und deren Verwendung zum Bereitstellen der Web-App in der App-Dienstumgebung. Die Build-VM befindet sich in einem Subnetz innerhalb desselben virtuellen Netzwerks wie die App-Dienstumgebung.

Komponenten

  • Die App Service-Umgebung bietet eine vollständig isolierte, dedizierte Umgebung, um die Anwendung im großen Maßstab sicher auszuführen. Sowohl die App Service-Umgebung als auch ihre Workloads befinden sich hinter einem virtuellen Netzwerk, sodass das Setup eine zusätzliche Sicherheits- und Isolationsebene hinzufügt. In diesem Szenario wird eine ILB-App-Dienstumgebung verwendet, um die Notwendigkeit von hoher Skalierung und Isolation zu erfüllen.

  • Diese Workload verwendet die Stufe "Isolierte Preise für den App-Dienst". Die Anwendung wird in einer privaten dedizierten Umgebung in einem Azure-Rechenzentrum ausgeführt, das schnellere Prozessoren und SSD-Speicher (Solid-State Drive) verwendet, und bietet die maximalen Skalierungsfunktionen.

  • Die Web-Apps und API-Apps-Features von App Service-Hostwebanwendungen und RESTful-APIs. Diese Apps und APIs werden im Isolierten Dienstplan gehostet, der auch automatische Skalierung, benutzerdefinierte Domänen und andere Funktionen in einer dedizierten Ebene bereitstellt.

  • Das Anwendungsgateway ist ein Lastenausgleich für Layer-7-Webdatenverkehr, der den Datenverkehr an die Webanwendung verwaltet. Sie stellt das Offloading von Secure Sockets Layer (SSL) bereit, wodurch der Aufwand für die Entschlüsselung des Datenverkehrs von den Webservern, auf denen die Anwendung gehostet wird, entfernt wird.

  • Die Webanwendungsfirewall ist ein Feature des Anwendungsgateways, das die Sicherheit verbessert. Die Webanwendungsfirewall verwendet Open Worldwide Application Security Project (OWASP)-Regeln, um die Webanwendung vor Angriffen zu schützen, z. B. websiteübergreifendes Skripting, Sitzungs-Hijacks und SQL-Einfügung.

  • In der SQL-Datenbank werden die Daten der Anwendung gespeichert. Die meisten Daten sind relational, wobei einige der Daten als Dokumente und Blobs gespeichert sind.

  • Azure Virtual Network bietet verschiedene Netzwerkfunktionen in Azure. Sie können virtuelle Netzwerke miteinander peeren und Verbindungen mit lokalen Rechenzentren über ExpressRoute oder ein virtuelles privates Standortnetzwerk (VPN) herstellen. Dieses Szenario ermöglicht einen Dienstendpunkt im virtuellen Netzwerk, um sicherzustellen, dass die Daten nur zwischen dem virtuellen Azure-Netzwerk und der SQL-Datenbankinstanz fließen.

  • Azure DevOps unterstützt agile Entwicklung, indem Teams während Sprints zusammenarbeiten und Tools zum Erstellen von Build- und Releasepipelines bereitstellen.

  • Eine Azure Build-VM ermöglicht es dem installierten Agent, den jeweiligen Build abzurufen und die Web-App in der Umgebung bereitzustellen.

Alternativen

Eine App Service-Umgebung kann normale Web-Apps unter Windows oder wie in diesem Beispiel Web-Apps ausführen, die als Linux-Container ausgeführt werden, die in der Umgebung bereitgestellt werden. In diesem Szenario wird eine App-Dienstumgebung zum Hosten dieser containerisierten Anwendungen mit einer einzelnen Instanz verwendet. Berücksichtigen Sie beim Entwerfen Ihrer Lösung die folgenden Alternativen:

  • Azure Container Apps ist eine serverlose Plattform, die den Infrastrukturaufwand reduziert und Kosten spart, während containerisierte Anwendungen ausgeführt werden. Es beseitigt die Notwendigkeit, serverkonfiguration, Container-Orchestrierung und Bereitstellungsdetails zu verwalten. Container-Apps stellen alle up-to-date-Serverressourcen bereit, die erforderlich sind, um Ihre Anwendungen stabil und sicher zu halten.

  • Azure Kubernetes Service (AKS) ist ein Open-Source-Projekt und eine Orchestrierungsplattform zum Hosten komplexer Multicontaineranwendungen, die in der Regel eine mikroservicesbasierte Architektur verwenden. AKS ist ein verwalteter Azure-Dienst, der die Bereitstellung und Konfiguration eines Kubernetes-Clusters vereinfacht. Sie müssen über erhebliche Kenntnisse der Kubernetes-Plattform verfügen, um sie zu unterstützen und zu verwalten, sodass das Hosten nur einiger einzelner containerisierter Webanwendungen möglicherweise nicht die beste Option ist.

Verwenden Sie die folgende Alternative für die Datenebene:

  • Azure Cosmos DB ist eine gute Option, wenn die meisten Daten im nichtrelationalen Format vorliegen.

Mögliche Anwendungsfälle

Betrachten Sie diese Lösung für die folgenden Anwendungsfälle:

  • Erstellen Sie eine Azure Web App, die zusätzliche Sicherheit erfordert.
  • Stellen Sie dedizierte Mandanten anstelle von Plänen für gemeinsam genutzten Mandanten-App Service bereit.
  • Verwenden Sie Azure DevOps mit einer intern lastenausgleichsbasierten App Service-Umgebung .

Behandeln von TLS- und DNS-Entwurfsentscheidungen

Die DNS-Einstellungen (Domain Name System) für das Standarddomänensuffix der App-Dienstumgebung beschränken die Anwendungsreichbarkeit nicht auf diese Namen. Mit dem Feature für das benutzerdefinierte Domänensuffix für eine ILB-App-Dienstumgebung können Sie ihr eigenes Domänensuffix verwenden, um auf die in Ihrer App Service-Umgebung gehosteten Anwendungen zuzugreifen.

Ein benutzerdefiniertes Domänensuffix definiert eine Stammdomäne, die von der App-Dienstumgebung verwendet wird. Für eine ILB-App-Dienstumgebung ist appserviceenvironment.netdie Standardstammdomäne . Eine ILB App Service-Umgebung ist intern für das virtuelle Netzwerk eines Kunden, sodass Kunden zusätzlich zur Standarddomäne, die sich an ihre virtuelle Netzwerkumgebung richtet, eine Stammdomäne verwenden können. Beispielsweise kann contoso Corporation eine Standardstammdomäne für Apps verwenden, die internal.contoso.com für auflösungsfähig und erreichbar sind, nur innerhalb des virtuellen Netzwerks von Contoso. Eine App in diesem virtuellen Netzwerk kann durch Zugriff erreicht APP-NAME.internal.contoso.comwerden.

Das benutzerdefinierte Domänensuffix gilt für die App-Dienstumgebung. Dieses Feature unterscheidet sich von einer benutzerdefinierten Domänenbindung in einer einzelnen App Service-Instanz.

Wenn das für das benutzerdefinierte Domänensuffix verwendete Zertifikat einen SAN-Eintrag (Subject Alternate Name) enthält *.scm.CUSTOM-DOMAIN, kann die Website des Quellcodeverwaltungs-Managers (Source Control Manager, SCM) von APP-NAME.scm.CUSTOM-DOMAIN. Sie können nur über benutzerdefinierte Domänen auf SCM zugreifen, indem Sie die Standardauthentifizierung verwenden. Einmaliges Anmelden ist nur verfügbar, wenn Sie die Standardstammdomäne verwenden.

Berücksichtigen Sie beim Verwalten von Zertifikaten in einer ILB-App-Dienstumgebung die folgenden Faktoren:

  • Speichern Sie ein gültiges SSL- oder TLS-Zertifikat (Transport Layer Security) in einem Azure-Schlüsseltresor in . PFX-Format.

  • Stellen Sie sicher, dass das Zertifikat kleiner als 20 KB ist.

  • Verwenden Sie ein Wildcardzertifikat für den ausgewählten benutzerdefinierten Domänennamen.

  • Konfigurieren Sie eine vom System zugewiesene oder vom Benutzer zugewiesene verwaltete Identität für Ihre App-Dienstumgebung. Die verwaltete Identität authentifiziert sich beim Azure-Schlüsseltresor, in dem sich das SSL- oder TLS-Zertifikat befindet.

  • Erwarten Sie, dass die App Service-Umgebung Zertifikatänderungen innerhalb von 24 Stunden nach der Drehung in einem Schlüsseltresor anwendet.

Netzwerkzugriff auf Azure Key Vault

  • Sie können öffentlich oder über einen privaten Endpunkt auf den Schlüsseltresor zugreifen, der über das Subnetz erreichbar ist, in dem die App Service-Umgebung bereitgestellt wird.

  • Wenn Sie den öffentlichen Zugriff verwenden, können Sie Ihren Schlüsseltresor schützen, um nur Datenverkehr von der ausgehenden IP-Adresse der App Service-Umgebung zu akzeptieren.

  • Die App Service Environment verwendet die ausgehende IP-Adresse der Plattform als Quelladresse, wenn sie auf den Schlüsseltresor zugreift. Sie finden diese IP-Adresse auf der Seite "IP-Adressen" im Azure-Portal .

DNS-Konfiguration

Um mithilfe Ihres benutzerdefinierten Domänensuffixs auf Ihre Anwendungen in Ihrer App Service-Umgebung zuzugreifen, konfigurieren Sie Ihren eigenen DNS-Server oder konfigurieren Sie DNS in einer privaten Azure-DNS-Zone für Ihre benutzerdefinierte Domäne. Weitere Informationen finden Sie unter DNS-Konfiguration.

Sicherer eindeutiger Standardhostname

Das sichere einmalige Standardhostingfeature bietet eine langfristige Lösung, um Ihre Ressourcen vor der Verwendung von DNS-Einträgen und Der Subdomänenübernahme zu schützen. Wenn Sie dieses Feature für Ihre App Service-Ressourcen aktivieren, kann niemand außerhalb Ihrer Organisation Ressourcen mit demselben Standardhostnamen neu erstellen. Dieser Schutz verhindert, dass böswillige Akteure DNS-Einträge ausnutzen und Unterdomänen übernehmen. Weitere Informationen finden Sie unter Sichere eindeutige Standardhosts.

Ü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 in der Prüfliste zur Entwurfsüberprüfung für Zuverlässigkeit.

Verfügbarkeit

Sicherheit

Sicherheit bietet Sicherheitsmaßnahmen gegen bewusste Angriffe und den Missbrauch Ihrer wertvollen Daten und Systeme. Weitere Informationen finden Sie in der Prüfliste zur Entwurfsüberprüfung für Sicherheit.

Kostenoptimierung

Die Kostenoptimierung konzentriert sich auf Möglichkeiten, unnötige Ausgaben zu reduzieren und die betriebliche Effizienz zu verbessern. Weitere Informationen finden Sie in der Prüfliste für die Entwurfsüberprüfung für die Kostenoptimierung.

Erkunden Sie die Kosten für die Ausführung dieses Szenarios. Die folgenden Beispielkostenprofile basieren auf dem erwarteten Datenverkehr. Alle Dienste sind im Kostenrechner vorkonfiguriert.

  • Kleine Bereitstellung: Dieses Preisbeispiel stellt die Komponenten für eine minimale Instanz auf Produktionsebene dar, die monatlich ein paar tausend Benutzer bedient. Die App verwendet eine einzelne kleine Instanz einer isolierten Web-App. Jede zusätzliche Komponente wird auf eine Stufe "Einfach" skaliert, um die Kosten zu minimieren und gleichzeitig die Unterstützung von SLA (Service Level Agreement) und ausreichende Kapazität für die Verarbeitung einer Arbeitsauslastung auf Produktionsebene sicherzustellen.

  • Mittlere Bereitstellung: Dieses Preisbeispiel stellt die Komponenten für eine moderate Bereitstellung dar, die ungefähr 100.000 Benutzer pro Monat bedient. Eine mäßig große einzelne isolierte App Service-Instanz verwaltet den Datenverkehr. Die Kapazität des Anwendungsgateways und der SQL-Datenbank erhöht sich, um die hinzugefügte Workload zu unterstützen.

  • Große Bereitstellung: Dieses Preisbeispiel stellt die Komponenten für eine hoch angelegte Anwendung dar, die Millionen von Benutzern jeden Monat bedient und Terabyte Daten verschiebt. Diese Nutzungsstufe erfordert leistungsstarke, isolierte Web-Apps, die in mehreren Regionen bereitgestellt und von Azure Traffic Manager bereitgestellt werden. Die Schätzung umfasst Traffic Manager und zusätzliche Anwendungsgateway- und Virtuelle Netzwerkinstanzen. Die Kapazität der SQL-Datenbank erhöht sich, um die hinzugefügte Workload zu unterstützen.

Um die Preise für Ihren speziellen Anwendungsfall anzuzeigen, ändern Sie die entsprechenden Variablen so, dass sie ihrem erwarteten Datenverkehr entsprechen.

Leistungseffizienz

Die Leistungseffizienz bezieht sich auf die Fähigkeit Ihrer Workload, die Anforderungen der Benutzer effizient zu erfüllen. Weitere Informationen finden Sie in der Prüfliste zur Entwurfsüberprüfung für Die Leistungseffizienz.

Beitragende

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

Hauptautor:

  • Nicholas McCollum | Leitender Kundeningenieur

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

Nächste Schritte