Steuern des ausgehenden Datenverkehrs mit benutzerdefinierten Routen
Hinweis
Dieses Feature wird nur für den Umgebungstyp der Workloadprofile unterstützt. Benutzerdefinierte Routen funktionieren nur mit einer internen Azure-Container-Apps-Umgebung.
In diesem Artikel wird gezeigt, wie Sie benutzerdefinierte Routen (USER Defined Routes, UDR) mit azure Firewall verwenden, um ausgehenden Datenverkehr von Ihren Container-Apps auf Back-End-Azure-Ressourcen oder andere Netzwerkressourcen zu sperren.
Azure erstellt eine Standardroutentabelle für Ihre virtuellen Netzwerke, die erstellt werden. Durch die Implementierung einer benutzerdefinierten Routentabelle können Sie steuern, wie Datenverkehr innerhalb Ihres virtuellen Netzwerks weitergeleitet wird. In diesem Leitfaden richten Sie UDR im virtuellen Container-Apps-Netzwerk ein, um ausgehenden Datenverkehr mit Azure Firewall einzuschränken.
Sie können auch ein NAT-Gateway oder andere Drittanbieter-Anwendung anstelle von Azure Firewall verwenden.
Weitere Informationen finden Sie im Konfigurieren von UDR mit Azure Firewall in Netzwerken in Azure-Container-Apps .
Voraussetzungen
Workloadprofile-Umgebung: Eine Workloadprofile-Umgebung, die in ein benutzerdefiniertes virtuelles Netzwerk integriert ist. Weitere Informationen finden Sie in der Anleitung zum Erstellen einer Container-App-Umgebung in der Workloadprofile-Umgebung.
curl
Unterstützung: Ihre Container-App muss über einen Container verfügen, der Befehle unterstütztcurl
. In dieser Vorgehensweise verwendencurl
Sie, um zu überprüfen, ob die Container-App ordnungsgemäß bereitgestellt wird. Wenn Sie keine Container-App mitcurl
bereitgestellter App haben, können Sie den folgenden Containercurl
bereitstellen, der , .mcr.microsoft.com/k8se/quickstart:latest
Erstellen des Firewallsubnetzes
Ein Subnetz namens AzureFirewallSubnet ist erforderlich, um eine Firewall im integrierten virtuellen Netzwerk bereitzustellen.
Öffnen Sie das virtuelle Netzwerk, das in Ihre App integriert ist, in der Azure-Portal.
Wählen Sie im Menü auf der linken Seite Subnetze und dann +Subnetz aus.
Geben Sie die folgenden Werte ein:
Einstellung Aktion Name Geben Sie AzureFirewallSubnet ein. Subnetzadressbereich Verwenden Sie den Standardwert, oder geben Sie einen Subnetzbereich /26 oder höher an. Wählen Sie Speichern aus.
Bereitstellen der Firewall
Wählen Sie im Menü des Azure-Portals oder auf der Startseite die Option Ressource erstellen aus.
Suchen Sie nach Firewall.
Wählen Sie Firewall aus.
Klicken Sie auf Erstellen.
Konfigurieren Sie auf der Seite "Firewall erstellen" die Firewall mit den folgenden Einstellungen.
Einstellung Aktion Ressourcengruppe Geben Sie dieselbe Ressourcengruppe wie das integrierte virtuelle Netzwerk ein. Name Geben Sie einen Namen Ihrer Wahl ein. Region Wählen Sie dieselbe Region wie das integrierte virtuelle Netzwerk aus. Firewallrichtlinie Erstellen Sie eine, indem Sie Neu hinzufügen auswählen. Virtuelles Netzwerk Wählen Sie das integrierte virtuelle Netzwerk aus. Öffentliche IP-Adresse Wählen Sie eine vorhandene Adresse aus, oder erstellen Sie eine, indem Sie Neu hinzufügen auswählen. Klicken Sie auf Überprüfen + erstellen. Wählen Sie Erstellen aus, wenn die Validierung erfolgreich war. Der Überprüfungsschritt kann einige Minuten dauern.
Nachdem die Bereitstellung abgeschlossen ist, wählen Sie "Gehe zu Ressource" aus.
Kopieren Sie auf der Seite "Übersicht" der Firewall die private IP-Adresse der Firewall. Diese IP-Adresse wird beim Erstellen der Routingregel für das virtuelle Netzwerk als nächste Hopadresse verwendet.
Weiterleiten des gesamten Datenverkehrs an die Firewall
Ihre virtuellen Netzwerke in Azure verfügen über Standardroutentabellen, wenn Sie das Netzwerk erstellen. Durch die Implementierung einer benutzerdefinierten Routentabelle können Sie steuern, wie Datenverkehr innerhalb Ihres virtuellen Netzwerks weitergeleitet wird. In den folgenden Schritten erstellen Sie einen UDR, um den gesamten Datenverkehr an Ihre Azure Firewall weiterzuleiten.
Wählen Sie im Menü des Azure-Portals oder auf der Startseite die Option Ressource erstellen aus.
Suchen Sie nach Routentabellen.
Wählen Sie "Routentabellen" aus.
Klicken Sie auf Erstellen.
Geben Sie die folgenden Werte ein:
Einstellung Aktion Region Wählen Sie die Region als virtuelles Netzwerk aus. Name Geben Sie einen Namen ein. Verteilen von Gatewayrouten Wählen Sie Nein aus. Klicken Sie auf Überprüfen + erstellen. Wählen Sie Erstellen aus, wenn die Validierung erfolgreich war.
Nachdem die Bereitstellung abgeschlossen ist, wählen Sie "Gehe zu Ressource" aus.
Wählen Sie im Menü auf der linken Seite "Routen" und dann " Hinzufügen" aus, um eine neue Routentabelle zu erstellen.
Konfigurieren Sie die Routentabelle mit den folgenden Einstellungen:
Einstellung Aktion Adresspräfix Geben Sie 0.0.0.0/0 ein. Typ des nächsten Hops Wählen Sie Virtuelles Gerät aus. Adresse des nächsten Hops Geben Sie die private Firewall-IP ein, die Sie in "Bereitstellen der Firewall" gespeichert haben. Klicken Sie auf Hinzufügen, um die Route zu erstellen.
Wählen Sie im Menü auf der linken Seite Subnetze aus, und wählen Sie dann "Zuordnen" aus, um Die Routentabelle dem Subnetz der Container-App zuzuordnen.
Konfigurieren Sie das Subnetz "Subnetz zuordnen" mit den folgenden Werten:
Einstellung Aktion Virtuelles Netzwerk Wählen Sie das virtuelle Netzwerk für Ihre Container-App aus. Subnetz Wählen Sie das Subnetz ihrer Container-App aus. Klickan Sie auf OK.
Konfigurieren von Firewallrichtlinien
Hinweis
Wenn Sie UDR mit Azure Firewall in Azure-Container-Apps verwenden, müssen Sie der Zulassungsliste für die Firewall bestimmte FQDN- und Diensttags hinzufügen. Bitte lesen Sie die Konfiguration von UDR mit der Azure-Firewall , um zu bestimmen, welche Diensttags Sie benötigen.
Jetzt wird der gesamte ausgehende Datenverkehr aus Ihrer Container-App an die Firewall weitergeleitet. Derzeit lässt die Firewall weiterhin den gesamten ausgehenden Datenverkehr durch. Um den zulässigen oder verweigerten ausgehenden Datenverkehr zu verwalten, müssen Sie Firewallrichtlinien konfigurieren.
Wählen Sie in Ihrer Azure Firewall-Ressource auf der Seite "Übersicht" die Option "Firewallrichtlinie" aus.
Wählen Sie im Menü auf der linken Seite der Firewallrichtlinie die Option "Anwendungsregeln" aus.
Wählen Sie Regelsammlung hinzufügen aus.
Geben Sie die folgenden Werte für die Regelsammlung ein:
Einstellung Aktion Name Geben Sie einen Sammlungsnamen ein. Regelsammlungstyp Anwendung auswählen Priorität Geben Sie die Priorität ein, z. B. 110 Regelsammlungsaktion Wählen Sie Zulassen aus. Regelsammlungsgruppe DefaultApplicationRuleCollectionGroup auswählen Geben Sie unter "Regeln" die folgenden Werte ein:
Einstellung Aktion Name Geben Sie einen Namen für die Regel ein. Quellentyp IP-Adresse auswählen Quelle Geben Sie * ein. Protokoll Http:80,https:443 eingeben Zieltyp Wählen Sie FQDN aus. Ziel Geben Sie mcr.microsoft.com
die Eingabetaste ein*.data.mcr.microsoft.com
. Wenn Sie ACR verwenden, fügen Sie Ihre ACR-Adresse und ihre ACR-Adresse hinzu*.blob.core.windows.net
.Aktion Wählen Sie Zulassen aus. Hinweis
Wenn Sie die Docker Hub-Registrierung verwenden und über Ihre Firewall darauf zugreifen möchten, müssen Sie der Regelzielliste die folgenden FQDNs hinzufügen: hub.docker.com, registry-1.docker.io und production.cloudflare.docker.com.
Wählen Sie Hinzufügen aus.
Überprüfen, ob Ihre Firewall ausgehenden Datenverkehr blockiert
Um zu überprüfen, ob die Firewallkonfiguration ordnungsgemäß eingerichtet ist, können Sie den Befehl über die curl
Debugkonsole Ihrer App verwenden.
Navigieren Sie zu Ihrer Container-App, die mit azure Firewall konfiguriert ist.
Wählen Sie im Menü auf der linken Seite "Konsole" und dann Ihren Container aus, der den
curl
Befehl unterstützt.Wählen Sie im Menü "Startbefehl auswählen" /bin/sh aus, und wählen Sie Verbinden aus.
Führen Sie in der Konsole aus
curl -s https://mcr.microsoft.com
. Beim Hinzufügen zur Zulassungsliste für Ihre Firewallrichtlinien sollte eine erfolgreiche Antwort angezeigtmcr.microsoft.com
werden.Führen Sie
curl -s https://<FQDN_ADDRESS>
eine URL aus, die keiner Ihrer Zielregeln entspricht, zexample.com
. B. . Der Beispielbefehl wärecurl -s https://example.com
. Sie sollten keine Antwort erhalten, was angibt, dass Ihre Firewall die Anforderung blockiert hat.