Toegangsbeperkingen voor Azure App Service instellen
Notitie
Vanaf 1 juni 2024 kunnen nieuw gemaakte App Service-apps een unieke standaardhostnaam genereren die gebruikmaakt van de naamconventie <app-name>-<random-hash>.<region>.azurewebsites.net
. Bestaande app-namen blijven ongewijzigd. Voorbeeld:
myapp-ds27dh7271aah175.westus-01.azurewebsites.net
Zie Unieke standaardhostnaam voor App Service-resource voor meer informatie.
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 aan het einde van de lijst een impliciet weigeren. Zie Azure-app Service-toegangsbeperkingen voor meer informatie.
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 iemand een aanvraag indient 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 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, reageert de service met een HTTP 403-statuscode .
De toegangsbeperkingsmogelijkheid wordt geïmplementeerd in de front-endrollen van App Service, die upstream zijn van de werkrolhosts waarop uw code wordt uitgevoerd. Daarom zijn toegangsbeperkingen effectief lijsten voor netwerktoegangsbeheer.
De mogelijkheid om de toegang tot uw web-app vanuit een virtueel Azure-netwerk te beperken, maakt gebruik van 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 zowel aan de netwerkzijde als voor de Azure-service zijn ingeschakeld waarmee ze worden ingeschakeld. Zie Service-eindpunten voor virtueel netwerk voor een lijst met Azure-services die service-eindpunten ondersteunen.
Toegangsbeperkingsregels beheren in de portal
Ga als volgende te werk om een regel voor toegangsbeperking toe te voegen aan uw app:
Meld u aan bij het Azure-portaal.
Selecteer de app waaraan u toegangsbeperkingen wilt toevoegen.
Selecteer Instellingennetwerken> in het linkermenu.
Selecteer op de pagina Netwerken onder De configuratie van binnenkomend verkeer de instelling Openbare netwerktoegang .
Bekijk op de pagina Toegangsbeperkingen de lijst met regels voor toegangsbeperkingen 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 een virtueel netwerk in 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 en uw niet-gerelateerde regel niet is ingesteld op Weigeren, is de app vanaf elke locatie toegankelijk.
Machtigingen
De volgende machtigingen voor op rollen gebaseerd toegangsbeheer voor het subnet of op een hoger niveau zijn vereist voor het configureren van toegangsbeperkingen via Azure Portal, CLI of wanneer u de eigenschappen van de siteconfiguratie rechtstreeks instelt:
Actie | Beschrijving |
---|---|
Microsoft.Web/sites/config/read | Configuratie-instellingen voor web-apps ophalen |
Microsoft.Web/sites/config/write | Configuratie-instellingen van web-app bijwerken |
Microsoft.Network/virtualNetworks/subnetten/joinViaServiceEndpoint/action* | Koppelt resources, zoals opslagaccount of SQL-database, 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 met het virtuele netwerk is geregistreerd voor de Microsoft.Web
resourceprovider. U kunt de provider expliciet registreren, maar ook automatisch registreren wanneer u de eerste web-app in een abonnement maakt. Zie Resourceprovider registreren voor meer informatie.
Een regel voor toegangsbeperking toevoegen
Als u een toegangsbeperkingsregel wilt toevoegen aan uw app, selecteert u Toevoegen op de pagina Toegangsbeperkingen. De regel is pas van kracht nadat u deze hebt opgeslagen.
Regels worden afgedwongen in volgorde van prioriteit, van het laagste getal in de kolom Prioriteit . Als u niet-gerelateerde regels niet configureert, is impliciet weigeren alles van kracht nadat u zelfs één regel hebt toegevoegd.
Ga als volgt te werk in het deelvenster Toegangsbeperking toevoegen 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.
Selecteer Regel toevoegen nadat u de regelspecifieke invoer hebt getypt om de regel toe te voegen aan de lijst.
Selecteer Ten slotte Opslaan op de pagina Toegangsbeperkingen .
Notitie
Er geldt een limiet van 512 toegangsbeperkingsregels. Als u meer dan 512 toegangsbeperkingsregels nodig hebt, raden we u aan een zelfstandig beveiligingsproduct te overwegen. Overweeg 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:
- Voor stap 4 selecteert u in de vervolgkeuzelijst Type IPv4 of IPv6.
Geef het IP-adresblok op in CIDR-notatie (Classless Inter-Domain Routing) voor zowel de IPv4- als de IPv6-adressen. 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 voor meer informatie over CIDR-notatie.
Notitie
Ip-toegangsbeperkingsregels verwerken alleen adresbereiken van virtuele netwerken wanneer uw app zich in een App Service-omgeving bevindt. Als uw app zich in de multitenant-service bevindt, moet u service-eindpunten gebruiken om verkeer te beperken tot het selecteren van subnetten in uw virtuele netwerk.
Een regel op basis van een service-eindpunt instellen
Selecteer Virtual Network in stap 4 in de vervolgkeuzelijst Type.
Geef de vervolgkeuzelijsten Abonnement, Virtueel netwerk en Subnet op, die overeenkomen met wat u de toegang wilt beperken.
Met behulp van service-eindpunten kunt u de toegang tot geselecteerde subnetten van virtuele Azure-netwerken beperken. Als service-eindpunten nog niet zijn ingeschakeld Microsoft.Web
voor het subnet dat u selecteert, worden deze automatisch ingeschakeld, tenzij u Ontbrekende Microsoft.Web-service-eindpunten negeren selecteert. Het scenario waarin u service-eindpunten voor de app wilt inschakelen, maar niet het subnet, is voornamelijk afhankelijk van of u over de machtigingen beschikt om deze in te schakelen voor het subnet.
Als u iemand anders nodig hebt om service-eindpunten in te schakelen in het subnet, selecteert u Ontbrekende Microsoft.Web-service-eindpunten negeren. Uw app is geconfigureerd voor service-eindpunten in afwachting dat ze later in het subnet zijn ingeschakeld.
U kunt service-eindpunten niet gebruiken om de toegang te beperken tot apps die worden uitgevoerd in een App Service-omgeving. Wanneer uw app zich in een App Service-omgeving bevindt, kunt u de toegang tot de app beheren door IP-toegangsregels toe te passen.
Met service-eindpunten kunt u uw app configureren met application gateways of andere WAF-apparaten (Web Application Firewall). U kunt ook toepassingen met meerdere lagen configureren met beveiligde back-ends. Zie App Service-netwerkfuncties en Application Gateway-integratie voor meer informatie.
Notitie
Service-eindpunten worden niet ondersteund voor web-apps die gebruikmaken van TLS/SSL-bindingen op basis van IP met een virtueel IP-adres.
Een regel op basis van servicetags instellen
Selecteer voor stap 4 in de vervolgkeuzelijst Type de optie Servicetag.
Alle openbaar 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 scripting om geavanceerdere regels, zoals regionale regels, te configureren.
Notitie
Wanneer u regels op basis van servicetags maakt via Azure Portal of Azure CLI, hebt u leestoegang nodig op abonnementsniveau om de volledige lijst met servicetags voor selectie/validatie op te halen. Daarnaast moet de Microsoft.Network
resourceprovider worden geregistreerd voor het abonnement.
Een regel bewerken
Als u een bestaande toegangsbeperkingsregel wilt bewerken, selecteert u op de pagina Toegangsbeperkingen de regel die u wilt bewerken.
Breng uw wijzigingen aan in het deelvenster Toegangsbeperking bewerken en selecteer vervolgens Updateregel.
Als u de wijzigingen wilt opslaan, selecteert u Opslaan.
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 Vervolgens Verwijderen.
Als u de wijzigingen wilt opslaan, selecteert u Opslaan.
Geavanceerde scenario's voor toegangsbeperkingen
In de volgende secties worden enkele geavanceerde scenario's beschreven met behulp van toegangsbeperkingen.
Filteren op http-header
Als onderdeel van een regel kunt u http-headerfilters toevoegen. De volgende http-headernamen worden ondersteund:
- X-Doorgestuurd-voor
- X-Forwarded-Host
- X-Azure-FDID
- X-FD-HealthProbe
Voor elke headernaam 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. Gebruik regels voor meerdere bronnen als u meer dan 512 IP-bereiken hebt of logische regels wilt maken. Logische regels kunnen zijn waarbij meerdere IP-bereiken worden gecombineerd met één HTTP-headerfilter.
Regels voor meerdere bronnen worden op dezelfde manier gedefinieerd als u regels met één bron definieert, maar met elk bereik gescheiden door een komma.
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 IP-adressen wilt blokkeren, maar toegang tot alle andere adressen wilt toestaan, voegt u een regel voor weigeren toe voor het specifieke IP-adres. Configureer vervolgens de actie Niet-overeenkomende regel op Toestaan.
Toegang tot een SCM-site beperken
Naast het beheren van de toegang tot uw app, 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 toewijzen aan de SCM-site vanuit de app afzonderlijk of dezelfde set beperkingen gebruiken voor zowel de app als de SCM-site. Wanneer u Hoofdsiteregels gebruiken selecteert, wordt de lijst met regels verborgen. De SCM-site maakt gebruik van de regels van de hoofdsite. 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 AzureFrontDoor.Backend
servicetag. Met behulp van een regel voor servicetagbeperking kunt u beperken dat verkeer 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. In de volgende voorbeelden ziet u hoe u regels toevoegt aan toegangsbeperkingen en hoe u de actie Niet-gerelateerde regels voor zowel de hoofdsite als de geavanceerde toolsite kunt wijzigen.
Regels voor toegangsbeperkingen toevoegen voor de hoofdsite
U kunt regels voor toegangsbeperkingen voor de hoofdsite programmatisch toevoegen door een van de volgende opties te kiezen:
U kunt de volgende opdracht uitvoeren in Cloud Shell. Zie az webapp config access-restriction voor meer informatie over 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 een geavanceerde toolsite
U kunt regels voor toegangsbeperkingen voor de geavanceerde hulpprogrammasite programmatisch toevoegen door een van de volgende opties te kiezen:
U kunt de volgende opdracht uitvoeren in Cloud Shell. Zie az webapp config access-restriction voor meer informatie over 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-gerelateerde regelactie voor hoofdsite wijzigen
U kunt de actie Niet-gerelateerde regels voor de hoofdsite programmatisch wijzigen door een van de volgende opties te kiezen:
U kunt de volgende opdracht uitvoeren in Cloud Shell. Zie az resource voor meer informatie over de opdracht. Geaccepteerde waarden zijn ipSecurityRestrictionsDefaultAction
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 de geavanceerde toolsite
U kunt de actie Niet-gerelateerde regels voor de site van geavanceerde hulpprogramma's programmatisch wijzigen door een van de volgende opties te kiezen:
U kunt de volgende opdracht uitvoeren in Cloud Shell. Zie az resource voor meer informatie over de opdracht. Geaccepteerde waarden zijn scmIpSecurityRestrictionsDefaultAction
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 Code-editor van Azure Portal uit voor niet-toegestane IP-adressen.