Distribution av privat Application Gateway (förhandsversion)
Introduktion
Tidigare har Application Gateway v2 SKU:er, och i viss utsträckning v1, krävt offentliga IP-adresser för att möjliggöra hantering av tjänsten. Det här kravet har infört flera begränsningar när det gäller att använda detaljerade kontroller i nätverkssäkerhetsgrupper och routningstabeller. Mer specifikt har följande utmaningar observerats:
- Alla Application Gateways v2-distributioner måste innehålla offentlig frontend IP-konfiguration för att möjliggöra kommunikation till gatewayhanterarens tjänsttagg.
- Nätverkssäkerhetsgruppassociationer kräver regler för att tillåta inkommande åtkomst från GatewayManager och Utgående åtkomst till Internet.
- När du introducerar en standardväg (0.0.0.0/0) för att vidarebefordra trafik någon annanstans än Internet resulterar mått, övervakning och uppdateringar av gatewayen i en misslyckad status.
Application Gateway v2 kan nu hantera vart och ett av dessa objekt för att ytterligare eliminera risken för dataexfiltrering och kontrollera kommunikationens integritet inifrån det virtuella nätverket. Dessa ändringar omfattar följande funktioner:
- Ip-adress för privat ip-adress endast klientdels-IP-konfiguration
- Ingen offentlig IP-adressresurs krävs
- Eliminering av inkommande trafik från GatewayManager-tjänsttagg via nätverkssäkerhetsgrupp
- Möjlighet att definiera en NSG-regel (Neka alla utgående nätverkssäkerhetsgrupp) för att begränsa utgående trafik till Internet
- Möjlighet att åsidosätta standardvägen till Internet (0.0.0.0/0)
- DNS-matchning via definierade matchare i det virtuella nätverket Läs mer, inklusive privata DNS-zoner för privata länkar.
Var och en av dessa funktioner kan konfigureras separat. Till exempel kan en offentlig IP-adress användas för att tillåta inkommande trafik från Internet och du kan definiera regeln Neka alla utgående trafik i nätverkssäkerhetsgruppens konfiguration för att förhindra dataexfiltrering.
Publicera till offentlig förhandsversion
Funktionerna i de nya kontrollerna för konfiguration av privata IP-klientdelar, kontroll över NSG-regler och kontroll över routningstabeller finns för närvarande i offentlig förhandsversion. Om du vill ansluta till den offentliga förhandsversionen kan du välja att använda Azure-portalen, PowerShell, CLI eller REST API.
När du ansluter till förhandsversionen etablerar alla nya Application Gateways med möjlighet att definiera valfri kombination av NSG, Routningstabell eller privata IP-konfigurationsfunktioner. Om du vill avregistrera dig från de nya funktionerna och återgå till de aktuella allmänt tillgängliga funktionerna i Application Gateway kan du göra det genom att avregistrera dig från förhandsversionen.
Mer information om förhandsversionsfunktioner finns i Konfigurera förhandsversionsfunktioner i Azure-prenumeration
Registrera dig för förhandsversionen
Använd följande steg för att registrera dig i den offentliga förhandsversionen för de förbättrade Application Gateway-nätverkskontrollerna via Azure-portalen:
Logga in på Azure-portalen.
I sökrutan anger du prenumerationer och väljer Prenumerationer.
Välj länken för prenumerationens namn.
Välj Förhandsversionsfunktioner under Inställningar på den vänstra menyn.
Du ser en lista över tillgängliga förhandsgranskningsfunktioner och din aktuella registreringsstatus.
Från Förhandsgranskningsfunktioner skriver du i filterrutan EnableApplicationGatewayNetworkIsolation, markerar funktionen och klickar på Registrera.
Kommentar
Funktionsregistrering kan ta upp till 30 minuter att övergå från Registrering till Registrerad status.
Mer information om förhandsversionsfunktioner finns i Konfigurera förhandsversionsfunktioner i Azure-prenumeration
Avregistrera från förhandsversionen
Om du vill avanmäla dig från den offentliga förhandsversionen för de förbättrade Application Gateway-nätverkskontrollerna via portalen använder du följande steg:
Logga in på Azure-portalen.
I sökrutan anger du prenumerationer och väljer Prenumerationer.
Välj länken för prenumerationens namn.
Välj Förhandsversionsfunktioner under Inställningar på den vänstra menyn.
Du ser en lista över tillgängliga förhandsgranskningsfunktioner och din aktuella registreringsstatus.
Från Förhandsgranskningsfunktioner skriver du i filterrutan EnableApplicationGatewayNetworkIsolation, markerar funktionen och klickar på Avregistrera.
Regioner och tillgänglighet
Förhandsversionen av private application gateway är tillgänglig för alla offentliga molnregioner där Application Gateway v2 sku stöds.
Konfiguration av nätverkskontroller
Efter registreringen till den offentliga förhandsversionen kan konfigurationen av NSG, routningstabellen och klientdelskonfigurationen för privata IP-adresser utföras med alla metoder. Till exempel: REST API, ARM Template, Bicep deployment, Terraform, PowerShell, CLI eller Portal. Inga API- eller kommandoändringar introduceras med den här offentliga förhandsversionen.
Resursändringar
När din gateway har etablerats tilldelas en resurstagg automatiskt med namnet EnhancedNetworkControl och värdet True. Se följande exempel:
Resurstaggen är kosmetisk och bekräftar att gatewayen har etablerats med funktioner för att konfigurera alla kombinationer av de privata gatewayfunktionerna. Ändring eller borttagning av taggen eller värdet ändrar inte gatewayens funktionsfunktioner.
Dricks
Taggen EnhancedNetworkControl kan vara till hjälp när befintliga Application Gateways distribuerades i prenumerationen före funktionsaktivering och du vill särskilja vilken gateway som kan använda de nya funktionerna.
Application Gateway-undernät
Application Gateway-undernätet är undernätet i det virtuella nätverket där Application Gateway-resurserna ska distribueras. I klientdelens privata IP-konfiguration är det viktigt att det här undernätet kan nå de resurser som vill ansluta till din exponerade app eller webbplats privat.
Utgående Internetanslutning
Application Gateway-distributioner som endast innehåller en privat IP-klientdelskonfiguration (har inte en offentlig IP-klientdelskonfiguration som är associerad med en routningsregel för begäran) kan inte utgående trafik till Internet. Den här konfigurationen påverkar kommunikationen till serverdelsmål som är offentligt tillgängliga via Internet.
Om du vill aktivera utgående anslutning från din Application Gateway till ett Internetuppkopplat serverdelsmål kan du använda NAT för virtuellt nätverk eller vidarebefordra trafik till en virtuell installation som har åtkomst till Internet.
NAT för virtuella nätverk ger kontroll över vilken IP-adress eller prefix som ska användas samt konfigurerbar tidsgräns för inaktivitet. För att konfigurera skapar du en ny NAT Gateway med en offentlig IP-adress eller ett offentligt prefix och associerar den med undernätet som innehåller Application Gateway.
Om en virtuell installation krävs för utgående Internet kan du läsa avsnittet routningstabellkontroll i det här dokumentet.
Vanliga scenarier där offentlig IP-användning krävs:
- Kommunikation till nyckelvalvet utan användning av privata slutpunkter eller tjänstslutpunkter
- Utgående kommunikation krävs inte för pfx-filer som laddas upp direkt till Application Gateway
- Kommunikation till serverdelsmål via Internet
- Kommunikation till internetuppkopplade CRL- eller OCSP-slutpunkter
Kontroll av nätverkssäkerhetsgrupp
Nätverkssäkerhetsgrupper som är associerade med ett Application Gateway-undernät kräver inte längre inkommande regler för GatewayManager, och de kräver inte utgående åtkomst till Internet. Den enda obligatoriska regeln är Tillåt inkommande trafik från AzureLoadBalancer för att säkerställa att hälsoavsökningar kan nå gatewayen.
Följande konfiguration är ett exempel på den mest restriktiva uppsättningen inkommande regler som nekar all trafik utom Azure-hälsoavsökningar. Förutom de definierade reglerna definieras explicita regler för att tillåta klienttrafik att nå gatewayens lyssnare.
Kommentar
Application Gateway visar en avisering som ber om att se till att Allow LoadBalanceRule anges om en DenyAll-regel oavsiktligt begränsar åtkomsten till hälsoavsökningar.
Exempelscenario
I det här exemplet går vi igenom skapandet av en NSG med hjälp av Azure-portalen med följande regler:
- Tillåt inkommande trafik till port 80 och 8080 till Application Gateway från klientbegäranden från Internet
- Neka all annan inkommande trafik
- Tillåt utgående trafik till ett serverdelsmål i ett annat virtuellt nätverk
- Tillåt utgående trafik till ett serverdelsmål som är Tillgängligt via Internet
- Neka all annan utgående trafik
Skapa först en nätverkssäkerhetsgrupp. Den här säkerhetsgruppen innehåller dina regler för inkommande och utgående trafik.
Regler för inkommande trafik
Tre inkommande standardregler har redan etablerats i säkerhetsgruppen. Se följande exempel:
Skapa sedan följande fyra nya regler för inkommande säkerhet:
- Tillåt inkommande port 80, tcp, från Internet (valfritt)
- Tillåt inkommande port 8080, tcp, från Internet (valfritt)
- Tillåt inkommande trafik från AzureLoadBalancer
- Neka inkommande trafik
Så här skapar du följande regler:
- Välj Inkommande säkerhetsregler
- Markera Lägga till
- Ange följande information för varje regel i fönstret Lägg till inkommande säkerhetsregel .
- När du har angett informationen väljer du Lägg till för att skapa regeln.
- Det tar en stund att skapa varje regel.
Regel # | Källa | Källtjänsttagg | Källportintervall | Mål | Tjänst | Dest-portintervall | Protokoll | Åtgärd | Prioritet | Name |
---|---|---|---|---|---|---|---|---|---|---|
1 | Valfri | * | Valfri | HTTP | 80 | TCP | Tillåt | 1028 | AllowWeb | |
2 | Valfri | * | Valfri | Anpassat | 8080 | TCP | Tillåt | 1029 | AllowWeb8080 | |
3 | Service Tag | AzureLoadBalancer | * | Alla | Anpassat | * | Alla | Tillåt | 1045 | AllowLB |
4 | Valfri | * | Valfri | Anpassat | * | Valfri | Neka | 4095 | DenyAllInbound |
Välj Uppdatera för att granska alla regler när etableringen är klar.
Regler för utgående trafik
Tre standardregler för utgående trafik med prioritet 65000, 65001 och 65500 har redan etablerats.
Skapa följande tre nya utgående säkerhetsregler:
- Tillåt TCP 443 från 10.10.4.0/24 till serverdelsmålet 203.0.113.1
- Tillåt TCP 80 från källa 10.10.4.0/24 till mål 10.13.0.4
- NekaAlla trafikregler
Dessa regler tilldelas en prioritet på 400, 401 respektive 4096.
Kommentar
- 10.10.4.0/24 är Application Gateway-undernätets adressutrymme.
- 10.13.0.4 är en virtuell dator i ett peer-kopplat virtuellt nätverk.
- 203.0.113.1 är en virtuell serverdelsmåldator.
Så här skapar du följande regler:
- Välj Utgående säkerhetsregler
- Markera Lägga till
- Ange följande information för varje regel i fönstret Lägg till utgående säkerhetsregel .
- När du har angett informationen väljer du Lägg till för att skapa regeln.
- Det tar en stund att skapa varje regel.
Regel # | Källa | Källans IP-adress/CIDR-intervall | Källportintervall | Mål | Mål-IP-adresser/CIDR-intervall | Tjänst | Dest-portintervall | Protokoll | Åtgärd | Prioritet | Name |
---|---|---|---|---|---|---|---|---|---|---|---|
1 | IP-adresser | 10.10.4.0/24 | * | IP-adresser | 203.0.113.1 | HTTPS | 443 | TCP | Tillåt | 400 | AllowToBackendTarget |
2 | IP-adresser | 10.10.4.0/24 | * | IP-adresser | 10.13.0.4 | HTTP | 80 | TCP | Tillåt | 401 | AllowToPeeredVnetVM |
3 | Valfri | * | Valfri | Anpassat | * | Valfri | Neka | 4096 | DenyAll |
Välj Uppdatera för att granska alla regler när etableringen är klar.
Associera NSG till undernätet
Det sista steget är att associera nätverkssäkerhetsgruppen med det undernät som innehåller din Application Gateway.
Resultat:
Viktigt!
Var försiktig när du definierar DenyAll-regler , eftersom du oavsiktligt kan neka inkommande trafik från klienter som du tänker tillåta åtkomst till. Du kan också oavsiktligt neka utgående trafik till serverdelsmålet, vilket gör att serverdelshälsan misslyckas och genererar 5XX-svar.
Routningstabellkontroll
I det aktuella erbjudandet för Application Gateway stöds inte associationen av en routningstabell med en regel (eller skapande av regel) som definierats som 0.0.0.0/0 med ett nästa hopp eftersom den virtuella installationen inte stöds för att säkerställa korrekt hantering av Application Gateway.
Efter registreringen av funktionen för offentlig förhandsversion är det nu möjligt att vidarebefordra trafik till en virtuell installation via definitionen av en routningstabellregel som definierar 0.0.0.0/0 med nästa hopp till Virtuell installation.
Tvingad tunneltrafik eller inlärning av 0.0.0.0/0-vägen via BGP-annonsering påverkar inte Application Gateway-hälsan och respekteras för trafikflödet. Det här scenariot kan vara tillämpligt när du använder VPN, ExpressRoute, Route Server eller Virtual WAN.
Exempelscenario
I följande exempel skapar vi en routningstabell och associerar den med Application Gateway-undernätet för att säkerställa att utgående Internetåtkomst från undernätet kommer ut från en virtuell installation. På hög nivå sammanfattas följande design i bild 1:
- Application Gateway finns i ett virtuellt ekernätverk
- Det finns en virtuell nätverksinstallation (en virtuell dator) i hubbnätverket
- En routningstabell med en standardväg (0.0.0.0/0) till den virtuella installationen är associerad med Application Gateway-undernätet
Bild 1: Utgående internetåtkomst via virtuell installation
Så här skapar du en routningstabell och associerar den med Application Gateway-undernätet:
- Välj Vägar och skapa nästa hoppregel för 0.0.0.0/0 och konfigurera målet som IP-adress för den virtuella datorn:
- Välj Undernät och associera routningstabellen till Application Gateway-undernätet:
- Kontrollera att trafiken passerar genom den virtuella installationen.
Begränsningar/kända problem
I den offentliga förhandsversionen är följande begränsningar kända.
Private Link-konfiguration
Konfigurationsstöd för privat länk för tunneltrafik via privata slutpunkter till Application Gateway stöds inte med endast privat gateway.
WAF-hastighetsbegränsning
Hastighetsbegränsning av anpassade regler för Application Gateway WAF v2 stöds inte för närvarande.
Konfiguration av privat IP-klientdel endast med AGIC
AGIC v1.7 måste endast användas för att införa stöd för ip-adressen för privata klientdelar.
Privat slutpunktsanslutning via global VNet-peering
Om Application Gateway har en referens för serverdelsmål eller nyckelvalv till en privat slutpunkt i ett virtuellt nätverk som är tillgängligt via global VNet-peering, avbryts trafiken, vilket resulterar i en status som inte är felfri.
Network Watcher-integrering
Anslutningsfelsökningar och NSG-diagnostik returnerar ett fel när du kör kontroll- och diagnostiktester.
Samexistera v2 Application Gateways som skapats innan förbättrad nätverkskontroll aktiveras
Om ett undernät delar Application Gateway v2-distributioner som har skapats både före och efter aktiveringen av de förbättrade funktionerna för nätverkskontroll begränsas nätverkssäkerhetsgruppen (NSG) och routningstabellfunktionen till den tidigare gatewaydistributionen. Programgatewayer som etableras innan de nya funktionerna aktiveras måste antingen återskapas eller så måste nyligen skapade gatewayer använda ett annat undernät för att aktivera förbättrade funktioner för nätverkssäkerhetsgrupp och routningstabell.
- Om det finns en gateway som distribuerades före aktiveringen av de nya funktionerna i undernätet kan det uppstå fel som:
For routes associated to subnet containing Application Gateway V2, please ensure '0.0.0.0/0' uses Next Hop Type as 'Internet'
när du lägger till routningstabellposter. - När du lägger till regler för nätverkssäkerhetsgrupper i undernätet kan du se:
Failed to create security rule 'DenyAnyCustomAnyOutbound'. Error: Network security group \<NSG-name\> blocks outgoing Internet traffic on subnet \<AppGWSubnetId\>, associated with Application Gateway \<AppGWResourceId\>. This isn't permitted for Application Gateways that have fast update enabled or have V2 Sku.
Status för okänd serverdelshälsa
Om serverdelshälsan är Okänd kan följande fel visas:
- Det gick inte att hämta serverdelens hälsostatus. Detta inträffar när en NSG/UDR/Firewall i programgatewayens undernät blockerar trafik på portarna 65503-65534 om det finns v1 SKU och portarna 65200-65535 om det finns v2 SKU eller om det FQDN som konfigurerats i serverdelspoolen inte kunde matchas till en IP-adress. Om du vill veta mer besök - https://aka.ms/UnknownBackendHealth.
Det här felet kan ignoreras och kommer att klargöras i en framtida version.