Konfigurera åtkomstbegränsningar för Azure App Service
Kommentar
Från och med den 1 juni 2024 har alla nyligen skapade App Service-appar möjlighet att generera ett unikt standardvärdnamn med hjälp av namngivningskonventionen <app-name>-<random-hash>.<region>.azurewebsites.net
. Befintliga appnamn förblir oförändrade.
Exempel: myapp-ds27dh7271aah175.westus-01.azurewebsites.net
Mer information finns i Unikt standardvärdnamn för App Service-resurs.
Genom att konfigurera åtkomstbegränsningar kan du definiera en lista över tillåtna/nekade i prioritetsordning som styr nätverksåtkomsten till din app. Listan kan innehålla IP-adresser eller Azure Virtual Network-undernät. När det finns en eller flera poster finns en implicit neka alla i slutet av listan. Mer information om åtkomstbegränsningar finns i översikten över åtkomstbegränsningar.
Funktionen för åtkomstbegränsning fungerar med alla Azure App Service-värdbaserade arbetsbelastningar. Arbetsbelastningarna kan omfatta webbappar, API-appar, Linux-appar, anpassade Linux-containrar och Functions.
När en begäran görs till din app utvärderas FRÅN-adressen mot reglerna i listan över åtkomstbegränsningar. Om FROM-adressen finns i ett undernät som konfigurerats med tjänstslutpunkter till Microsoft.Web
jämförs källundernätet med reglerna för virtuella nätverk i listan över åtkomstbegränsningar. Om adressen inte tillåts åtkomst baserat på reglerna i listan svarar tjänsten med en HTTP 403-statuskod .
Funktionen för åtkomstbegränsning implementeras i App Service-klientdelsrollerna, som är uppströms arbetsvärdarna där koden körs. Åtkomstbegränsningar är därför i praktiken listor över nätverksåtkomstkontroll (ACL: er).
Möjligheten att begränsa åtkomsten till din webbapp från ett virtuellt Azure-nätverk använder tjänstslutpunkter. Med tjänstslutpunkter kan du begränsa åtkomsten till en tjänst för flera klientorganisationer från valda undernät. Det fungerar inte att begränsa trafik till appar som finns i en App Service-miljö. Om du befinner dig i en App Service-miljö kan du styra åtkomsten till din app genom att tillämpa IP-adressregler.
Kommentar
Tjänstslutpunkterna måste vara aktiverade både på nätverkssidan och för Den Azure-tjänst som de aktiveras med. En lista över Azure-tjänster som stöder tjänstslutpunkter finns i Tjänstslutpunkter för virtuellt nätverk.
Hantera regler för åtkomstbegränsning i portalen
Utför följande steg för att lägga till en regel för åtkomstbegränsning i din app:
Logga in på Azure-portalen.
Välj den app som du vill lägga till åtkomstbegränsningar i.
Välj Nätverk på den vänstra menyn.
På sidan Nätverk går du till Konfiguration av inkommande trafik och väljer inställningen Åtkomst till offentligt nätverk.
På sidan Åtkomstbegränsningar granskar du listan över åtkomstbegränsningsregler som har definierats för din app.
Listan visar alla aktuella begränsningar som tillämpas på appen. Om du har en begränsning för virtuellt nätverk i din app visas i tabellen om tjänstslutpunkterna är aktiverade för Microsoft.Web. Om inga begränsningar har definierats för din app och din omatchade regel inte är inställd på Neka är appen tillgänglig var som helst.
Behörigheter
Följande rollbaserade behörigheter för åtkomstkontroll i undernätet eller på en högre nivå krävs för att konfigurera åtkomstbegränsningar via Azure-portalen, CLI eller när du ställer in webbplatskonfigurationsegenskaperna direkt:
Åtgärd | beskrivning |
---|---|
Microsoft.Web/sites/config/read | Hämta konfigurationsinställningar för Web App |
Microsoft.Web/sites/config/write | Uppdatera konfigurationsinställningarna för webbappen |
Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action* | Ansluter resurser som lagringskonto eller SQL-databas till ett undernät |
Microsoft.Web/sites/write** | Uppdatera webbappsinställningar |
*krävs endast när du lägger till en regel för virtuellt nätverk (tjänstslutpunkt).
**krävs endast om du uppdaterar åtkomstbegränsningar via Azure-portalen.
Om du lägger till en tjänstslutpunktsbaserad regel och det virtuella nätverket finns i en annan prenumeration än appen måste du se till att prenumerationen med det virtuella nätverket är registrerad för Microsoft.Web
resursprovidern. Du kan uttryckligen registrera providern genom att följa den här dokumentationen, men även automatiskt registreras när du skapar den första webbappen i en prenumeration.
Lägga till en regel för åtkomstbegränsning
Om du vill lägga till en regel för åtkomstbegränsning i din app går du till sidan Åtkomstbegränsningar och väljer Lägg till. Regeln gäller endast när den har sparats.
Regler tillämpas i prioritetsordning, med början från det lägsta talet i kolumnen Prioritet . Om du inte konfigurerar en regel utan matchning gäller en implicit nekande när du har lagt till en enda regel.
Gör följande när du skapar en regel i fönstret Lägg till åtkomstbegränsning:
Under Åtgärd väljer du antingen Tillåt eller Neka.
Du kan också ange ett namn och en beskrivning av regeln.
I rutan Prioritet anger du ett prioritetsvärde.
I listrutan Typ väljer du typ av regel. De olika typerna av regler beskrivs i följande avsnitt.
Välj Lägg till regel när du har skrivit in regelspecifika indata för att lägga till regeln i listan.
Välj slutligen Spara igen på sidan Åtkomstbegränsningar .
Kommentar
- Det finns en gräns på 512 regler för åtkomstbegränsning. Om du behöver fler än 512 åtkomstbegränsningsregler rekommenderar vi att du installerar en fristående säkerhetsprodukt, till exempel Azure Front Door, Azure App Gateway eller en alternativ WAF.
Ange en IP-adressbaserad regel
Följ proceduren enligt beskrivningen i föregående avsnitt, men med följande tillägg:
- I listrutan Typ i steg 4 väljer du IPv4 eller IPv6.
Ange IP-adressblocket i CIDR-notationen (Classless Inter-Domain Routing) för både IPv4- och IPv6-adresserna. Om du vill ange en adress kan du använda ungefär 1.2.3.4/32, där de första fyra oktetterna representerar din IP-adress och /32 är masken. IPv4 CIDR-notationen för alla adresser är 0.0.0.0/0. Mer information om CIDR-notation finns i Klasslös routning mellan domäner.
Kommentar
IP-baserade regler för begränsning av åtkomst hanterar endast adressintervall för virtuella nätverk när din app finns i en App Service-miljö. Om din app finns i tjänsten för flera innehavare måste du använda tjänstslutpunkter för att begränsa trafiken för att välja undernät i det virtuella nätverket.
Ange en tjänstslutpunktsbaserad regel
I listrutan Typ i steg 4 väljer du Virtuellt nätverk.
Ange listrutorna Prenumeration, Virtuellt nätverk och Undernät som matchar det du vill begränsa åtkomsten till.
Genom att använda tjänstslutpunkter kan du begränsa åtkomsten till valda undernät för virtuella Azure-nätverk. Om tjänstslutpunkter inte redan är aktiverade med Microsoft.Web
för det undernät som du har valt aktiveras de automatiskt om du inte markerar kryssrutan Ignorera saknade Microsoft.Web
tjänstslutpunkter . Scenariot där du kanske vill aktivera tjänstslutpunkter i appen, men inte undernätet, beror främst på om du har behörighet att aktivera dem i undernätet.
Om du behöver någon annan för att aktivera tjänstslutpunkter i undernätet markerar du kryssrutan Ignorera saknade Microsoft.Web-tjänstslutpunkter . Appen är konfigurerad för tjänstslutpunkter i väntan på att de ska aktiveras senare i undernätet.
Du kan inte använda tjänstslutpunkter för att begränsa åtkomsten till appar som körs i en App Service-miljö. När din app finns i en App Service-miljö kan du styra åtkomsten till den genom att tillämpa IP-åtkomstregler.
Med tjänstslutpunkter kan du konfigurera din app med programgatewayer eller andra WAF-enheter (Web Application Firewall). Du kan också konfigurera program med flera nivåer med säkra serverdelar. Mer information finns i Nätverksfunktioner och App Service - och Application Gateway-integrering med tjänstslutpunkter.
Kommentar
- Tjänstslutpunkter stöds inte för webbappar som använder IP-baserade TLS/SSL-bindningar med en virtuell IP-adress (VIP).
Ange en tjänsttaggbaserad regel
I listrutan Typ i steg 4 väljer du Tjänsttagg.
Alla tillgängliga tjänsttaggar stöds i regler för åtkomstbegränsning. Varje tjänsttagg representerar en lista över IP-intervall från Azure-tjänster. En lista över dessa tjänster och länkar till de specifika intervallen finns i dokumentationen om tjänsttaggar. Använd Azure Resource Manager-mallar eller skript för att konfigurera mer avancerade regler som regionala omfångsregler.
Redigera en regel
Om du vill börja redigera en befintlig regel för åtkomstbegränsning går du till sidan Åtkomstbegränsningar och väljer den regel som du vill redigera.
I fönstret Redigera åtkomstbegränsning gör du dina ändringar och väljer sedan Uppdatera regel.
Välj Spara för att spara ändringarna.
Kommentar
När du redigerar en regel kan du inte växla mellan regeltyper.
Ta bort regel
Om du vill ta bort en regel går du till sidan Åtkomstbegränsningar , kontrollerar regeln eller reglerna som du vill ta bort och väljer sedan Ta bort.
Välj Spara för att spara ändringarna.
Avancerade scenarier för åtkomstbegränsning
I följande avsnitt beskrivs några avancerade scenarier med åtkomstbegränsningar.
Filtrera efter http-huvud
Som en del av en regel kan du lägga till http-rubrikfilter. Följande http-rubriknamn stöds:
- X-Forwarded-For
- X-vidarebefordrad värd
- X-Azure-FDID
- X-FD-HealthProbe
För varje rubriknamn kan du lägga till upp till åtta värden avgränsade med kommatecken. Http-huvudfiltren utvärderas efter själva regeln och båda villkoren måste vara sanna för att regeln ska gälla.
Regler för flera källor
Med regler med flera källor kan du kombinera upp till åtta IP-intervall eller åtta tjänsttaggar i en enda regel. Du använder regler för flera källor om du har fler än 512 IP-intervall eller om du vill skapa logiska regler. Logiska regler kan vara där flera IP-intervall kombineras med ett enda http-huvudfilter.
Regler med flera källor definieras på samma sätt som du definierar regler med en källa, men med varje intervall avgränsat med kommatecken.
PowerShell-exempel:
Add-AzWebAppAccessRestrictionRule -ResourceGroupName "ResourceGroup" -WebAppName "AppName" `
-Name "Multi-source rule" -IpAddress "192.168.1.0/24,192.168.10.0/24,192.168.100.0/24" `
-Priority 100 -Action Allow
Blockera en enskild IP-adress
För ett scenario där du uttryckligen vill blockera en enskild IP-adress eller ett block med IP-adresser, men tillåter åtkomst till allt annat, lägger du till en neka-regel för den specifika IP-adressen och konfigurerar den omatchade regelåtgärden till Tillåt.
Begränsa åtkomsten till en SCM-webbplats
Förutom att kunna styra åtkomsten till din app kan du begränsa åtkomsten till den SCM-webbplats (Avancerat verktyg) som används av din app. SCM-webbplatsen är både webbdistributionsslutpunkten och Kudu-konsolen. Du kan tilldela åtkomstbegränsningar till SCM-webbplatsen separat från appen eller använda samma uppsättning begränsningar för både appen och SCM-webbplatsen. När du markerar kryssrutan Använd huvudwebbplatsregler är regellistan dold och den använder reglerna från huvudwebbplatsen. Om du avmarkerar kryssrutan visas SCM-webbplatsinställningarna igen.
Begränsa åtkomsten till en specifik Azure Front Door-instans
Trafik från Azure Front Door till ditt program kommer från en välkänd uppsättning IP-intervall som definierats i AzureFrontDoor.Backend
tjänsttaggen. Med hjälp av en begränsningsregel för tjänsttaggar kan du begränsa trafik till att endast komma från Azure Front Door. För att säkerställa att trafiken bara kommer från din specifika instans måste du ytterligare filtrera inkommande begäranden baserat på det unika http-huvudet som Azure Front Door skickar.
PowerShell-exempel:
$afd = Get-AzFrontDoor -Name "MyFrontDoorInstanceName"
Add-AzWebAppAccessRestrictionRule -ResourceGroupName "ResourceGroup" -WebAppName "AppName" `
-Name "Front Door example rule" -Priority 100 -Action Allow -ServiceTag AzureFrontDoor.Backend `
-HttpHeader @{'x-azure-fdid' = $afd.FrontDoorId}
Hantera åtkomstbegränsning programmatiskt
Du kan hantera åtkomstbegränsningar programmatiskt. Nedan hittar du exempel på hur du lägger till regler för åtkomstbegränsningar och hur du ändrar regelåtgärden Ej matchad för både Huvudwebbplats och Avancerad verktygswebbplats.
Lägga till åtkomstbegränsningar för huvudwebbplatsen
Du kan lägga till regler för åtkomstbegränsningar för Main-webbplatsen programmatiskt genom att välja något av följande alternativ:
Du kan köra följande kommando i Cloud Shell. Mer information om az webapp config access-restriction
kommandot finns på den här sidan.
az webapp config access-restriction add --resource-group ResourceGroup --name AppName \
--rule-name 'IP example rule' --action Allow --ip-address 122.133.144.0/24 --priority 100
az webapp config access-restriction add --resource-group ResourceGroup --name AppName \
--rule-name "Azure Front Door example" --action Allow --priority 200 --service-tag AzureFrontDoor.Backend \
--http-header x-azure-fdid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Lägga till åtkomstbegränsningar för avancerad verktygswebbplats
Du kan lägga till åtkomstbegränsningar för avancerad verktygswebbplats programmatiskt genom att välja något av följande alternativ:
Du kan köra följande kommando i Cloud Shell. Mer information om az webapp config access-restriction
kommandot finns på den här sidan.
az webapp config access-restriction add --resource-group ResourceGroup --name AppName \
--rule-name 'IP example rule' --action Allow --ip-address 122.133.144.0/24 --priority 100 --scm-site true
Ändra matchningslös regelåtgärd för huvudwebbplatsen
Du kan ändra en regelåtgärd utan matchning för Main-webbplatsen programmatiskt genom att välja något av följande alternativ:
Du kan köra följande kommando i Cloud Shell. Mer information om az resource
kommandot finns på den här sidan. Godkända värden för ipSecurityRestrictionsDefaultAction
är Allow
eller Deny
.
az resource update --resource-group ResourceGroup --name AppName --resource-type "Microsoft.Web/sites" \
--set properties.siteConfig.ipSecurityRestrictionsDefaultAction=Allow
Ändra regelåtgärd utan matchning för avancerad verktygswebbplats
Du kan ändra regelåtgärden Ej matchad för avancerad verktygswebbplats programmatiskt genom att välja något av följande alternativ:
Du kan köra följande kommando i Cloud Shell. Mer information om az resource
kommandot finns på den här sidan. Godkända värden för scmIpSecurityRestrictionsDefaultAction
är Allow
eller Deny
.
az resource update --resource-group ResourceGroup --name AppName --resource-type "Microsoft.Web/sites" \
--set properties.siteConfig.scmIpSecurityRestrictionsDefaultAction=Allow
Konfigurera åtkomstbegränsningar för Azure Functions
Åtkomstbegränsningar är också tillgängliga för funktionsappar med samma funktioner som App Service-planer. När du aktiverar åtkomstbegränsningar inaktiverar du även Azure-portalens kodredigerare för otillåtna IP-adresser.
Nästa steg
Åtkomstbegränsningar för Azure Functions
Application Gateway-integrering med tjänstslutpunkter
Avancerade scenarier för begränsning av åtkomst i Azure App Service – blogginlägg