Förbättrad säkerhetsåtkomst till App Service-webbappar från ett lokalt nätverk

Azure App Service
Azure Virtual Network
Azure Private Link
Azure Key Vault
Azure Storage Accounts

Den här artikeln visar hur du konfigurerar en förbättrad privat anslutning till en App Service-webbapp eller en funktionsapp från ett lokalt nätverk eller inifrån ett virtuellt Azure-nätverk. Den visar också hur du konfigurerar förbättrad säkerhetsanslutning mellan appen och andra Azure PaaS-tjänster via Azure Private Link, utan att använda det offentliga Internet.

I den här artikeln refererar Azure App Service till prisnivåerna där det finns delad infrastruktur med andra App Service-kunder, till exempel Basic-, Standard- och Premium-nivåerna. App Service-miljön distribueras direkt till ditt virtuella nätverk med dedikerad stödinfrastruktur och använder isolerade prisnivåer och står inte i fokus för den här artikeln.

Arkitektur

Diagram som visar referensarkitekturen för säker åtkomst till webbappar med flera klientorganisationer från ett lokalt nätverk.

Ladda ned en Visio-fil med den här arkitekturen.

Dataflöde

  • Med azure App Service regional integrering av virtuella nätverk ansluter webbappen till Azure-tjänster via det delegerade undernätet VNet Integration Subnet i ett virtuellt Azure-nätverk.

    • Undernätet för VNet-integrering och privata undernät för slutpunkter är separata virtuella nätverk i olika prenumerationer. Båda nätverken peerkopplas med Hub Virtual Network som en del av en nätverkskonfiguration för nav och eker. För regional integrering av virtuella nätverk måste de peerkopplade virtuella nätverken finnas i samma Azure-region.
  • Azure Private Link-tjänsten konfigurerar en privat slutpunkt för PaaS-tjänster, webbappar, Azure SQL-databas, Azure-lagringskonto och Azure-nyckelvalv i privat virtuellt slutpunktsnätverk.

    I det här exemplet är det här virtuella nätverket endast dedikerat för distribution av privata slutpunkter. Inga andra resurser, till exempel virtuella datorer, kommer att distribueras i det här virtuella nätverket. Det framtida behovet av att lägga till privata slutpunkter beaktades när undernätsstorleken valdes.

  • Det lokala nätverket och de virtuella Azure-nätverken kan anslutas via plats-till-plats-VPN (S2S) eller privat Azure ExpressRoute-peering. Användare i det lokala nätverket får åtkomst till appen privat och med förbättrad säkerhet endast över det privata nätverket.

    I det här exemplet är det lokala nätverket och virtuella Azure-nätverk anslutna via privat ExpressRoute-peering.

  • För ett lokalt nätverk som redan har en DNS-lösning (Domain Name System) på plats konfigureras den lokala DNS-lösningen för att vidarebefordra DNS-trafik till en privat DNS-post i Azure (till exempel azurewebsites.net) via en villkorsstyrd vidarebefordrare som vidarebefordrar begäran till DNS Private Resolver-tjänstens inkommande slutpunkt som distribueras i Azure. DNS Private Resolver frågar Azure DNS och tar emot information om länken azure Privat DNS virtuella nätverk. Sedan utförs lösningen av den privata DNS-zonen som är länkad till det virtuella nätverket.

    Privat DNS zoner distribueras också i samma prenumeration som Privat virtuellt slutpunktsnätverk.

    I det här exemplet vidarebefordrar en DNS-vidarebefordrare på IP-adressen 192.168.0.254 i det lokala nätverket alla DNS-matchningsbegäranden till värdnamnet azurewebsites.net till DNS Private Resolver-tjänstens inkommande slutpunkt i Azure på adressen 10.0.0.132. Sedan löses begäranden av den Azure-tillhandahållna DNS-tjänsten, som har IP-adressen 168.63.129.16, via Azure Privat DNS-zonen som är länkad till det virtuella nätverket.

    En utgående slutpunkt krävs för att aktivera namnmatchning för villkorlig vidarebefordran från Azure till lokala, andra molnleverantörer eller externa DNS-servrar med hjälp av en DNS-regeluppsättning för vidarebefordran.

    Det krävs inte att du konfigurerar en regeluppsättning för DNS-vidarebefordran för det här scenariot.

    Den här apptjänstkonfigurationen bör finnas:

    Tangent Värde
    WEBSITE_DNS_SERVER 168.63.129.16
  • Virtuella nätverk är länkade till alla privata DNS-zoner i Azure.

    • Det virtuella nätverk som har privata slutpunkter länkas automatiskt till de privata DNS-zonerna. Du måste länka de andra virtuella nätverken separat.
  • Webbappen kommunicerar med de privata slutpunkterna för PaaS-tjänsterna i det privata virtuella slutpunktsnätverket via Azure Firewall.

  • I Azure Firewall konfigureras programreglerna för att tillåta kommunikation mellan VNet Integration Subnet och de privata slutpunkterna för PaaS-resurser. Målets fullständigt kvalificerade domännamn (FQDN) är:

    • *.azurewebsites.net
    • *.database.windows.net
    • *.core.windows.net
    • *.vaultcore.azure.net
  • Brandväggs- och virtuell nätverkskonfiguration för Azure SQL, Azure Storage-konto och Azure Key Vault tillåter endast trafik från undernätet för VNet-integrering. Konfigurationen tillåter inte kommunikation med något annat virtuellt nätverk eller med det offentliga Internet.

Komponenter

  • Azure App Service är värd för webbprogram och funktionsappar, vilket ger automatisk skalning och hög tillgänglighet utan att du behöver hantera infrastrukturen.
  • Azure SQL Database är en hanterad tjänst för relationsdatabaser som har stöd för relationsdata, rumsliga data, JSON och XML.
  • Azure Storage-kontot tillhandahåller ett unikt namnområde för Azure Storage-data som är tillgängliga var som helst i världen via HTTP eller HTTPS. Den innehåller alla Azure Storage-dataobjekt: blobar, filresurser, köer, tabeller och diskar.
  • Azure Key Vault är en tjänst för säker lagring och åtkomst till API-nycklar, lösenord, certifikat, kryptografiska nycklar eller andra hemligheter som används av molnappar och tjänster.
  • Azure Virtual Network är den grundläggande byggstenen för privata nätverk i Azure. Azure-resurser som virtuella datorer kan kommunicera säkert med varandra, internet och lokala nätverk via virtuella nätverk.
  • Azure Private Link tillhandahåller en privat slutpunkt i ett virtuellt nätverk för anslutning till Azure PaaS-tjänster som Azure Storage och SQL Database, eller till kund- eller partnertjänster.
  • Privat Peering i Azure ExpressRoute utökar lokala nätverk till Microsoft-molnet via en privat anslutning. Du kan också upprätta plats-till-plats-VPN mellan lokalt och Azure-nätverket i stället för att använda Azure ExpressRoute.
  • Azure Firewall är en hanterad, molnbaserad nätverkssäkerhetstjänst som hjälper till att skydda Azure Virtual Network-resurser.
  • Privat DNS Zone tillhandahåller en tillförlitlig och säker DNS-tjänst för hantering och matchning av domännamn i det virtuella nätverket.
  • Med DNS Private Resolver kan du köra frågor mot privata Azure DNS-zoner från en lokal miljö, och vice versa, utan att distribuera VM-baserade DNS-servrar.

Alternativ

För privat anslutning är en alternativ metod att använda App Service-miljön som värd för webbprogrammet i en isolerad miljö. App Service-miljön undviker delad värdinfrastruktur mellan App Service-kunder. För databasen kan du distribuera Azure SQL Managed Instance internt i ett virtuellt nätverk, så du behöver inte integrering av virtuella nätverk eller privata slutpunkter. Dessa erbjudanden är vanligtvis dyrare eftersom de tillhandahåller isolerad distribution med en klientorganisation och andra funktioner.

Om du har en App Service-miljön men inte använder SQL Managed Instance kan du fortfarande använda en privat slutpunkt för privat anslutning till en Azure SQL-databas. Om du redan har SQL Managed Instance men använder en App Service kan du fortfarande använda regional VNet-integrering för att ansluta till den privata adressen för SQL Managed Instance.

För vissa andra Azure-tjänster, till exempel Key Vault eller Storage, finns det inget alternativ till att använda privata slutpunkter för mycket säkra och privata anslutningar från Web Apps.

Potentiella användningsfall

  • Få åtkomst till en App Service-webbapp eller funktionsapp privat med förbättrad säkerhet över den privata slutpunkten från ett lokalt nätverk eller inifrån virtuella Azure-nätverk.
  • Ansluta från en webbapp eller funktionsapp till PaaS-erbjudanden (Plattform som en tjänst) i Azure:
    • En annan webbapp
    • SQL Database
    • Azure Storage
    • Key Vault
    • Alla andra tjänster som stöder privata Azure-slutpunkter för inkommande anslutning

Att tänka på

Dessa överväganden implementerar grundpelarna i Azure Well-Architected Framework, som är en uppsättning vägledande grundsatser som kan användas för att förbättra kvaliteten på en arbetsbelastning. Mer information finns i Microsoft Azure Well-Architected Framework.

Säkerhet

Säkerhet ger garantier mot avsiktliga attacker och missbruk av dina värdefulla data och system. Mer information finns i Översikt över säkerhetspelare.

Med privat slutpunkt för webbappen kan du:

  • Skydda din webbapp genom att konfigurera den privata slutpunkten, vilket eliminerar offentlig exponering.
  • Anslut med förbättrad säkerhet för webbappar från lokala nätverk som ansluter till det virtuella nätverket med hjälp av en privat VPN- eller ExpressRoute-peering. Inkommande anslutningar till webbappen tillåts från det lokala nätverket eller endast från det virtuella Azure-nätverket.
  • Undvik dataexfiltrering från ditt virtuella nätverk.

Du kan ytterligare förbättra säkerheten för den inkommande anslutningen till webbappen genom att fronta appen med en tjänst som Azure Application Gateway eller Azure Front Door, eventuellt med Azure Web Application Firewall. När du aktiverar privat slutpunkt för webbappen utvärderas inte konfigurationen av åtkomstbegränsningar för webbappen.

Det här scenariot förbättrar också säkerheten för den utgående anslutningen från en App Service-webbapp till ett underordnat beroende som en databas, lagring eller Key Vault.

Du kan konfigurera programroutning för att dirigera antingen all trafik eller endast privat trafik (kallas även RFC1918 trafik) till ditt virtuella nätverk. Du konfigurerar det här beteendet med hjälp av inställningen Väg alla . Om Route All är inaktiverat dirigerar webbappen endast privat trafik till ditt virtuella nätverk. Om du vill blockera trafik till offentliga adresser aktiverar du inställningen Dirigera alla till det virtuella nätverket. Du kan också använda en nätverkssäkerhetsgrupp för att blockera utgående trafik till resurser i ditt virtuella nätverk eller på Internet. När Route All inte är aktiverat tillämpas NSG:er endast på RFC1918 trafik.

I det här exemplet behöver webbappen inte kommunicera med någon tjänst som inte finns i det virtuella nätverket, så Route All är aktiverat.

En viktig säkerhetsövervägande i det här scenariot är konfigurationen av brandväggen för PaaS-resurser.

Brandväggsalternativ för SQL Database

Utan att använda privat anslutning kan du lägga till brandväggsregler som endast tillåter inkommande trafik från angivna IP-adressintervall. En annan metod är att ge Azure-tjänster åtkomst till servern. Den här metoden låser brandväggen så att endast trafik tillåts inifrån Azure. Men den här trafiken omfattar alla Azure-regioner och andra kunder.

Du kan också lägga till en mer restriktiv brandväggsregel så att endast appens utgående IP-adresser får åtkomst till databasen. Men dessa IP-adresser delas med flera App Services och tillåter trafik från andra kunder på samma distributionsstämpel, som använder samma utgående IP-adresser.

Med privat anslutning via det virtuella nätverket finns dessa brandväggsalternativ för att förhindra att andra kommer åt databasen:

  • Skapa en regel för virtuellt nätverk som endast tillåter trafik från det regionala undernätet som delegerats av VNet Integration, VNet Integration Subnet i det här exemplet. Det delegerade undernätet måste ha en tjänstslutpunkt konfigurerad för Microsoft.Sql så att databasen kan identifiera trafik från det undernätet.
  • Konfigurera brandväggen för att neka åtkomst till offentligt nätverk. Om du gör det inaktiveras alla andra brandväggsregler och databasen blir endast tillgänglig via den privata slutpunkten.

Alternativet att neka åtkomst till offentligt nätverk är den säkraste konfigurationen. Men om du använder det här alternativet är databasåtkomst endast möjlig via det virtuella nätverk som är värd för den privata slutpunkten. Om du vill ansluta till databasen måste allt annat än webbappen ha direkt anslutning till det virtuella nätverket.

Distributioner eller brådskande manuella anslutningar från SQL Server Management Studio (SSMS) på lokala datorer kan till exempel inte nå databasen förutom via VPN- eller ExpressRoute-anslutning till det virtuella nätverket. Du kan också fjärransluta till en virtuell dator i det virtuella nätverket och använda SSMS därifrån. I undantagsfall kan du tillfälligt tillåta åtkomst till offentliga nätverk och minska risken med hjälp av andra konfigurationsalternativ.

Brandväggsalternativ för lagringskonto och Key Vault

Lagringskonton och nyckelvalv har en offentlig slutpunkt som är tillgänglig från Internet. Du kan också skapa privata slutpunkter för ditt lagringskonto och nyckelvalv. Detta tilldelar dessa tjänster en privat IP-adress från ditt virtuella nätverk och hjälper till att skydda all trafik mellan ditt virtuella nätverk och respektive tjänst via en privat länk.

När du skapar en privat slutpunkt kan VNet Integration Subnet komma åt tjänsten privat och med förbättrad säkerhet via en privat länk. Men lagringskontot och nyckelvalvet är fortfarande tillgängliga från andra virtuella Azure-nätverk. Om du vill blockera åtkomst från andra virtuella nätverk skapar du tjänstslutpunkten för det här delegerade undernätet.

Tillgänglighet

Private Link-stöd för App Service, Azure SQL Database, Azure Storage och Azure Key Vault är tillgängligt i alla offentliga regioner. Information om hur du kontrollerar tillgängligheten i andra regioner finns i Azure Private Link-tillgänglighet.

Private Link introducerar en annan komponent och tillgänglighetsövervägande i arkitekturen. Private Link-tjänsten har ett serviceavtal med hög tillgänglighet. Du måste ta hänsyn till det här serviceavtalet när du beräknar det sammansatta serviceavtalet för hela lösningen.

Skalbarhet

Information om hur du integrerar Azure Private Link för PaaS-tjänster med Azure Privat DNS-zoner i nav- och ekernätverksarkitekturer finns i Private Link och DNS-integrering i stor skala.

Global peering

Alla tjänster i valfri Azure-region som kan ansluta via det virtuella nätverket kan nå PaaS-tjänsternas privata slutpunkter, till exempel via peering för virtuella nätverk i hubb- och ekertopologier. För regional VNet-integrering i App Service måste de peerkopplade virtuella nätverken dock finnas i samma Azure-region.

Brist på stöd för global peering innebär att du inte kan använda den här lösningen för anslutningar mellan regioner från App Service till en databas eller annan privat slutpunkt i en annan Azure-region. Den här lösningen skulle till exempel inte fungera för en multiregional distribution för att stödja en partiell redundansväxling, där webbappen förblir aktiv i en region men måste ansluta till en redundansväxlad databas i en annan region, eller tvärtom. Men det finns andra lösningar för den här situationen.

Om du behöver ansluta Web Apps till ett virtuellt nätverk i en annan region kan du konfigurera gateway-nödvändig VNet-integrering. Begränsningen är att gateway-nödvändig VNet-integrering inte kan användas med ett virtuellt nätverk som är anslutet till Azure ExpressRoute.

Loggning och övervakning

Azure Private Link är integrerat med Azure Monitor, vilket gör att du kan se om data flödar.

Du kan också använda tjänsten för anslutningsfelsökning i Azure Network Watcher för att spåra anslutningen från en virtuell dator i ett virtuellt nätverk till FQDN för den privata slutpunktsresursen.

Kostnadsoptimering

Kostnadsoptimering handlar om att titta på sätt att minska onödiga utgifter och förbättra drifteffektiviteten. Mer information finns i Översikt över kostnadsoptimeringspelare.

Det finns ingen extra kostnad för Regional VNet-integrering för App Service i prisnivåer som stöds i Basic-, Standard-, Premium v2-, Premium v3-, Isolerad v2 App Service- och Azure Functions Premium-abonnemang.

Privat slutpunkt är tillgänglig för Windows-webbappar och Linux-webbappar, containerbaserade eller inte, som finns i Basic-, Standard-, Premium v2-, Premium v3- och Isolated v2 App Service-abonnemang och även för funktionsappar som distribueras till en Premium-plan.

Azure Private Link-tjänsten som möjliggör privata slutpunkter för PaaS-tjänster har en associerad kostnad som baseras på en timavgift plus en premie för bandbredd. Mer information finns på prissättningssidan för Private Link. Anslutningar från ett virtuellt klientnätverk till Azure Firewall i det virtuella hubbnätverket debiteras. Du debiteras inte för anslutningar från Azure Firewall i det virtuella hubbnätverket till privata slutpunkter i ett peer-kopplat virtuellt nätverk.

Kostnaderna för Azure Privat DNS-zonen baseras på antalet DNS-zoner som finns i Azure och antalet mottagna DNS-frågor.

Information om kostnaden för att köra det här scenariot finns i priskalkylatorn för Azure. Alla tjänster som beskrivs i den här artikeln är förkonfigurerade med rimliga standardvärden för ett småskaligt program. Om du vill se hur prissättningen skulle ändras för ditt användningsfall ändrar du lämpliga variabler så att de matchar din förväntade användning.

Deltagare

Den här artikeln underhålls av Microsoft. Den skrevs ursprungligen av följande deltagare.

Huvudförfattare:

Om du vill se icke-offentliga LinkedIn-profiler loggar du in på LinkedIn.

Nästa steg