toegangsbeperkingen voor Azure-app service
Toegangsbeperkingen in App Service zijn gelijk aan een firewall, zodat u verkeer kunt blokkeren en filteren. Toegangsbeperkingen gelden alleen voor binnenkomende toegang. De meeste App Service-prijscategorieën hebben ook de mogelijkheid om privé-eindpunten toe te voegen aan de app. Dit is een ander toegangspunt voor de app. Toegangsbeperkingen zijn niet van toepassing op verkeer dat via een privé-eindpunt binnenkomt. Voor alle apps die worden gehost in App Service, is het standaardinvoerpunt openbaar beschikbaar. De enige uitzondering hierop zijn apps die worden gehost in ILB App Service Environment, waarbij het standaardinvoerpunt intern is voor het virtuele netwerk.
Hoe het werkt
Wanneer verkeer App Service bereikt, wordt eerst geëvalueerd of het verkeer afkomstig is van een privé-eindpunt of afkomstig is van het standaardeindpunt. Als het verkeer wordt verzonden via een privé-eindpunt, wordt het zonder beperkingen rechtstreeks naar de site verzonden. Beperkingen voor privé-eindpunten worden geconfigureerd met behulp van netwerkbeveiligingsgroepen.
Als u verkeer verzendt via het standaardeindpunt (vaak een openbaar eindpunt), wordt het verkeer eerst geëvalueerd op het toegangsniveau van de app. Hier kunt u de toegang in- of uitschakelen. Als u app-toegang inschakelt, wordt het verkeer geëvalueerd op sitetoegangsniveau. Voor elke app hebt u zowel de hoofdsite als de geavanceerde tools-site (ook wel scm- of kudu-site genoemd).
U kunt voor elke site een set toegangsbeperkingsregels configureren. Toegangsbeperkingsregels worden geëvalueerd in volgorde van prioriteit. Als sommige regels dezelfde prioriteit hebben, worden ze geëvalueerd in de volgorde waarin ze worden weergegeven wanneer ze worden geretourneerd vanuit de Azure Resource Manager-API en in Azure Portal voordat ze worden gesorteerd. U kunt ook het gedrag opgeven als er geen regels overeenkomen. In de volgende secties vindt u meer informatie.
App openen
Met app-toegang kunt u configureren of toegang beschikbaar is via het standaardeindpunt (openbaar). U configureert dit gedrag om dit te zijn Disabled
of Enabled
. Wanneer toegang is ingeschakeld, kunt u regels voor sitetoegangsbeperkingen toevoegen om de toegang te beheren vanuit bepaalde virtuele netwerken en IP-adressen.
Als de instelling niet is ingesteld (de eigenschap is null
), is het standaardgedrag om toegang in te schakelen, tenzij er een privé-eindpunt bestaat dat het gedrag wijzigt om de toegang uit te schakelen. Wanneer de eigenschap niet is ingesteld in Azure Portal, wordt het keuzerondje ook niet ingesteld en gebruikt u vervolgens het standaardgedrag.
In de Azure Resource Manager-API wordt de eigenschap voor het beheren van app-toegang aangeroepen publicNetworkAccess
. Voor ILB (Internal Load Balancer) App Service Environment is het standaardinvoerpunt voor apps altijd intern voor het virtuele netwerk. Het inschakelen van app-toegang (publicNetworkAccess
) verleent geen directe openbare toegang tot de apps. In plaats daarvan staat het toegang toe vanaf het standaardinvoerpunt, dat overeenkomt met het interne IP-adres van de App Service Environment. Als u app-toegang uitschakelt in een ILB App Service Environment, hebt u alleen toegang tot de apps via privé-eindpunten die zijn toegevoegd aan de afzonderlijke apps.
Notitie
Voor Linux-sites worden wijzigingen in de eigenschapstrigger-app publicNetworkAccess
opnieuw gestart.
Toegang tot de site
Met sitetoegangsbeperkingen kunt u de binnenkomende aanvragen filteren. Met sitetoegangsbeperkingen kunt u een lijst maken met regels voor toestaan en weigeren die in volgorde van prioriteit worden geëvalueerd. Het is vergelijkbaar met de netwerkbeveiligingsgroepfunctie (NSG) in Azure-netwerken.
Sitetoegangsbeperking heeft verschillende typen regels die u kunt toepassen:
Niet-overeenkomende regel
U kunt het gedrag configureren wanneer er geen regels overeenkomen (de standaardactie). Het is een speciale regel die altijd wordt weergegeven als de laatste regel van de regelsverzameling. Als de instelling niet is geconfigureerd, is het gedrag van niet-overeenkomende regels afhankelijk van geconfigureerde regels. Als er geen regels zijn, is het gedrag van niet-gerelateerde regels om alle toegang toe te staan, maar als een of meer regels bestaan, wordt impliciet gewijzigd om alle toegang te weigeren. U kunt dit gedrag expliciet configureren om toegang toe te staan of te weigeren, ongeacht gedefinieerde regels.
Regels voor toegangsbeperking op basis van IP
De functie toegangsbeperkingen op basis van IP helpt wanneer u de IP-adressen wilt beperken die kunnen worden gebruikt om uw app te bereiken. Zowel IPv4 als IPv6 worden ondersteund. Enkele gebruiksvoorbeelden voor deze functie:
- Beperk de toegang tot uw app vanaf een set goed gedefinieerde adressen.
- Beperk de toegang tot verkeer via een externe taakverdelingsservice of andere netwerkapparaten met bekende UITGAANDE IP-adressen.
Zie Toegangsbeperkingen configureren voor meer informatie over het inschakelen van deze functie.
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.
Toegangsbeperkingsregels op basis van service-eindpunten
Met service-eindpunten kunt u binnenkomende toegang tot uw app vergrendelen, zodat het bronadres afkomstig moet zijn van een set subnetten die u selecteert. Deze functie werkt samen met IP-toegangsbeperkingen. Service-eindpunten zijn niet compatibel met externe foutopsporing. Als u externe foutopsporing met uw app wilt gebruiken, kan uw client zich niet in een subnet bevinden waarvoor service-eindpunten zijn ingeschakeld. Het proces voor het instellen van service-eindpunten is vergelijkbaar met het proces voor het instellen van IP-toegangsbeperkingen. U kunt een acceptatie-/weigeringslijst maken met openbare adressen en subnetten in uw virtuele netwerken.
Notitie
Toegangsbeperkingsregels op basis van service-eindpunten worden niet ondersteund voor apps waarvoor een privé-eindpunt is geconfigureerd of apps die gebruikmaken van OP IP gebaseerde SSL (app-toegewezen adres).
Zie Azure-app Service-toegangsbeperkingen voor meer informatie over het configureren van service-eindpunten met uw app.
Elke bron voor service-eindpunten
Voor tests of in specifieke scenario's kunt u verkeer toestaan van elk subnet dat is ingeschakeld voor een service-eindpunt. U kunt dit doen door een op IP gebaseerde regel te definiëren met de tekst 'AnyVnets' in plaats van een IP-bereik. U kunt deze regels niet maken in de portal, maar u kunt een bestaande op IP gebaseerde regel wijzigen en het IP-adres vervangen door de tekenreeks AnyVnets.
Toegangsbeperkingsregels op basis van servicetags
Azure-servicetags zijn goed gedefinieerde sets IP-adressen voor Azure-services. Servicetags groeperen de IP-bereiken die worden gebruikt in verschillende Azure-services en worden vaak ook verder gericht op specifieke regio's. Met dit type regel kunt u binnenkomend verkeer van specifieke Azure-services filteren.
Ga naar de servicetagkoppeling voor een volledige lijst met tags en meer informatie.
Zie Toegangsbeperkingen configureren voor meer informatie over het inschakelen van deze functie.
Regels voor meerdere bronnen
Met regels voor meerdere bronnen kunt u maximaal acht IP-adresbereiken of acht servicetags in één regel combineren. U kunt regels voor meerdere bronnen gebruiken als u meer dan 512 IP-bereiken hebt. U kunt ook regels voor meerdere bronnen gebruiken 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 u regels met één bron definieert, maar met elk bereik gescheiden door komma's.
U kunt deze regels niet maken in de portal, maar u kunt een bestaande servicetag of ip-regel wijzigen en meer bronnen toevoegen aan de regel.
Http-headerfilters voor regels voor sitetoegangsbeperkingen
Voor elke regel, ongeacht het type, kunt u http-headerfilters toevoegen. Met http-headerfilters kunt u de binnenkomende aanvraag en het filter verder inspecteren op basis van specifieke http-headerwaarden. Elke header kan maximaal acht waarden per regel bevatten. Hieronder ziet u de ondersteunde HTTP-headers:
- X-Forwarded-For. Standaardheader voor het identificeren van het oorspronkelijke IP-adres van een client die verbinding maakt via een proxyserver. Accepteert geldige IP-adressen.
- X-Forwarded-Host. Standaardheader voor het identificeren van de oorspronkelijke host die door de client is aangevraagd. Accepteert een tekenreeks van maximaal 64 tekens.
- X-Azure-FDID. Aangepaste header voor het identificeren van het exemplaar van de omgekeerde proxy. Azure Front Door verzendt een GUID die het exemplaar identificeert, maar kan ook worden gebruikt voor niet-Microsoft-proxy's om het specifieke exemplaar te identificeren. Accepteert een tekenreeks van maximaal 64 tekens.
- X-FD-HealthProbe. Aangepaste header voor het identificeren van de statustest van de omgekeerde proxy. Azure Front Door verzendt '1' om een statustestaanvraag uniek te identificeren. De header kan ook worden gebruikt voor niet-Microsoft-proxy's om statustests te identificeren. Accepteert een tekenreeks van maximaal 64 tekens.
Enkele gebruiksvoorbeelden voor http-headerfilters zijn:
- Toegang tot verkeer beperken van proxyservers die de hostnaam doorsturen
- Toegang tot een specifiek Azure Front Door-exemplaar beperken met een servicetagregel en X-Azure-FDID-headerbeperking
Diagnostische logboeken
App Service kan verschillende categorieën voor logboekregistratie verzenden naar Azure Monitor. Een van deze categorieën wordt aangeroepen IPSecurity Audit logs
en vertegenwoordigt de activiteiten in toegangsbeperkingen. Alle aanvragen die overeenkomen met een regel (behalve de niet-overeenkomende regel), zowel toestaan als weigeren, worden geregistreerd en kunnen worden gebruikt om de configuratie van toegangsbeperkingen te valideren. De logboekregistratiefunctie is ook een krachtig hulpprogramma bij het oplossen van problemen met de configuratie van regels.
Geavanceerde gebruiksvoorbeelden
Door de bovenstaande functies te combineren, kunt u een aantal specifieke use cases oplossen die in de volgende secties worden beschreven.
Eén IP-adres blokkeren
Als u een of meer specifieke IP-adressen wilt weigeren/blokkeren, kunt u de IP-adressen toevoegen als regels voor weigeren en de niet-overeenkomende regel configureren om al het niet-overeenkomende verkeer toe te staan.
Toegang tot de site met geavanceerde hulpprogramma's beperken
De site met geavanceerde hulpprogramma's, ook wel bekend als scm of kudu, heeft een verzameling afzonderlijke regels die u kunt configureren. U kunt ook de niet-gerelateerde regel voor deze site configureren. Met een instelling kunt u de regels gebruiken die zijn geconfigureerd voor de hoofdsite. U kunt geen selectief toegang verlenen tot bepaalde geavanceerde sitefuncties van hulpprogramma's. U kunt bijvoorbeeld niet selectief toegang verlenen tot de WebJobs-beheerconsole op de site met geavanceerde hulpprogramma's.
Implementeren via een privé-eindpunt
Mogelijk hebt u een site die openbaar toegankelijk is, maar uw implementatiesysteem zich in een virtueel netwerk bevindt. U kunt het implementatieverkeer privé houden door een privé-eindpunt toe te voegen. Vervolgens moet u ervoor zorgen dat openbare app-toegang is ingeschakeld. Ten slotte moet u de niet-overeenkomende regel instellen voor de site met geavanceerde hulpprogramma's om te weigeren, waardoor al het openbare verkeer naar dat eindpunt wordt geblokkeerd.
Externe partnertoegang tot beveiligde privé-eindpuntsite toestaan
In dit scenario opent u uw site via een privé-eindpunt en implementeert u deze via een privé-eindpunt. U kunt tijdelijk een externe partner uitnodigen om de site te testen. U kunt dit doen door openbare app-toegang in te schakelen. Voeg een regel (op basis van IP) toe om de client van de partner te identificeren. Configureer de actie niet-gerelateerde regels om te weigeren voor zowel de hoofdsite als de geavanceerde hulpprogramma's.
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 met de naam X-Azure-FDID. U vindt de Front Door-id in de portal.
Volgende stappen
Notitie
Toegangsbeperkingsregels waarmee openbare toegang tot uw site wordt geblokkeerd, kunnen ook services zoals logboekstreaming blokkeren. Als u deze nodig hebt, moet u het IP-adres van uw App Service toestaan in uw beperkingen.