App Service nätverksfunktioner
Du kan distribuera program på Azure App Service på flera olika sätt. Som standard är appar som finns i App Service tillgängliga direkt via Internet och kan bara nå slutpunkter som finns på Internet. Men för många program måste du styra den inkommande och utgående nätverkstrafiken. Det finns flera funktioner i App Service som hjälper dig att uppfylla dessa behov. Utmaningen är att veta vilken funktion som ska användas för att lösa ett visst problem. Den här artikeln hjälper dig att avgöra vilken funktion som ska användas, baserat på några exempel på användningsfall.
Det finns två huvudsakliga distributionstyper för Azure App Service:
- Offentliga tjänstvärdar för flera innehavare App Service planer i pris-SKU:erna Kostnadsfri, Delad, Basic, Standard, Premium, PremiumV2 och PremiumV3.
- Ase-App Service-miljön (single-tenant) är värd för isolerade SKU:er App Service planer direkt i ditt virtuella Azure-nätverk.
Vilka funktioner du använder beror på om du är i tjänsten för flera klientorganisationer eller i en ASE.
Anteckning
Nätverksfunktioner är inte tillgängliga för appar som distribueras i Azure Arc.
Nätverksfunktioner för flera klientorganisationer App Service
Azure App Service är ett distribuerat system. De roller som hanterar inkommande HTTP- eller HTTPS-begäranden kallas klientdelar. De roller som är värdar för kundens arbetsbelastning kallas arbetare. Alla roller i en App Service distribution finns i ett nätverk för flera klientorganisationer. Eftersom det finns många olika kunder i samma App Service skalningsenhet kan du inte ansluta App Service-nätverket direkt till nätverket.
I stället för att ansluta nätverken behöver du funktioner för att hantera de olika aspekterna av programkommunikation. De funktioner som hanterar begäranden till din app kan inte användas för att lösa problem när du gör anrop från din app. På samma sätt kan inte de funktioner som löser problem med anrop från din app användas för att lösa problem med din app.
Inkommande funktioner | Utgående funktioner |
---|---|
Apptilldelad adress | Hybridanslutningar |
Åtkomstbegränsningar | Gateway-nödvändig integrering av virtuellt nätverk |
Tjänstslutpunkter | Virtual Network-integration |
Privata slutpunkter |
Förutom de undantag som anges kan du använda alla dessa funktioner tillsammans. Du kan blanda funktionerna för att lösa dina problem.
Användningsfall och funktioner
För alla angivna användningsfall kan det finnas några sätt att lösa problemet. Att välja den bästa funktionen går ibland längre än själva användningsfallet. Följande inkommande användningsfall föreslår hur du använder App Service nätverksfunktioner för att lösa problem med att kontrollera trafik som går till din app:
Inkommande användningsfall | Funktion |
---|---|
Stöd för IP-baserade SSL-behov för din app | Apptilldelad adress |
Stöd för ej delad dedikerad inkommande adress för din app | Apptilldelad adress |
Begränsa åtkomsten till din app från en uppsättning väldefinierade adresser | Åtkomstbegränsningar |
Begränsa åtkomsten till din app från resurser i ett virtuellt nätverk | Tjänstslutpunkter Interna Load Balancer (ILB) privata ASE-slutpunkter |
Exponera din app på en privat IP-adress i ditt virtuella nätverk | Privata ILB ASE-slutpunkter Privat IP för inkommande trafik på en Application Gateway-instans med tjänstslutpunkter |
Skydda din app med en brandvägg för webbaserade program (WAF) | Application Gateway och ILB ASE Application Gateway med privata slutpunkter Application Gateway med tjänstslutpunkter i Azure Front Door med åtkomstbegränsningar |
Belastningsutjämning av trafik till dina appar i olika regioner | Azure Front Door med åtkomstbegränsningar |
Belastningsutjämning av trafik i samma region | Application Gateway med tjänstslutpunkter |
Följande utgående användningsfall föreslår hur du använder App Service nätverksfunktioner för att lösa utgående åtkomstbehov för din app:
Utgående användningsfall | Funktion |
---|---|
Få åtkomst till resurser i ett virtuellt Azure-nätverk i samma region | ASE för integrering av virtuella nätverk |
Få åtkomst till resurser i ett virtuellt Azure-nätverk i en annan region | integrering av virtuella nätverk och peering för virtuella nätverk Gateway-nödvändig ASE för integrering av virtuella nätverk och peering för virtuella nätverk |
Få åtkomst till resurser som skyddas med tjänstslutpunkter | ASE för integrering av virtuellt nätverk |
Få åtkomst till resurser i ett privat nätverk som inte är anslutet till Azure | Hybridanslutningar |
Få åtkomst till resurser i Azure ExpressRoute-kretsar | ASE för integrering av virtuellt nätverk |
Skydda utgående trafik från din webbapp | ASE för integrering av virtuella nätverk och nätverkssäkerhetsgrupper |
Dirigera utgående trafik från din webbapp | ASE för integrering av virtuella nätverk och routningstabeller |
Standardbeteende för nätverk
Azure App Service skalningsenheter stöder många kunder i varje distribution. De kostnadsfria och delade SKU-planerna är värdar för kundarbetsbelastningar för arbetare med flera klientorganisationer. De grundläggande och högre planerna är värdar för kundarbetsbelastningar som endast är dedikerade till en App Service plan. Om du har en Standard-App Service-plan körs alla appar i planen på samma arbetsprocess. Om du skalar ut arbetaren replikeras alla appar i den App Service planen på en ny arbetsroll för varje instans i din App Service-plan.
Utgående adresser
De virtuella arbetsdatorerna delas till stor del upp av App Service planer. I planerna Kostnadsfri, Delad, Basic, Standard och Premium används samma typ av arbets-VM. PremiumV2-planen använder en annan typ av virtuell dator. PremiumV3 använder ännu en vm-typ. När du ändrar vm-familjen får du en annan uppsättning utgående adresser. Om du skalar från Standard till PremiumV2 ändras dina utgående adresser. Om du skalar från PremiumV2 till PremiumV3 ändras dina utgående adresser. I vissa äldre skalningsenheter ändras både inkommande och utgående adresser när du skalar från Standard till PremiumV2.
Det finns många adresser som används för utgående anrop. De utgående adresser som används av din app för att göra utgående anrop visas i egenskaperna för din app. Dessa adresser delas av alla appar som körs i samma arbetsfamilj för virtuella datorer i App Service distributionen. Om du vill se alla adresser som din app kan använda i en skalningsenhet finns det en egenskap med namnet possibleOutboundAddresses
som visar dem.
App Service har många slutpunkter som används för att hantera tjänsten. Dessa adresser publiceras i ett separat dokument och finns också i AppServiceManagement
IP-tjänsttaggen. Taggen AppServiceManagement
används endast i App Service miljöer där du behöver tillåta sådan trafik. De App Service inkommande adresserna spåras i AppService
IP-tjänsttaggen. Det finns ingen IP-tjänsttagg som innehåller de utgående adresser som används av App Service.
Apptilldelad adress
Den apptilldelade adressfunktionen är en avsökning av DEN IP-baserade SSL-funktionen. Du kommer åt det genom att konfigurera SSL med din app. Du kan använda den här funktionen för IP-baserade SSL-anrop. Du kan också använda den för att ge din app en adress som bara den har.
När du använder en apptilldelad adress går trafiken fortfarande igenom samma klientdelsroller som hanterar all inkommande trafik till App Service skalningsenhet. Men adressen som är tilldelad till din app används endast av din app. Användningsfall för den här funktionen:
- Stöd för IP-baserade SSL-behov för din app.
- Ange en dedikerad adress för din app som inte delas.
Information om hur du anger en adress för din app finns i Lägga till ett TLS/SSL-certifikat i Azure App Service.
Åtkomstbegränsningar
Med åtkomstbegränsningar kan du filtrera inkommande begäranden . Filtreringsåtgärden utförs på de klientdelsroller som är överordnade från arbetsrollerna där dina appar körs. Eftersom klientdelsrollerna är överordnade från arbetarna kan du tänka på åtkomstbegränsningar som skydd på nätverksnivå för dina appar. Mer information om åtkomstbegränsningar finns i Översikt över åtkomstbegränsningar.
Med den här funktionen kan du skapa en lista över tillåtna och neka regler som utvärderas i prioritetsordning. Det liknar funktionen nätverkssäkerhetsgrupp (NSG) i Azure-nätverk. Du kan använda den här funktionen i en ASE eller i tjänsten för flera klientorganisationer. När du använder den med en ILB ASE kan du begränsa åtkomsten från privata adressblock. Information om hur du aktiverar den här funktionen finns i Konfigurera åtkomstbegränsningar.
Anteckning
Upp till 512 regler för åtkomstbegränsning kan konfigureras per app.
Privat slutpunkt
Privat slutpunkt är ett nätverksgränssnitt som ansluter dig privat och säkert till din webbapp via en privat Azure-länk. Privat slutpunkt använder en privat IP-adress från ditt virtuella nätverk, vilket effektivt för webbappen till ditt virtuella nätverk. Den här funktionen gäller endast för inkommande flöden till din webbapp. Mer information finns i Använda privata slutpunkter för Azure Web App.
Vissa användningsfall för den här funktionen:
- Begränsa åtkomsten till din app från resurser i ett virtuellt nätverk.
- Exponera din app på en privat IP-adress i ditt virtuella nätverk.
- Skydda din app med en WAF.
Privata slutpunkter förhindrar dataexfiltrering eftersom det enda du kan nå över den privata slutpunkten är appen som den är konfigurerad med.
Hybridanslutningar
App Service hybridanslutningar gör att dina appar kan göra utgående anrop till angivna TCP-slutpunkter. Slutpunkten kan finnas lokalt, i ett virtuellt nätverk eller var som helst som tillåter utgående trafik till Azure på port 443. Om du vill använda funktionen måste du installera en reläagent med namnet Hybridanslutningshanteraren på en Windows Server 2012 eller senare värd. Hybridanslutningshanteraren måste kunna nå Azure Relay på port 443. Du kan ladda ned Hybridanslutningshanteraren från användargränssnittet för App Service hybridanslutningar i portalen.
App Service hybridanslutningar bygger på azure relay-hybridanslutningar. App Service använder en specialiserad form av funktionen som endast stöder utgående anrop från din app till en TCP-värd och port. Den här värden och porten behöver bara matcha på värden där Hybridanslutningshanteraren är installerad.
När appen i App Service gör en DNS-sökning på värden och porten som definierats i din hybridanslutning omdirigeras trafiken automatiskt för att gå igenom hybridanslutningen och ut ur Hybridanslutningshanteraren. Mer information finns i App Service Hybridanslutningar.
Den här funktionen används ofta för att:
- Få åtkomst till resurser i privata nätverk som inte är anslutna till Azure med ett VPN eller ExpressRoute.
- Stöd för migrering av lokala appar till App Service utan att behöva flytta stöddatabaser.
- Ge åtkomst med förbättrad säkerhet till en enda värd och port per hybridanslutning. De flesta nätverksfunktioner öppnar åtkomst till ett nätverk. Med hybridanslutningar kan du bara nå den enskilda värden och porten.
- Omfattar scenarier som inte omfattas av andra utgående anslutningsmetoder.
- Utföra utveckling i App Service på ett sätt som gör att apparna enkelt kan använda lokala resurser.
Eftersom den här funktionen ger åtkomst till lokala resurser utan ett inkommande brandväggshål är den populär bland utvecklare. De andra utgående App Service nätverksfunktionerna är relaterade till Azure Virtual Network. Hybridanslutningar är inte beroende av att gå via ett virtuellt nätverk. Den kan användas för en större mängd olika nätverksbehov.
App Service hybridanslutningar är omedveten om vad du gör ovanpå det. Så du kan använda den för att komma åt en databas, en webbtjänst eller en godtycklig TCP-socket på en stordator. Funktionen tunnel t.ex. TCP-paket.
Hybridanslutningar är populära för utveckling, men de används även i produktionsprogram. Det är bra för åtkomst till en webbtjänst eller databas, men det är inte lämpligt för situationer som innebär att skapa många anslutningar.
Virtual Network-integration
App Service integrering av virtuella nätverk gör det möjligt för din app att göra utgående begäranden till ett virtuellt Azure-nätverk.
Med integreringsfunktionen för virtuella nätverk kan du placera appens serverdel i ett undernät i ett Resource Manager virtuellt nätverk. Det virtuella nätverket måste finnas i samma region som din app. Den här funktionen är inte tillgänglig från en App Service-miljön, som redan finns i ett virtuellt nätverk. Användningsfall för den här funktionen:
- Få åtkomst till resurser i Resource Manager virtuella nätverk i samma region.
- Få åtkomst till resurser i peerkopplade virtuella nätverk, inklusive anslutningar mellan regioner.
- Åtkomst till resurser som skyddas med tjänstslutpunkter.
- Åtkomst till resurser som är tillgängliga i ExpressRoute- eller VPN-anslutningar.
- Få åtkomst till resurser i privata nätverk utan behov och kostnad för en Virtual Network gateway.
- Hjälp med att skydda all utgående trafik.
- Tvinga tunnel all utgående trafik.
Mer information finns i App Service integrering av virtuella nätverk.
Gateway-obligatorisk integrering av virtuellt nätverk
Gateway-nödvändig integrering av virtuella nätverk var den första utgåvan av integrering av virtuella nätverk i App Service. Funktionen fungerar genom att ansluta värden som appen körs på till en Virtual Network gateway i ditt virtuella nätverk med hjälp av en punkt-till-plats-VPN. När du konfigurerar funktionen får appen en av de punkt-till-plats-tilldelade adresserna som tilldelats varje instans.
Med gatewayens integrering som krävs kan du ansluta direkt till ett virtuellt nätverk i en annan region utan peering och ansluta till ett klassiskt virtuellt nätverk. Funktionen är begränsad till App Service Windows-planer och fungerar inte med ExpressRoute-anslutna virtuella nätverk. Vi rekommenderar att du använder integreringen av det regionala virtuella nätverket. Mer information om den här funktionen finns i App Service integrering av virtuella nätverk.
App Service Environment
En App Service-miljön (ASE) är en distribution med en klientorganisation av Azure App Service som körs i ditt virtuella nätverk. Vissa fall, till exempel för den här funktionen:
- Få åtkomst till resurser i ditt virtuella nätverk.
- Få åtkomst till resurser i ExpressRoute.
- Exponera dina appar med en privat adress i ditt virtuella nätverk.
- Få åtkomst till resurser mellan tjänstslutpunkter.
- Få åtkomst till resurser mellan privata slutpunkter.
Med en ASE behöver du inte använda integrering av virtuella nätverk eftersom ASE redan finns i ditt virtuella nätverk. Om du vill komma åt resurser som SQL eller Azure Storage över tjänstslutpunkter aktiverar du tjänstslutpunkter i ASE-undernätet. Om du vill komma åt resurser i det virtuella nätverket eller privata slutpunkter i det virtuella nätverket behöver du inte göra någon extra konfiguration. Om du vill komma åt resurser i ExpressRoute är du redan i det virtuella nätverket och behöver inte konfigurera något i ASE eller apparna i det.
Eftersom apparna i en ILB ASE kan exponeras på en privat IP-adress kan du enkelt lägga till WAF-enheter för att exponera bara de appar som du vill ha till Internet och skydda resten. Den här funktionen kan underlätta utvecklingen av flernivåprogram.
Vissa saker är för närvarande inte möjliga från tjänsten för flera klientorganisationer, men är möjliga från en ASE. Här är några exempel:
- Värdhantera dina appar i en tjänst för en enda klientorganisation.
- Skala upp till många fler instanser än vad som är möjligt i tjänsten för flera klientorganisationer.
- Läs in privata CA-klientcertifikat för användning av dina appar med privata CA-skyddade slutpunkter.
- Framtvinga TLS 1.2 för alla appar som finns i systemet utan möjlighet att inaktivera det på appnivå.
ASE ger den bästa historien om isolerade och dedikerade appvärdar, men det innebär vissa hanteringsutmaningar. Några saker att tänka på innan du använder en fungerande ASE:
- En ASE körs i ditt virtuella nätverk, men den har beroenden utanför det virtuella nätverket. Dessa beroenden måste tillåtas. Mer information finns i Nätverksöverväganden för en App Service-miljön.
- En ASE skalas inte omedelbart som tjänsten för flera klientorganisationer. Du måste förutse skalningsbehov i stället för reaktiv skalning.
- En ASE har en högre startkostnad. För att få ut mesta möjliga av din ASE bör du planera att placera många arbetsbelastningar i en ASE i stället för att använda den för små ansträngningar.
- Apparna i en ASE kan inte selektivt begränsa åtkomsten till vissa appar i ASE och inte andra.
- En ASE finns i ett undernät och alla nätverksregler gäller för all trafik till och från den ASE:n. Om du bara vill tilldela regler för inkommande trafik för en app använder du åtkomstbegränsningar.
Kombinera funktioner
De funktioner som anges för tjänsten för flera innehavare kan användas tillsammans för att lösa mer avancerade användningsfall. Två av de vanligaste användningsfallen beskrivs här, men det är bara exempel. Genom att förstå vad de olika funktionerna gör kan du uppfylla nästan alla systemarkitekturbehov.
Placera en app i ett virtuellt nätverk
Du kanske undrar hur du placerar en app i ett virtuellt nätverk. Om du placerar din app i ett virtuellt nätverk finns de inkommande och utgående slutpunkterna för appen i det virtuella nätverket. En ASE är det bästa sättet att lösa det här problemet. Men du kan uppfylla de flesta av dina behov i tjänsten för flera innehavare genom att kombinera funktioner. Du kan till exempel vara värd för endast intranätprogram med privata inkommande och utgående adresser genom att:
- Skapa en programgateway med privata inkommande och utgående adresser.
- Skydda inkommande trafik till din app med tjänstslutpunkter.
- Använd integreringsfunktionen för virtuellt nätverk så att serverdelen av din app finns i ditt virtuella nätverk.
Det här distributionsformatet ger dig inte en dedikerad adress för utgående trafik till Internet eller möjlighet att låsa all utgående trafik från din app. Det kommer att ge dig en mycket av vad du bara annars skulle få med en ASE.
Skapa flernivåprogram
Ett flernivåprogram är ett program där API-serverdelsappar endast kan nås från klientdelsnivån. Det finns två sätt att skapa ett flernivåprogram. Båda börjar med integrering av virtuella nätverk för att ansluta klientwebbappen till ett undernät i ett virtuellt nätverk. På så sätt kan din webbapp göra anrop till ditt virtuella nätverk. När klientdelsappen är ansluten till det virtuella nätverket måste du bestämma hur du ska låsa åtkomsten till ditt API-program. Du kan:
- Värdhantera både klientdelen och API-appen i samma ILB ASE och exponera klientdelsappen på Internet med hjälp av en programgateway.
- Värdhantera klientdelen i tjänsten för flera klientorganisationer och serverdelen i en ILB ASE.
- Värdhanterad både klientdelen och API-appen i tjänsten för flera klientorganisationer.
Om du är värd för både klientdelen och API-appen för ett flernivåprogram kan du:
Exponera ditt API-program med hjälp av privata slutpunkter i ditt virtuella nätverk:
Använd tjänstslutpunkter för att säkerställa att inkommande trafik till din API-app endast kommer från det undernät som används av klientwebbappen:
Här följer några överväganden som hjälper dig att avgöra vilken metod du ska använda:
- När du använder tjänstslutpunkter behöver du bara skydda trafiken till din API-app till integrationsundernätet. Tjänstslutpunkter hjälper till att skydda API-appen, men du kan fortfarande ha dataexfiltrering från klientdelsappen till andra appar i App Service.
- När du använder privata slutpunkter har du två undernät i spel, vilket ökar komplexiteten. Dessutom är den privata slutpunkten en resurs på den översta nivån och lägger till hanteringskostnader. Fördelen med att använda privata slutpunkter är att du inte har möjlighet till dataexfiltrering.
Endera metoden fungerar med flera klientdelar. I liten skala är tjänstslutpunkter enklare att använda eftersom du bara aktiverar tjänstslutpunkter för API-appen i undernätet för klientdelsintegrering. När du lägger till fler klientdelsappar måste du justera varje API-app så att den inkluderar tjänstslutpunkter med integrationsundernätet. När du använder privata slutpunkter är det mer komplicerat, men du behöver inte ändra något i dina API-appar när du har angett en privat slutpunkt.
Verksamhetsspecifika program
Verksamhetsspecifika program (LOB) är interna program som normalt inte exponeras för åtkomst från Internet. Dessa program anropas inifrån företagsnätverk där åtkomsten kan kontrolleras strikt. Om du använder en ILB ASE är det enkelt att vara värd för dina verksamhetsspecifika program. Om du använder tjänsten för flera klientorganisationer kan du antingen använda privata slutpunkter eller använda tjänstslutpunkter i kombination med en programgateway. Det finns två skäl att använda en programgateway med tjänstslutpunkter i stället för att använda privata slutpunkter:
- Du behöver WAF-skydd för dina LOB-appar.
- Du vill belastningsutjämning till flera instanser av dina LOB-appar.
Om inget av dessa behov gäller är det bättre att använda privata slutpunkter. Med privata slutpunkter tillgängliga i App Service kan du exponera dina appar på privata adresser i det virtuella nätverket. Den privata slutpunkten som du placerar i ditt virtuella nätverk kan nås via ExpressRoute- och VPN-anslutningar.
Om du konfigurerar privata slutpunkter exponeras dina appar på en privat adress, men du måste konfigurera DNS för att nå den adressen lokalt. För att den här konfigurationen ska fungera måste du vidarebefordra den privata Azure DNS-zonen som innehåller dina privata slutpunkter till dina lokala DNS-servrar. Privata Azure DNS-zoner stöder inte zonvidarebefordring, men du kan stödja zonvidarebefordring med hjälp av en privat Azure DNS-matchare.
App Service portar
Om du genomsöker App Service hittar du flera portar som exponeras för inkommande anslutningar. Det finns inget sätt att blockera eller kontrollera åtkomsten till dessa portar i tjänsten för flera klientorganisationer. Här är listan över exponerade portar:
Användning | Port eller portar |
---|---|
HTTP/HTTPS | 80, 443 |
Hantering | 454, 455 |
FTP/FTPS | 21, 990, 10001-10300 |
Fjärrfelsökning i Visual Studio | 4020, 4022, 4024 |
Webbdistributionstjänst | 8172 |
Infrastrukturanvändning | 7654, 1221 |