Konfigurera åtkomstbegränsningar för Azure App Service

Genom att konfigurera åtkomstbegränsningar kan du definiera en lista med prioritetsbeställda tillåt/neka 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 innehålla webbappar, API-appar, Linux-appar, anpassade Linux-containrar och Functions.

När en begäran görs till din app utvärderas FROM-adressen mot reglerna i listan över åtkomstbegränsningar. Om FROM-adressen finns i ett undernät som har 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 klientdelsroller, som ligger över 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 aktiveras av 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ön. Om du befinner dig i en App Service-miljön kan du styra åtkomsten till din app genom att tillämpa IP-adressregler.

Anteckning

Tjänstslutpunkterna måste vara aktiverade både på nätverkssidan och för den Azure-tjänst som de är aktiverade med. En lista över Azure-tjänster som stöder tjänstslutpunkter finns i Virtual Network tjänstslutpunkter.

Diagram över flödet av åtkomstbegränsningar.

Hantera regler för åtkomstbegränsning i portalen

Om du vill lägga till en regel för åtkomstbegränsning i din app gör du följande:

  1. Logga in på Azure-portalen.

  2. Välj den app som du vill lägga till åtkomstbegränsningar i.

  3. Välj Nätverk i den vänstra rutan.

  4. I fönstret Nätverk går du till Åtkomstbegränsningar och väljer Konfigurera åtkomstbegränsningar.

    Skärmbild av fönstret App Service nätverksalternativ i Azure Portal.

  5. På sidan Åtkomstbegränsningar granskar du listan över åtkomstbegränsningsregler som har definierats för din app.

    Skärmbild av sidan Åtkomstbegränsningar i Azure Portal, som visar listan över regler för åtkomstbegränsning som definierats för den valda appen.

    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 är appen tillgänglig var som helst.

Behörigheter

Du måste ha minst följande behörigheter för rollbaserad åtkomstkontroll i undernätet eller på en högre nivå för att konfigurera åtkomstbegränsningar via Azure Portal, CLI eller när du ställer in platskonfigurationsegenskaperna 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

*krävs endast när du lägger till en regel för virtuellt nätverk (tjänstslutpunkt).

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 den registreras också automatiskt 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 fönstret Åtkomstbegränsningar och väljer Lägg till regel. När du har lagt till en regel börjar den gälla omedelbart.

Regler tillämpas i prioritetsordning, med början från det lägsta talet i kolumnen Prioritet . En implicit neka alla gäller 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 :

  1. Under Åtgärd väljer du antingen Tillåt eller Neka.

    Skärmbild av fönstret Lägg till åtkomstbegränsning.

  2. Du kan också ange ett namn och en beskrivning av regeln.

  3. I rutan Prioritet anger du ett prioritetsvärde.

  4. I listrutan Typ väljer du regeltyp. De olika typerna av regler beskrivs i följande avsnitt.

  5. När du har skrivit in regelspecifika indata väljer du Spara för att spara ändringarna.

Anteckning

  • Det finns en gräns på 512 regler för åtkomstbegränsning. Om du behöver fler än 512 regler för åtkomstbegränsning 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-notation (Classless Inter-Domain Routing) för både IPv4- och IPv6-adresserna. Om du vill ange en adress kan du använda något som 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 Inter-Domain routning.

Anteckning

IP-baserade regler för åtkomstbegränsning hanterar endast adressintervall för virtuella nätverk när din app finns i en App Service-miljön. 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 ditt virtuella nätverk.

Ange en tjänstslutpunktsbaserad regel

  • I listrutan Typ i steg 4 väljer du Virtual Network.

    Skärmbild av fönstret Lägg till begränsning med den Virtual Network typen markerad.

Ange listrutorna Prenumeration, Virtual Network 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 för 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 konfigureras 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. När din app är i en App Service-miljön 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 flernivåprogram med säkra serverdelar. Mer information finns i Nätverksfunktioner och App Service och Application Gateway integrering med tjänstslutpunkter.

Anteckning

  • Tjänstslutpunkter stöds för närvarande inte för webbappar som använder IP-baserade TLS/SSL-bindningar med en virtuell IP (VIP).

Ange en tjänsttaggbaserad regel

  • I listrutan Typ i steg 4 väljer du Tjänsttagg.

    Skärmbild av fönstret Lägg till begränsning med servicetaggtypen markerad.

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

  1. 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.

  2. I fönstret Redigera åtkomstbegränsning gör du dina ändringar och väljer sedan Uppdatera regel.

  3. Välj Spara för att spara ändringarna.

    Skärmbild av fönstret Redigera åtkomstbegränsning i Azure Portal, som visar fälten för en befintlig regel för åtkomstbegränsning.

    Anteckning

    När du redigerar en regel kan du inte växla mellan regeltyper.

Ta bort en regel

  1. 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.

  2. Spara ändringarna genom att välja Spara .

Skärmbild av sidan Åtkomstbegränsningar som visar ellipsen Ta bort bredvid regeln för åtkomstbegränsning som ska tas bort.

Avancerade scenarier för åtkomstbegränsningar

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 ytterligare http-huvudfilter. Följande http-huvudnamn stöds:

  • X-vidarebefordrad-för
  • 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 kan använda detta om du har fler än 512 IP-intervall eller om du vill skapa logiska regler 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 enda 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åta å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.

Skärmbild av sidan Åtkomstbegränsningar i Azure Portal med en enda blockerad IP-adress.

Begränsa åtkomsten till en SCM-webbplats

Förutom att kunna styra åtkomsten till din app kan du begränsa åtkomsten till SCM-webbplatsen (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 från appen separat eller använda samma uppsättning begränsningar för både appen och SCM-webbplatsen. När du markerar kryssrutan Använd huvudwebbplatsregler döljs regellistan och reglerna från huvudwebbplatsen används. Om du avmarkerar kryssrutan visas inställningarna för SCM-webbplatsen igen.

Skärmbild av sidan Åtkomstbegränsningar i Azure Portal som visar att inga åtkomstbegränsningar har angetts för SCM-webbplatsen eller appen.

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 tjänsttaggen AzureFrontDoor.Backend. 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.

Skärmbild av sidan Åtkomstbegränsningar i Azure Portal som visar hur du lägger till Azure Front Door-begränsning.

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 Omatchad för både Huvudwebbplats och Avancerad verktygswebbplats.

Lägga till regler för å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 regler för åtkomstbegränsningar för avancerad verktygswebbplats

Du kan lägga till åtkomstbegränsningar för avancerade verktygswebbplatser 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 omatchad regelåtgärd för huvudwebbplatsen

Du kan ändra regelåtgärden Omatchad för Main-platsen 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 omatchad regelåtgärd för avancerad verktygswebbplats

Du kan ändra regelåtgärden Omatchad 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 Azure Functions åtkomstbegränsningar

Å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 Portal kodredigeraren för otillåtna IP-adresser.

Nästa steg

Åtkomstbegränsningar för Azure Functions
Application Gateway integrering med tjänstslutpunkter
Scenarier för avancerad åtkomstbegränsning i Azure App Service – blogginlägg