Toegangsbeperkingen voor Azure App Service instellen
Door toegangsbeperkingen in te stellen, kunt u een lijst met toestaan/weigeren met prioriteit definiëren waarmee de netwerktoegang tot uw app wordt beheerd. De lijst kan IP-adressen of Azure Virtual Network-subnetten bevatten. Wanneer er een of meer vermeldingen zijn, bestaat er een impliciete weigering aan het einde van de lijst. Ga naar het overzicht van toegangsbeperkingen voor meer informatie over toegangsbeperkingen.
De toegangsbeperking werkt met alle Azure App Service-gehoste workloads. De workloads kunnen web-apps, API-apps, Linux-apps, aangepaste Linux-containers en Functions omvatten.
Wanneer een aanvraag wordt ingediend bij uw app, wordt het FROM-adres geëvalueerd op basis van de regels in uw toegangsbeperkingslijst. Als het FROM-adres zich in een subnet bevindt dat is geconfigureerd met service-eindpunten voor Microsoft.Web, wordt het bronsubnet vergeleken met de regels voor virtuele netwerken in uw toegangsbeperkingslijst. Als het adres geen toegang heeft op basis van de regels in de lijst, antwoordt de service met een HTTP 403-statuscode .
De mogelijkheid voor toegangsbeperking wordt geïmplementeerd in de App Service front-endrollen, die upstream zijn van de werkhosts waar uw code wordt uitgevoerd. Daarom zijn toegangsbeperkingen in feite netwerktoegangsbeheerlijsten (ACL's).
De mogelijkheid de toegang tot uw web-app te beperken vanuit een virtueel Azure-netwerk wordt ingeschakeld via service-eindpunten. Met service-eindpunten kunt u de toegang beperken tot een service met meerdere tenants van geselecteerde subnetten. Het werkt niet om verkeer te beperken tot apps die worden gehost in een App Service Environment. Als u zich in een App Service Environment bevindt, kunt u de toegang tot uw app beheren door IP-adresregels toe te passen.
Notitie
De service-eindpunten moeten worden ingeschakeld aan de netwerkzijde en voor de Azure-service waarmee ze worden ingeschakeld. Zie Virtual Network service-eindpunten voor een lijst met Azure-services die service-eindpunten ondersteunen.
Toegangsbeperkingsregels beheren in de portal
Ga als volgt te werk om een regel voor toegangsbeperking toe te voegen aan uw app:
Meld u aan bij Azure Portal.
Selecteer de app waaraan u toegangsbeperkingen wilt toevoegen.
Selecteer Netwerken in het linkerdeelvenster.
Selecteer in het deelvenster Netwerken onder Toegangsbeperkingende optie Toegangsbeperkingen configureren.
Bekijk op de pagina Toegangsbeperkingen de lijst met toegangsbeperkingsregels die zijn gedefinieerd voor uw app.
In de lijst worden alle huidige beperkingen weergegeven die op de app worden toegepast. Als u een beperking voor het virtuele netwerk voor uw app hebt, wordt in de tabel weergegeven of de service-eindpunten zijn ingeschakeld voor Microsoft.Web. Als er geen beperkingen zijn gedefinieerd voor uw app, is de app overal toegankelijk.
Machtigingen
U moet ten minste de volgende machtigingen voor op rollen gebaseerd toegangsbeheer hebben op het subnet of op een hoger niveau om toegangsbeperkingen te configureren via Azure Portal, CLI of bij het rechtstreeks instellen van de siteconfiguratie-eigenschappen:
Actie | Beschrijving |
---|---|
Microsoft.Web/sites/config/read | Configuratie-instellingen voor web-apps ophalen |
Microsoft.Web/sites/config/write | De configuratie-instellingen van de web-app bijwerken |
Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action* | Hiermee wordt een resource, zoals een opslagaccount of SQL-database, gekoppeld aan een subnet |
Microsoft.Web/sites/write** | Web-app-instellingen bijwerken |
*alleen vereist bij het toevoegen van een regel voor een virtueel netwerk (service-eindpunt).
**alleen vereist als u toegangsbeperkingen bijwerkt via Azure Portal.
Als u een regel op basis van een service-eindpunt toevoegt en het virtuele netwerk zich in een ander abonnement bevindt dan de app, moet u ervoor zorgen dat het abonnement bij het virtuele netwerk is geregistreerd voor de resourceprovider Microsoft.Web. U kunt de provider expliciet registreren door deze documentatie te volgen, maar deze wordt ook automatisch geregistreerd wanneer u de eerste web-app in een abonnement maakt.
Een toegangsbeperkingsregel toevoegen
Als u een toegangsbeperkingsregel aan uw app wilt toevoegen, selecteert u regel toevoegen in het deelvenster Toegangsbeperkingen. Nadat u een regel hebt toegevoegd, wordt deze onmiddellijk van kracht.
Regels worden afgedwongen in volgorde van prioriteit, te beginnen met het laagste getal in de kolom Prioriteit . Een impliciete weigering is van kracht nadat u zelfs maar één regel hebt toegevoegd.
Ga in het deelvenster Toegangsbeperking toevoegen als volgt te werk wanneer u een regel maakt:
Selecteer onder Actie de optie Toestaan of Weigeren.
Voer desgewenst een naam en beschrijving van de regel in.
Voer in het vak Prioriteit een prioriteitswaarde in.
Selecteer in de vervolgkeuzelijst Type het type regel. De verschillende typen regels worden beschreven in de volgende secties.
Nadat u de regelspecifieke invoer hebt getypt, selecteert u Opslaan om de wijzigingen op te slaan.
Notitie
- Er geldt een limiet van 512 regels voor toegangsbeperking. Als u meer dan 512 toegangsbeperkingsregels nodig hebt, raden we u aan een zelfstandig beveiligingsproduct te installeren, zoals Azure Front Door, Azure-app Gateway of een alternatieve WAF.
Een regel op basis van IP-adressen instellen
Volg de procedure zoals beschreven in de vorige sectie, maar met de volgende toevoeging:
- Selecteer voor stap 4 in de vervolgkeuzelijst Typede optie IPv4 of IPv6.
Geef het IP-adresblok op in cidr-notatie (Classless Inter-Domain Routing) voor zowel het IPv4- als het IPv6-adres. Als u een adres wilt opgeven, kunt u iets als 1.2.3.4/32 gebruiken, waarbij de eerste vier octetten uw IP-adres vertegenwoordigen en /32 het masker is. De IPv4 CIDR-notatie voor alle adressen is 0.0.0.0/0. Zie Classless Inter-Domain Routing (Klasseloze Inter-Domain routering) voor meer informatie over CIDR-notatie.
Notitie
Op IP gebaseerde toegangsbeperkingsregels verwerken alleen adresbereiken van virtuele netwerken wanneer uw app zich in een App Service Environment bevindt. Als uw app zich in de service met meerdere tenants bevindt, moet u service-eindpunten gebruiken om verkeer te beperken tot geselecteerde subnetten in uw virtuele netwerk.
Een regel op basis van een service-eindpunt instellen
Selecteer voor stap 4 in de vervolgkeuzelijst Typede optie Virtual Network.
Geef de vervolgkeuzelijsten Abonnement, Virtual Network en Subnet op, die overeenkomen met wat u de toegang wilt beperken.
Door service-eindpunten te gebruiken, kunt u de toegang beperken tot geselecteerde subnetten van virtuele Azure-netwerken. Als service-eindpunten nog niet zijn ingeschakeld met Microsoft.Web voor het subnet dat u hebt geselecteerd, worden ze automatisch ingeschakeld, tenzij u het selectievakje Ontbrekende Microsoft.Web-service-eindpunten negeren inschakelt. Het scenario waarin u mogelijk service-eindpunten wilt inschakelen voor de app, maar niet voor het subnet, is voornamelijk afhankelijk van of u de machtigingen hebt om deze in te schakelen in het subnet.
Als u iemand anders nodig hebt om service-eindpunten in te schakelen in het subnet, schakelt u het selectievakje Ontbrekende Microsoft.Web-service-eindpunten negeren in. Uw app wordt geconfigureerd voor service-eindpunten in afwachting dat deze later op het subnet worden ingeschakeld.
U kunt service-eindpunten niet gebruiken om de toegang te beperken tot apps die worden uitgevoerd in een App Service Environment. Wanneer uw app zich in een App Service Environment bevindt, kunt u de toegang tot de app beheren door IP-toegangsregels toe te passen.
Met service-eindpunten kunt u uw app configureren met toepassingsgateways of andere WAF-apparaten (Web Application Firewall). U kunt ook toepassingen met meerdere lagen configureren met beveiligde back-ends. Zie Netwerkfuncties en App Service en Application Gateway integratie met service-eindpunten voor meer informatie.
Notitie
- Service-eindpunten worden momenteel niet ondersteund voor web-apps die gebruikmaken van TLS/SSL-bindingen op basis van IP met een virtueel IP-adres (VIP).
Een op servicetags gebaseerde regel instellen
Selecteer voor stap 4 in de vervolgkeuzelijst Typede optie Servicetag.
Alle beschikbare servicetags worden ondersteund in toegangsbeperkingsregels. Elke servicetag vertegenwoordigt een lijst met IP-bereiken van Azure-services. Een lijst met deze services en koppelingen naar de specifieke bereiken vindt u in de documentatie over servicetags. Gebruik Azure Resource Manager-sjablonen of scripts om geavanceerdere regels te configureren, zoals regionale regels.
Een regel bewerken
Als u een bestaande toegangsbeperkingsregel wilt bewerken, selecteert u op de pagina Toegangsbeperkingen de regel die u wilt bewerken.
Breng in het deelvenster Toegangsbeperking bewerken de gewenste wijzigingen aan en selecteer regel bijwerken.
Selecteer Opslaan om de wijzigingen op te slaan.
Notitie
Wanneer u een regel bewerkt, kunt u niet schakelen tussen regeltypen.
Een regel verwijderen
Als u een regel wilt verwijderen, controleert u op de pagina Toegangsbeperkingen de regel of regels die u wilt verwijderen en selecteert u verwijderen.
Selecteer Opslaan om de wijzigingen op te slaan.
Geavanceerde scenario's voor toegangsbeperking
In de volgende secties worden enkele geavanceerde scenario's beschreven met toegangsbeperkingen.
Filteren op HTTP-header
Als onderdeel van elke regel kunt u extra HTTP-headerfilters toevoegen. De volgende http-headernamen worden ondersteund:
- X-forwarded-for
- X-Forwarded-Host
- X-Azure-FDID
- X-FD-HealthProbe
Voor elke koptekstnaam kunt u maximaal acht waarden optellen, gescheiden door komma's. De http-headerfilters worden geëvalueerd na de regel zelf en beide voorwaarden moeten waar zijn om de regel toe te passen.
Regels voor meerdere bronnen
Met regels voor meerdere bronnen kunt u maximaal acht IP-adresbereiken of acht servicetags in één regel combineren. U kunt dit gebruiken als u meer dan 512 IP-bereiken hebt of als u logische regels wilt maken waarbij meerdere IP-bereiken worden gecombineerd met één HTTP-headerfilter.
Regels voor meerdere bronnen worden op dezelfde manier gedefinieerd als regels met één bron, maar met elk bereik gescheiden door komma's.
PowerShell voorbeeld:
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
Eén IP-adres blokkeren
Voor een scenario waarin u expliciet één IP-adres of een blok met IP-adressen wilt blokkeren, maar toegang tot al het andere wilt toestaan, voegt u een regel Weigeren toe voor het specifieke IP-adres en configureert u de actie Niet-overeenkomende regel op Toestaan.
Toegang tot een SCM-site beperken
Naast de mogelijkheid om de toegang tot uw app te beheren, kunt u de toegang beperken tot de SCM-site (Geavanceerd hulpprogramma) die door uw app wordt gebruikt. De SCM-site is zowel het eindpunt voor web-implementatie als de Kudu-console. U kunt toegangsbeperkingen aan de SCM-site afzonderlijk toewijzen vanuit de app of dezelfde set beperkingen gebruiken voor zowel de app als de SCM-site. Wanneer u het selectievakje Regels voor hoofdsite gebruiken inschakelt, wordt de lijst met regels verborgen en worden de regels van de hoofdsite gebruikt. Als u het selectievakje uitschakelt, worden de SCM-site-instellingen opnieuw weergegeven.
Toegang tot een specifiek Azure Front Door-exemplaar beperken
Verkeer van Azure Front Door naar uw toepassing is afkomstig van een bekende set IP-bereiken die zijn gedefinieerd in de servicetag AzureFrontDoor.Backend. Met behulp van een beperkingsregel voor servicetags kunt u verkeer beperken tot alleen afkomstig is van Azure Front Door. Om ervoor te zorgen dat verkeer alleen afkomstig is van uw specifieke exemplaar, moet u de binnenkomende aanvragen verder filteren op basis van de unieke HTTP-header die Azure Front Door verzendt.
PowerShell voorbeeld:
$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}
Toegangsbeperking programmatisch beheren
U kunt toegangsbeperking programmatisch beheren. Hieronder vindt u voorbeelden van het toevoegen van regels aan toegangsbeperkingen en het wijzigen van de actie Niet-gerelateerde regels voor zowel de hoofdsite als de geavanceerde toolsite.
Regels voor toegangsbeperkingen toevoegen voor de hoofdsite
U kunt programmatisch regels voor toegangsbeperkingen voor de hoofdsite toevoegen door een van de volgende opties te kiezen:
U kunt de volgende opdracht uitvoeren in de Cloud Shell. Ga naar deze pagina voor meer informatie over az webapp config access-restriction
de opdracht.
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
Regels voor toegangsbeperkingen toevoegen voor geavanceerde hulpprogrammasite
U kunt programmatisch regels voor toegangsbeperkingen toevoegen voor de geavanceerde hulpprogrammasite door een van de volgende opties te kiezen:
U kunt de volgende opdracht uitvoeren in de Cloud Shell. Ga naar deze pagina voor meer informatie over az webapp config access-restriction
de opdracht.
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
Niet-overeenkomende regelactie voor hoofdsite wijzigen
U kunt niet-gerelateerde regelactie voor hoofdsite programmatisch wijzigen door een van de volgende opties te kiezen:
U kunt de volgende opdracht uitvoeren in de Cloud Shell. Ga naar deze pagina voor meer informatie over az resource
de opdracht. Geaccepteerde waarden voor ipSecurityRestrictionsDefaultAction
zijn Allow
of Deny
.
az resource update --resource-group ResourceGroup --name AppName --resource-type "Microsoft.Web/sites" \
--set properties.siteConfig.ipSecurityRestrictionsDefaultAction=Allow
Niet-overeenkomende regelactie wijzigen voor geavanceerde hulpprogrammasite
U kunt de actie Niet-gerelateerde regel voor de site van het hulpprogramma Geavanceerd programmatisch wijzigen door een van de volgende opties te kiezen:
U kunt de volgende opdracht uitvoeren in de Cloud Shell. Ga naar deze pagina voor meer informatie over az resource
de opdracht. Geaccepteerde waarden voor scmIpSecurityRestrictionsDefaultAction
zijn Allow
of Deny
.
az resource update --resource-group ResourceGroup --name AppName --resource-type "Microsoft.Web/sites" \
--set properties.siteConfig.scmIpSecurityRestrictionsDefaultAction=Allow
Toegangsbeperkingen voor Azure Functions instellen
Toegangsbeperkingen zijn ook beschikbaar voor functie-apps met dezelfde functionaliteit als App Service abonnementen. Wanneer u toegangsbeperkingen inschakelt, schakelt u ook de Azure Portal code-editor uit voor niet-toegestane IP-adressen.
Volgende stappen
Toegangsbeperkingen voor Azure Functions
Application Gateway integratie met service-eindpunten
Scenario's voor geavanceerde toegangsbeperking in Azure App Service - blogbericht