Konfigurera åtkomstbegränsningar för Azure App Service

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.Webjä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.

Diagram of the flow of access restrictions.

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:

  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 på den vänstra menyn.

  4. På sidan Nätverk går du till Konfiguration av inkommande trafik och väljer inställningen Åtkomst till offentligt nätverk.

    Screenshot of the App Service networking options page in the Azure portal.

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

    Screenshot of the Access Restrictions page in the Azure portal, showing the list of access restriction rules defined for the selected 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:

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

    Screenshot of the 'Add Access Restriction' pane.

  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 typ av regel. De olika typerna av regler beskrivs i följande avsnitt.

  5. 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 å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 det virtuella nätverket.

Ange en tjänstslutpunktsbaserad regel

  • I listrutan Typ i steg 4 väljer du Virtuellt nätverk.

    Screenshot of the 'Add Restriction' pane with the Virtual Network type selected.

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. När din app finns 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 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.

    Screenshot of the 'Add Restriction' pane with the Service Tag type selected.

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.

    Screenshot of the 'Edit Access Restriction' pane in the Azure portal, showing the fields for an existing access restriction rule.

    Kommentar

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

Ta bort 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. Välj Spara för att spara ändringarna.

Screenshot of the 'Access Restrictions' page, showing the 'Remove' ellipsis next to the access restriction rule to be deleted.

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.

Screenshot of the 'Access Restrictions' page in the Azure portal, showing a single blocked IP address.

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.

Screenshot of the 'Access Restrictions' page in the Azure portal, showing that no access restrictions are set for the SCM site or the app.

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.

Screenshot of the 'Access Restrictions' page in the Azure portal, showing how to add Azure Front Door restriction.

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