Schützen von Azure-Container-Apps mit Webanwendungsfirewall auf dem Anwendungsgateway
Wenn Sie Ihre Apps oder Microservices in Azure-Container-Apps hosten, möchten Sie sie möglicherweise nicht immer direkt im Internet veröffentlichen. Stattdessen sollten Sie sie über einen Reverseproxy verfügbar machen.
Ein Reverseproxy ist ein Dienst, der sich vor einem oder mehreren Diensten befindet und eingehenden Datenverkehr an das entsprechende Ziel leitet.
Reverseproxys ermöglichen Es Ihnen, Dienste vor Ihren Apps zu platzieren, die cross-cutting-Funktionalität unterstützen, einschließlich:
- Routing
- Caching
- Ratenbegrenzung
- Lastenausgleich
- Sicherheitsebenen
- Anforderungsfilterung
In diesem Artikel wird veranschaulicht, wie Sie Ihre Container-Apps mithilfe einer Webanwendungsfirewall (WAF) auf Azure-App lication Gateway mit einer internen Container-Apps-Umgebung schützen.
Weitere Informationen zu Netzwerkkonzepten in Container-Apps finden Sie unter Networking Environment in Azure Container Apps.
Voraussetzungen
Interne Umgebung mit benutzerdefiniertem VNet: Verwenden Sie eine Container-App, die sich in einer internen Umgebung befindet und in ein benutzerdefiniertes virtuelles Netzwerk integriert ist. Weitere Informationen zum Erstellen einer benutzerdefinierten integrierten App für virtuelle Netzwerke finden Sie unter Bereitstellen eines virtuellen Netzwerks für eine interne Azure-Container-Apps-Umgebung.
Sicherheitszertifikate: Wenn Sie tls/SSL-Verschlüsselung für das Anwendungsgateway verwenden müssen, ist ein gültiges öffentliches Zertifikat erforderlich, das zum Binden an Ihr Anwendungsgateway verwendet wird.
Abrufen der Aufgaben Ihrer Container-App Standard
Führen Sie die folgenden Schritte aus, um die Werte der Standard-Do Standard und der statischen IP abzurufen, um Ihre Privates DNS Zone einzurichten.
Wählen Sie im Fenster "Übersicht" der Ressourcengruppe im Portal Ihre Container-App aus.
Wählen Sie im Fenster "Übersicht" für Ihre Container-App-Ressource den Link für container-Apps-Umgebung aus.
Wählen Sie im Fenster "Übersicht" für die Ressource ihrer Container-App-Umgebung die JSON-Ansicht in der oberen rechten Ecke der Seite aus, um die JSON-Darstellung der Container-Apps-Umgebung anzuzeigen.
Kopieren Sie die Werte für die eigenschaften defaultDo Standard und staticIp, und fügen Sie sie in einen Text-Editor ein. Sie erstellen eine private DNS-Zone mit diesen Werten für die Standard do Standard im nächsten Abschnitt.
Erstellen und Konfigurieren einer Azure Privates DNS Zone
Wählen Sie im Menü des Azure-Portals oder auf der Startseite die Option Ressource erstellen aus.
Suchen Sie nach Privates DNS Zone, und wählen Sie Privates DNS Zone aus den Suchergebnissen aus.
Wählen Sie die Schaltfläche Erstellen.
Geben Sie die folgenden Werte ein:
Einstellung Aktion Subscription Wählen Sie Ihr Azure-Abonnement. Resource group Wählen Sie die Ressourcengruppe Ihrer Container-App aus. Name Geben Sie die eigenschaft defaultDo Standard der Container-Apps-Umgebung aus dem vorherigen Abschnitt ein. Ressourcengruppenstandort Behalten Sie als Standard bei. Ein Wert ist nicht erforderlich, da Privates DNS Zonen global sind. Klicken Sie auf Überprüfen + erstellen. Wählen Sie Erstellen aus, wenn die Validierung erfolgreich war.
Nachdem die private DNS-Zone erstellt wurde, wählen Sie "Zur Ressource wechseln" aus.
Wählen Sie im Fenster "Übersicht" +Datensatzsatz aus, um einen neuen Datensatzsatz hinzuzufügen.
Geben Sie im Fenster "Datensatzsatz hinzufügen" die folgenden Werte ein:
Einstellung Aktion Name Geben Sie * ein. Typ Wählen Sie einen Adressdatensatz aus. TTL Lassen Sie die Standardwerte unverändert. TTL-Einheit Lassen Sie die Standardwerte unverändert. IP-Adresse Geben Sie die staticIp-Eigenschaft der Container-Apps-Umgebung aus dem vorherigen Abschnitt ein. Wählen Sie "OK" aus, um den Datensatzsatz zu erstellen.
Wählen Sie erneut +Datensatz festlegen aus, um einen zweiten Datensatzsatz hinzuzufügen.
Geben Sie im Fenster "Datensatzsatz hinzufügen" die folgenden Werte ein:
Einstellung Aktion Name Geben Sie @ ein. Typ Wählen Sie einen Adressdatensatz aus. TTL Lassen Sie die Standardwerte unverändert. TTL-Einheit Lassen Sie die Standardwerte unverändert. IP-Adresse Geben Sie die staticIp-Eigenschaft der Container-Apps-Umgebung aus dem vorherigen Abschnitt ein. Wählen Sie "OK" aus, um den Datensatzsatz zu erstellen.
Wählen Sie im Menü auf der linken Seite der Seite das Fenster "Virtuelle Netzwerklinks " aus.
Wählen Sie +Hinzufügen aus, um einen neuen Link mit den folgenden Werten zu erstellen:
Einstellung Aktion Linkname Geben Sie "my-custom-vnet-pdns-link" ein. Ich kenne die Ressourcen-ID des virtuellen Netzwerks. Lassen Sie es deaktiviert. Virtuelles Netzwerk Wählen Sie das virtuelle Netzwerk aus, in das Ihre Container-App integriert ist. Automatische Registrierung aktivieren Lassen Sie es deaktiviert. Wählen Sie "OK" aus, um die virtuelle Netzwerkverbindung zu erstellen.
Erstellen und Konfigurieren einer Azure Application Gateway-Instanz
Registerkarte Grundlagen
Geben Sie im Abschnitt Projektdetails die folgenden Werte ein.
Einstellung Aktion Subscription Wählen Sie Ihr Azure-Abonnement. Resource group Wählen Sie die Ressourcengruppe für Ihre Container-App aus. Name des Anwendungsgateways Geben Sie "my-container-apps-agw" ein. Region Wählen Sie den Speicherort aus, an dem Ihre Container-App bereitgestellt wurde. Tarif Wählen Sie WAF V2 aus. Sie können Standard V2 verwenden, wenn Sie WAF nicht benötigen. Aktivieren der automatischen Skalierung Behalten Sie den Standard bei. Für Produktionsumgebungen wird die automatische Skalierung empfohlen. Siehe autocaling Azure-App lication Gateway. Verfügbarkeitszone Wählen Sie Keine. Für Produktionsumgebungen werden Verfügbarkeitszonen für eine höhere Verfügbarkeit empfohlen. HTTP2 Behalten Sie den Standardwert bei. WAF-Richtlinie Wählen Sie "Neu erstellen" aus, und geben Sie "my-waf-policy" für die WAF-Richtlinie ein. Wählen Sie OK aus. Wenn Sie "Standard V2" für die Ebene ausgewählt haben, überspringen Sie diesen Schritt. Virtuelles Netzwerk Wählen Sie das virtuelle Netzwerk aus, in das Ihre Container-App integriert ist. Subnet Wählen Sie Subnetzkonfiguration verwalten aus. Wenn Sie bereits über ein Subnetz verfügen, das Sie verwenden möchten, verwenden Sie dies stattdessen, und fahren Sie mit dem Abschnitt "Frontends" fort. Wählen Sie im Subnetzfenster von my-custom-vnet +Subnetz aus, und geben Sie die folgenden Werte ein:
Einstellung Aktion Name Geben Sie das Appgateway-Subnetz ein. Subnetzadressbereich Lassen Sie die Standardwerte unverändert. Behalten Sie für die erneute Standard der der Einstellungen die Standardwerte bei.
Wählen Sie " Speichern" aus, um das neue Subnetz zu erstellen.
Schließen Sie das Subnetzfenster , um zum Fenster "Anwendungsgateway erstellen" zurückzukehren.
Wählen Sie die folgenden Werte aus:
Einstellung Aktion Subnet Wählen Sie das von Ihnen erstellte Appgateway-Subnetz aus. Wählen Sie "Weiter" aus: Frontends, um fortzufahren.
Registerkarte „Front-Ends“
Geben Sie auf der Registerkarte "Frontends " die folgenden Werte ein:
Einstellung Aktion Typ der Front-End-IP-Adresse Wählen Sie Öffentlich aus. Öffentliche IP-Adresse Wählen Sie Neue hinzufügen aus. Geben Sie "my-frontend " für den Namen Ihres Frontends ein, und wählen Sie "OK" aus. Hinweis
Für die Anwendungsgateway-SKU v2 muss eine öffentliche Front-End-IP vorhanden sein. Sie können sowohl eine öffentliche als auch eine private Frontend-IP-Konfiguration haben, aber eine nur private Frontend-IP-Konfiguration ohne öffentliche IP wird derzeit in der v2-SKU nicht unterstützt. Weitere Informationen finden Sie hier.
Klicken Sie auf Weiter: Back-Ends.
Registerkarte „Back-Ends“
Der Back-End-Pool wird verwendet, um Anforderungen an die entsprechenden Back-End-Server weiterzuleiten. Back-End-Pools können aus einer beliebigen Kombination der folgenden Ressourcen bestehen:
- NICs
- Öffentliche IP-Adressen
- Interne IP-Adressen
- Skalierungsgruppen für virtuelle Computer
- Vollqualifizierte Do Standard namen (FQDN)
- Back-Ends mit mehreren Mandanten wie Azure-App Service- und Container-Apps
In diesem Beispiel erstellen Sie einen Back-End-Pool, der auf Ihre Container-App ausgerichtet ist.
Wählen Sie Back-End-Pool hinzufügen aus.
Öffnen Sie eine neue Registerkarte, und navigieren Sie zu Ihrer Container-App.
Suchen Sie im Übersichtsfenster der Container-App die Anwendungs-URL , und kopieren Sie sie.
Kehren Sie zur Registerkarte "Back-Ends " zurück, und geben Sie die folgenden Werte in das Fenster " Back-End-Pool hinzufügen" ein:
Einstellung Aktion Name Geben Sie "my-agw-back-pool" ein. Hinzufügen eines Back-End-Pools ohne Ziele Wählen Sie Nein aus. Zieltyp Wählen Sie IP-Adresse oder FQDN aus. Ziel Geben Sie die url der Container-App ein, die Sie kopiert haben, und entfernen Sie das Präfix https:// . Dieser Speicherort ist der FQDN Ihrer Container-App. Klicken Sie auf Hinzufügen.
Wählen Sie auf der Registerkarte Back-Ends die Option Weiter: Konfiguration aus.
Registerkarte „Konfiguration“
Auf der Registerkarte "Konfiguration " verbinden Sie den Frontend- und Back-End-Pool, den Sie mit einer Routingregel erstellt haben.
Wählen Sie " Routingregel hinzufügen" aus. Geben Sie die folgenden Werte ein:
Einstellung Aktion Name Geben Sie "my-agw-routing-rule" ein. Priorität Geben Sie 1 ein. Geben Sie unter der Registerkarte "Listener" die folgenden Werte ein:
Einstellung Aktion Name des Listeners Geben Sie "my-agw-listener" ein. Front-End-IP Wählen Sie Öffentlich aus. Protocol Wählen Sie HTTPS aus. Wenn Sie kein Zertifikat haben, das Sie verwenden möchten, können Sie HTTP auswählen . Port Geben Sie 443 ein. Wenn Sie HTTP für Ihr Protokoll ausgewählt haben, geben Sie "80" ein, und fahren Sie mit dem Abschnitt "Standard-/benutzerdefinierter Do Standard" fort. Zertifikat auswählen Wählen Sie "Zertifikat hochladen" aus. Wenn Ihr Zertifikat im Schlüsseltresor gespeichert ist, können Sie ein Zertifikat im Key Vault auswählen. Zertifikatname Geben Sie einen Namen für Ihr Zertifikat ein. PFX-Zertifikatdatei Wählen Sie Ihr gültiges öffentliches Zertifikat aus. Kennwort Geben Sie Ihr Zertifikatkennwort ein. Wenn Sie die Standardeinstellung verwenden möchten Standard geben Sie die folgenden Werte ein:
Einstellung Aktion Listenertyp Wählen Sie Basic aus. URL zur Fehlerseite Als Nein verlassen Wenn Sie eine benutzerdefinierte Do verwenden möchten Standard geben Sie alternativ die folgenden Werte ein:
Einstellung Aktion Listenertyp Auswählen von mehreren Websites Hosttyp Single auswählen Hostnamen Geben Sie die benutzerdefinierte Do Standard die Sie verwenden möchten. URL zur Fehlerseite Als Nein verlassen Wählen Sie die Registerkarte "Back-End-Ziele " aus, und geben Sie die folgenden Werte ein:
Wechseln Sie zur Registerkarte "Back-End-Ziele ", und geben Sie die folgenden Werte ein:
Einstellung Aktion Zieltyp Wählen Sie "my-agw-back-pool " aus, den Sie zuvor erstellt haben. Back-End-Einstellungen Wählen Sie Neue hinzufügen aus. Geben Sie im Fenster " Back-End-Einstellung hinzufügen" die folgenden Werte ein:
Einstellung Aktion Name der Back-End-Einstellungen Geben Sie "my-agw-back-setting" ein. Back-End-Protokoll Wählen Sie HTTPS aus. Back-End-Port Geben Sie 443 ein. Zertifikat einer bekannten Zertifizierungsstelle verwenden Wählen Sie Ja aus. Mit neuem Hostnamen überschreiben Wählen Sie Ja. Hostnamen außer Kraft setzen Wählen Sie Hostnamen aus Back-End-Ziel auswählen aus. Benutzerdefinierte Tests erstellen Wählen Sie Nein aus. Wählen Sie "Hinzufügen" aus, um die Back-End-Einstellungen hinzuzufügen.
Wählen Sie im Fenster "Routingregel hinzufügen" die Option "Erneut hinzufügen" aus.
Klicken Sie auf Weiter: Tags.
Wählen Sie "Weiter" aus: Überprüfen Und erstellen Sie dann "Erstellen".
Hinzufügen eines privaten Links zu Ihrem Anwendungsgateway
Sie können eine gesicherte Verbindung mit internen Container-App-Umgebungen herstellen, indem Sie die private Verknüpfung levaraging, da ihr Anwendungsgateway mit Ihrer Container-App im Back-End über das virtuelle Netzwerk kommunizieren kann.
Nachdem das Anwendungsgateway erstellt wurde, wählen Sie "Zur Ressource wechseln" aus.
Wählen Sie im Menü auf der linken Seite den Link "Privat" und dann "Hinzufügen" aus.
Geben Sie die folgenden Werte ein:
Einstellung Aktion Name Geben Sie "my-agw-private-link" ein. Subnetz der privaten Verbindung Wählen Sie das Subnetz aus, mit dem Sie den privaten Link erstellen möchten. Front-End-IP-Konfiguration Wählen Sie die Frontend-IP für Ihr Anwendungsgateway aus. Wählen Sie unter "Private IP-Adresseinstellungen " " Hinzufügen" aus.
Wählen Sie unten im Fenster "Hinzufügen" aus.
Überprüfen der Container-App
Suchen Sie die öffentliche IP-Adresse für das Anwendungsgateway auf der Seite "Übersicht ", oder suchen Sie nach der Adresse. Um zu suchen, wählen Sie "Alle Ressourcen " aus, und geben Sie "my-container-apps-agw-pip " in das Suchfeld ein. Wählen Sie dann in den Suchergebnissen die IP-Adresse aus.
Navigieren Sie zur öffentlichen IP-Adresse des Anwendungsgateways.
Ihre Anforderung wird automatisch an die Container-App weitergeleitet, wodurch überprüft wird, ob das Anwendungsgateway erfolgreich erstellt wurde.
Bereinigen von Ressourcen
Wenn Sie die von Ihnen erstellten Ressourcen nicht mehr benötigen, löschen Sie die Ressourcengruppe. Wenn Sie die Ressourcengruppe löschen, entfernen Sie auch alle zugehörigen Ressourcen.
So löschen Sie die Ressourcengruppe:
Wählen Sie im Menü des Azure-Portals die Option Ressourcengruppen aus, oder suchen Sie nach Ressourcengruppen, und wählen Sie die entsprechende Option aus.
Suchen Sie auf der Seite "Ressourcengruppen" nach "meine Container-Apps", und wählen Sie sie aus.
Wählen Sie auf der Seite für die Ressourcengruppe die Option Ressourcengruppe löschen aus.
Geben Sie "my-container-apps " unter "TYP THE RESOURCE GROUP NAME " ein, und wählen Sie dann "Löschen" aus.