Erstellung und Konfiguration einer Application Gateway-Instanz
Application Gateway besteht aus mehreren Komponenten, die gemeinsam zum Weiterleiten von Anforderungen an einen Pool von Webservern und zum Überprüfen der Integrität dieser Webserver verwendet werden. Im Folgenden sehen Sie sich die Beziehungen zwischen diesen Komponenten an und erfahren, welche Rolle sie in einer Application Gateway-Instanz spielen.
Front-End-IP-Adresse
Clientanforderungen werden über eine Front-End-IP-Adresse empfangen. Sie können eine Application Gateway-Instanz mit einer öffentlichen IP-Adresse, mit einer privaten IP-Adresse oder mit beidem konfigurieren. Eine Application Gateway-Instanz kann nicht mehr als jeweils eine öffentliche und eine private IP-Adresse umfassen.
Listener
Application Gateway nutzt mindestens einen Listener zum Empfangen eingehender Anforderungen. Ein Listener empfängt den Datenverkehr auf einer festgelegten Kombination aus Protokoll, Port, Host und IP-Adresse. Jeder Listener leitet Anforderungen an einen Back-End-Pool von Servern gemäß der Routingregeln, die Sie festlegen. Es kann sich um einen Basislistener oder einen Listener für mehrere Standorte handeln. Basislistener leiten Anforderungen lediglich anhand des Pfads in der URL weiter. Ein Listener für mehrere Standorte kann Anfragen auch über das Hostname-Element der URL weiterleiten.
Listener verarbeiten außerdem SSL-Zertifikate für die Sicherung Ihrer Anwendung zwischen dem Benutzer und der Application Gateway-Instanz.
Routingregeln
Routingregeln binden Listener an die Back-End-Pools. Eine Regel gibt an, wie die Elemente Hostname und Pfad in der URL einer Anfrage zu interpretieren sind und wie die Anfrage an den entsprechenden Back-End-Pool weitergeleitet werden soll. Routingregeln weisen außerdem zugehörige HTTP-Einstellungen auf. Diese Einstellungen geben an, ob (und wie) der Datenverkehr zwischen Application Gateway und den Back-End-Servern verschlüsselt wird. Außerdem werden unter anderem folgende Konfigurationsinformationen angegeben:
- Protokoll (HTTP oder HTTPS)
- Sitzungspersistenz zum Übergeben aller Anforderungen in einer Clientsitzung an denselben Webserver, anstatt sie über den Lastenausgleich an Server zu verteilen
- Verbindungsausgleich zum Aktivieren der korrekten Entfernung von Servern aus einem Back-End-Pool.
- Zeitlimit für das Timeout der Anforderung in Sekunden
- Integritätstests, die eine Test-URL, Timeout-Perioden sowie weitere Parameter festlegen, um zu ermitteln, ob ein Server im Back-End-Pool verfügbar ist.
Back-End-Pools
Ein Back-End-Pool verweist auf eine Sammlung von Webservern. Sie stellen die IP-Adressen der jeweiligen Webserver und den Port bereit, auf dem beim Konfigurieren des Pools auf Anforderungen gelauscht wird. Jeder Pool kann eine feste Gruppe von VMs, eine VM-Skalierungsgruppe, eine von Azure App Services gehostete App oder eine Sammlung lokaler Server festlegen. Jeder Back-End-Pool verfügt über einen zugehörigen Lastenausgleich, der die Last auf den Pool verteilt.
Web Application Firewall
Die WAF (Web Application Firewall) ist eine optionale Komponente, die eingehende Anforderungen verarbeitet, bevor sie einen Listener erreichen. Die WAF überprüft alle Anforderungen gemäß dem Open Web Application Security Project (OWASP) auf gängige Bedrohungen. Dazu gehören:
- Einschleusung von SQL-Befehlen
- Cross-Site-Scripting
- Einschleusung von Befehlen
- HTTP Request Smuggling
- HTTP Response Splitting
- Remote File Inclusion
- Bots, Crawler und Scanner
- Verletzungen und Anomalien des HTTP-Protokolls
OWASP hat eine Reihe generischer Regeln zum Erkennen von Angriffen definiert, die als Core Rule Set (CRS) bezeichnet werden. Da solche Angriffe immer komplexer werden, werden diese Regeln ständig überprüft. Die WAF unterstützt zwei Regelsätze: CRS 2.2.9 und CRS 3.0. CRS 3.0 ist die Standardeinstellung und der neuere Regelsatz der beiden. Bei Bedarf können Sie auch nur spezifische Regeln eines Regelsatzes auswählen, die für bestimmte Bedrohungen konzipiert sind. Darüber hinaus können Sie die Firewall anpassen, um festzulegen, welche Elemente in einer Anforderung überprüft werden sollen, und um die Größe von Nachrichten einzuschränken, um die Überlastung Ihrer Server durch große Uploads zu verhindern.
Sie können WAF auf Ihrem Anwendungs-Gateway aktivieren, indem Sie bei der Erstellung eines Gateways die WAF
-Ebene auswählen.
Integritätstests
Integritätstests sind ein wichtiges Element, das dem Load Balancer hilft, festzustellen, welche Server für den Lastausgleich in einem Back-End-Pool verfügbar sind. Application Gateway verwendet einen Integritätstest, um eine Anforderung an einen Server zu senden. Wenn der Server eine HTTP-Antwort mit einem Statuscode von 200 bis 399 zurückgibt, wird der Server als Fehlerfrei eingestuft.
Wenn Sie keinen Integritätstest konfigurieren, erstellt Application Gateway einen Standardtest, der 30 Sekunden lang wartet, bevor entschieden wird, dass ein Server nicht verfügbar ist.
Netzwerkanforderungen für Application Gateway
Für die Ausführung von Application Gateway ist ein virtuelles Netzwerk erforderlich. Sie müssen dieses virtuelle Netzwerk und ein dediziertes Subnetz erstellen, bevor Sie Application Gateway einrichten. Application Gateway verwendet mehrere private Adressen für den internen Gebrauch und die Kommunikation mit den Instanzen, wenn das Gateway horizontal hochskaliert wird. Wenn Sie beispielsweise zu vier Instanzen horizontal hochskalieren möchten, sollten Sie ein Subnetz mit der Größe /28 erstellen. Wenn Sie wahrscheinlich auf noch mehr Instanzen hochskalieren werden, erstellen Sie ein größeres Subnetz.
Sie können die Application Gateway-Instanz über eine öffentliche IP-Adresse zur Verfügung stellen. Alternativ können Sie sie privat lassen, indem Sie ihr nur eine private IP-Adresse im virtuellen Netzwerk zuweisen. Dies ist hilfreich, wenn Sie über interne Websites verfügen, die Application Gateway nutzen sollen, um Lastenausgleiche zu verwenden.
Optionen für Application Gateway
Sie können eine Application Gateway-Instanz in den Tarifen Standard und WAF erstellen. Ihnen steht außerdem die Auswahl von drei Größen mit Unterschieden bei der Leistung, den Preisen und der Skalierbarkeit zur Verfügung: Klein, Mittel und Groß.
Die Tarife Standard und WAF sind in jeweils zwei Versionen verfügbar: V1 und V2. V2 unterstützt Azure-Verfügbarkeitszonen, befindet sich jedoch zurzeit in der Preview.
Application Gateway unterstützt die manuelle und automatische Skalierung. Wenn Sie die automatische Skalierung auswählen, wird die Application Gateway-Instanz gemäß des Anwendungsdatenverkehrs automatisch horizontal hoch- und herunterskaliert. Sie können die maximale und minimale Anzahl von Application Gateway-Instanzen einschränken.
Erstellen und Konfigurieren eines Gateways
Sie können eine Application Gateway-Instanz über das Azure-Portal, Azure PowerShell oder die Azure CLI erstellen und konfigurieren. Verwenden Sie für die Azure CLI den az network application-gateway create
-Befehl, um ein neues Gateway zu erstellen. Wenn Sie PowerShell bevorzugen, können Sie das Cmdlet New-AzApplicationGateway
verwenden. Sie können auch das Azure-Portal verwenden, um die meisten Vorgänge durchzuführen.
Sie können die Konfiguration der Komponenten in einem Gateway mithilfe der Befehle az network application-gateway http-listener
, az network application-gateway rule
, az network application-gateway address-pool
, az network application-gateway http-settings
und az network application-gateway front-end-port
über die Azure CLI untersuchen und ändern. Die Cmdlets Get-AzApplicationGateway*
und Set-AzApplicationGateway*
stellen dieselben Vorgänge für PowerShell bereit.
Als Nächstes erstellen und konfigurieren Sie eine Application Gateway-Instanz für die Websites der Kraftfahrzeugbehörde, die Sie bereits bereitgestellt haben.