Toegangsbeperkingen voor Azure App Service instellen
Notitie
Vanaf 1 juni 2024 hebben alle nieuw gemaakte App Service-apps de mogelijkheid om een unieke standaardhostnaam te genereren met behulp van de naamconventie <app-name>-<random-hash>.<region>.azurewebsites.net
. Bestaande app-namen blijven ongewijzigd.
Voorbeeld: myapp-ds27dh7271aah175.westus-01.azurewebsites.net
Raadpleeg de 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. 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 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 netwerktoegangsbeheerlijsten (ACL's).
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
Voer de volgende stappen uit om een toegangsbeperkingsregel toe te voegen aan uw app:
Meld u aan bij het Azure-portaal.
Selecteer de app waaraan u toegangsbeperkingen wilt toevoegen.
Selecteer Netwerken 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 op rollen gebaseerde toegangsbeheermachtigingen voor het subnet of op een hoger niveau zijn vereist voor het configureren van toegangsbeperkingen 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 | 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 door deze documentatie te volgen, maar ook automatisch geregistreerd bij het maken van de eerste web-app in een abonnement.
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 na het opslaan.
Regels worden afgedwongen in volgorde van prioriteit, te beginnen met 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 om 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:
- 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 service voor meerdere tenants 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 de vervolgkeuzelijst Type voor stap 4.
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 geselecteerde subnet, worden deze automatisch ingeschakeld, tenzij u het selectievakje Ontbrekende Microsoft.Web
service-eindpunten negeren inschakelt. 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, schakelt u het selectievakje Ontbrekende Microsoft.Web-service-eindpunten negeren in. 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 Netwerkfuncties en Integratie van App Service en Application Gateway met service-eindpunten 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(VIP).
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. U gebruikt 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 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 IP-adressen wilt blokkeren, maar toegang tot alle andere adressen wilt toestaan, voegt u een regel weigeren toe voor het specifieke IP-adres en configureert u de actie niet-overeenkomende regel om toe te staan.
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 het selectievakje Hoofdsiteregels 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 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. 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 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. 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 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. 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-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. Ga naar deze pagina voor meer informatie over az resource
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. Ga naar deze pagina voor meer informatie over az resource
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.
Volgende stappen
Toegangsbeperkingen voor Azure Functions
Application Gateway-integratie met service-eindpunten
Geavanceerde scenario's voor toegangsbeperking in Azure-app Service - blogbericht