Bewerken

Delen via


Verbeterde beveiligingstoegang tot App Service-web-apps vanuit een on-premises netwerk

Azure App Service
Azure Virtual Network
Azure Private Link
Azure Key Vault
Azure Storage Accounts

In dit artikel wordt beschreven hoe u een verbeterde privéverbinding met beveiliging instelt op een App Service-web-app of een functie-app vanuit een on-premises netwerk of vanuit een virtueel Azure-netwerk. Ook ziet u hoe u verbeterde beveiliging kunt instellen tussen de app en andere Azure PaaS-services via Azure Private Link, zonder het openbare internet te gebruiken.

In dit artikel verwijst Azure-app Service naar de prijscategorieën waarin er een gedeelde infrastructuur is met andere App Service-klanten, zoals Basic, Standard en de Premium-lagen. App Service Environment wordt rechtstreeks in uw virtuele netwerk geïmplementeerd met toegewezen ondersteunende infrastructuur en maakt gebruik van geïsoleerde prijscategorieën en is niet de focus van dit artikel.

Architectuur

Diagram met de referentiearchitectuur voor beveiligde toegang tot web-apps met meerdere tenants vanuit een on-premises netwerk.

Een Visio-bestand van deze architectuur downloaden.

Gegevensstroom

  • Met behulp van Azure-app service regionale virtuele netwerkintegratie maakt de web-app verbinding met Azure-services via gedelegeerd subnet-VNet-integratiesubnet in een virtueel Azure-netwerk.

    • Het subnet voor VNet-integratie en subnetnetwerken met privé-eindpunten zijn afzonderlijke virtuele netwerken in verschillende abonnementen. Beide netwerken zijn gekoppeld aan Hub Virtual Network als onderdeel van een hub-and-spoke-netwerkconfiguratie. Voor regionale integratie van virtuele netwerken moeten de gekoppelde virtuele netwerken zich in dezelfde Azure-regio bevinden.
  • De Azure Private Link-service stelt een privé-eindpunt in voor de PaaS-services, web-apps, Azure SQL-database, Azure-opslagaccount en Azure-sleutelkluis in Virtual Network voor privé-eindpunten.

    In dit voorbeeld is dit virtuele netwerk alleen toegewezen voor de implementatie van privé-eindpunten. Er worden geen andere resources, zoals virtuele machines (VM's), geïmplementeerd in dit virtuele netwerk. Bij het selecteren van de subnetgrootte werd rekening gehouden met de toekomstige vraag om privé-eindpunten toe te voegen.

  • Het on-premises netwerk en virtuele Azure-netwerken kunnen worden verbonden via site-naar-site-VPN (S2S) of privépeering van Azure ExpressRoute. Gebruikers in het on-premises netwerk hebben alleen privé toegang tot de app en met verbeterde beveiliging via het privénetwerk.

    In dit voorbeeld zijn het on-premises netwerk en virtuele Azure-netwerken verbonden via persoonlijke ExpressRoute-peering.

  • Voor een on-premises netwerk dat al een DNS-oplossing (Domain Name System) heeft, is de on-premises DNS-oplossing geconfigureerd voor het doorsturen van DNS-verkeer naar een privé-DNS-record van Azure (bijvoorbeeld azurewebsites.net) via een voorwaardelijke doorstuurserver die de aanvraag doorstuurt naar het binnenkomende eindpunt van de DNS Private Resolver-service dat is geïmplementeerd in Azure. Dns Private Resolver voert query's uit op Azure DNS en ontvangt informatie over de azure Privé-DNS virtuele netwerkkoppeling. Vervolgens wordt de omzetting uitgevoerd door de privé-DNS-zone die is gekoppeld aan het virtuele netwerk.

    Privé-DNS zones worden ook geïmplementeerd in hetzelfde abonnement als Privé-eindpunt virtueel netwerk.

    In dit voorbeeld stuurt een DNS-doorstuurmachine op IP-adres 192.168.0.254 in het on-premises netwerk alle DNS-omzettingsaanvragen door naar de hostnaam azurewebsites.net naar het binnenkomende eindpunt van de DNS Private Resolver-service in Azure op adres 10.0.0.132. Vervolgens worden de aanvragen omgezet door de door Azure geleverde DNS-service, met IP-adres 168.63.129.16, via de Azure Privé-DNS-zone die is gekoppeld aan het virtuele netwerk.

    Een uitgaand eindpunt is vereist om naamomzetting van voorwaardelijke doorsturen vanuit Azure in te schakelen naar on-premises, andere cloudproviders of externe DNS-servers, met behulp van een regelset voor dns-doorsturen.

    Het configureren van een dns-regelset voor doorsturen is niet vereist voor dit scenario.

    Deze app-serviceconfiguratie moet aanwezig zijn:

    Sleutel Weergegeven als
    WEBSITE_DNS_SERVER 168.63.129.16
  • Virtuele netwerken zijn gekoppeld aan alle privé-DNS-zones van Azure.

    • Het virtuele netwerk met privé-eindpunten wordt automatisch gekoppeld aan de privé-DNS-zones. U moet de andere virtuele netwerken afzonderlijk koppelen.
  • De web-app communiceert met de privé-eindpunten van de PaaS-services in een virtueel privé-eindpuntnetwerk via Azure Firewall.

  • In Azure Firewall worden de toepassingsregels geconfigureerd om communicatie tussen VNet Integration Subnet en de privé-eindpunten van PaaS-resources mogelijk te maken. De FQDN's (Fully Qualified Domain Names) van het doel zijn:

    • *.azurewebsites.net
    • *.database.windows.net
    • *.core.windows.net
    • *.vaultcore.azure.net
  • Firewall- en virtuele netwerkconfiguratie voor Azure SQL, Azure Storage-account en Azure Key Vault staat verkeer alleen toe vanuit het VNet Integration Subnet. De configuratie staat geen communicatie met een ander virtueel netwerk of met het openbare internet toe.

Onderdelen

  • Azure-app Service host webtoepassingen en functie-apps, waardoor automatisch schalen en hoge beschikbaarheid mogelijk zijn zonder dat u de infrastructuur hoeft te beheren.
  • Azure SQL Database is een beheerde service voor algemene relationele databases die ondersteuning biedt voor relationele gegevens, ruimtelijke gegevens, JSON en XML.
  • Azure Storage-account biedt een unieke naamruimte voor Azure Storage-gegevens die overal ter wereld toegankelijk zijn via HTTP of HTTPS. Het bevat alle Azure Storage-gegevensobjecten: blobs, bestandsshares, wachtrijen, tabellen en schijven.
  • Azure Key Vault is een service voor het veilig opslaan en openen van API-sleutels, wachtwoorden, certificaten, cryptografische sleutels of andere geheimen die worden gebruikt door cloud-apps en -services.
  • Azure Virtual Network is de fundamentele bouwsteen voor privénetwerken in Azure. Azure-resources zoals VM's kunnen veilig communiceren met elkaar, internet en on-premises netwerken via virtuele netwerken.
  • Azure Private Link biedt een privé-eindpunt in een virtueel netwerk voor connectiviteit met Azure PaaS-services, zoals Azure Storage en SQL Database, of voor klant- of partnerservices.
  • Persoonlijke Azure ExpressRoute-peering breidt on-premises netwerken uit naar de Microsoft-cloud via een privéverbinding. U kunt ook site-naar-site-VPN instellen tussen on-premises en het Azure-netwerk in plaats van Azure ExpressRoute te gebruiken.
  • Azure Firewall is een beheerde, cloudgebaseerde netwerkbeveiligingsservice waarmee u Azure Virtual Network-resources kunt beveiligen.
  • Privé-DNS Zone biedt een betrouwbare en beveiligde DNS-service voor het beheren en omzetten van domeinnamen in het virtuele netwerk.
  • Dns Private Resolver maakt het uitvoeren van query's op Azure DNS-privézones vanuit een on-premises omgeving mogelijk, en vice versa, zonder dat OP VM's gebaseerde DNS-servers worden geïmplementeerd.

Alternatieven

Voor privéconnectiviteit is een alternatieve methode het gebruik van App Service Environment voor het hosten van de webtoepassing in een geïsoleerde omgeving. App Service Environment vermijdt gedeelde hostinginfrastructuur tussen App Service-klanten. Voor de database kunt u systeemeigen Azure SQL Managed Instance implementeren in een virtueel netwerk, zodat u geen virtuele netwerkintegratie of privé-eindpunten nodig hebt. Deze aanbiedingen zijn doorgaans duurder omdat ze geïsoleerde implementaties met één tenant en andere functies bieden.

Als u een App Service-omgeving hebt maar geen SQL Managed Instance gebruikt, kunt u nog steeds een privé-eindpunt gebruiken voor privéconnectiviteit met een Azure SQL-database. Als u al SQL Managed Instance hebt maar een App Service gebruikt, kunt u nog steeds regionale VNet-integratie gebruiken om verbinding te maken met het privéadres van sql Managed Instance.

Voor sommige andere Azure-services, zoals Key Vault of Storage, is er geen alternatief voor het gebruik van privé-eindpunten voor zeer veilige en privéverbindingen vanuit Web Apps.

Potentiële gebruikscases

  • Toegang tot een App Service-web-app of functie-app privé met verbeterde beveiliging via het privé-eindpunt van een on-premises netwerk of vanuit virtuele Azure-netwerken.
  • Verbinding maken vanuit een web-app of functie-app met PaaS-aanbiedingen (Platform as a Service) van Azure:
    • Een andere web-app
    • SQL Database
    • Azure Storage
    • Key Vault
    • Elke andere service die ondersteuning biedt voor privé-eindpunten van Azure voor binnenkomende connectiviteit

Overwegingen

Met deze overwegingen worden de pijlers van het Azure Well-Architected Framework geïmplementeerd. Dit is een set richtlijnen die kunnen worden gebruikt om de kwaliteit van een workload te verbeteren. Zie Microsoft Azure Well-Architected Framework voor meer informatie.

Beveiliging

Beveiliging biedt garanties tegen opzettelijke aanvallen en misbruik van uw waardevolle gegevens en systemen. Zie Overzicht van de beveiligingspijler voor meer informatie.

Als u een privé-eindpunt gebruikt voor uw web-app, kunt u het volgende doen:

  • Beveilig uw web-app door het privé-eindpunt te configureren, waardoor openbare blootstelling wordt geëlimineerd.
  • Maak verbinding met verbeterde beveiliging met Web Apps vanuit on-premises netwerken die verbinding maken met het virtuele netwerk met behulp van een VPN- of ExpressRoute-privépeering. Binnenkomende verbindingen met de web-app zijn alleen toegestaan vanuit het on-premises netwerk of vanuit het virtuele Azure-netwerk.
  • Vermijd gegevensexfiltratie vanuit uw virtuele netwerk.

U kunt de beveiliging van de binnenkomende verbinding met de web-app verder verbeteren door de app te verbinden met een service zoals Azure-toepassing Gateway of Azure Front Door, optioneel met Azure Web Application Firewall. Wanneer u een privé-eindpunt voor uw web-app inschakelt, wordt de configuratie van de toegangsbeperkingen van de web-app niet geëvalueerd.

Dit scenario verbetert ook de beveiliging van de uitgaande verbinding van een App Service-web-app naar een downstreamafhankelijkheid, zoals een database, Opslag of Key Vault.

U kunt toepassingsroutering configureren om al het verkeer of alleen privéverkeer (ook wel RFC1918 verkeer genoemd) te routeren naar uw virtuele netwerk. U configureert dit gedrag met behulp van de instelling Alles routeren. Als Alles routeren is uitgeschakeld, routeert de web-app alleen privéverkeer naar uw virtuele netwerk. Als u verkeer naar openbare adressen wilt blokkeren, schakelt u de instelling Alles routeren naar het virtuele netwerk in. U kunt ook een netwerkbeveiligingsgroep gebruiken om uitgaand verkeer naar resources in uw virtuele netwerk of internet te blokkeren. Als Route All niet is ingeschakeld, worden NSG's alleen toegepast op RFC1918 verkeer.

In dit voorbeeld hoeft de web-app niet te communiceren met een service die zich niet in het virtuele netwerk bevindt, dus Route All is ingeschakeld.

Een belangrijke beveiligingsoverweging in dit scenario is de configuratie van de firewall voor PaaS-resources.

Firewallopties voor SQL Database

Zonder persoonlijke connectiviteit kunt u firewallregels toevoegen waarmee binnenkomend verkeer van opgegeven IP-adresbereiken alleen is toegestaan. Een andere benadering is om Azure-services toegang te geven tot de server. Met deze methode wordt de firewall vergrendeld om alleen verkeer vanuit Azure toe te staan. Dit verkeer omvat echter alle Azure-regio's en andere klanten.

U kunt ook een meer beperkende firewallregel toevoegen om alleen de uitgaande IP-adressen van uw app toegang te geven tot de database. Deze IP-adressen worden echter gedeeld met meerdere App Services en staan verkeer van andere klanten toe op hetzelfde implementatiestempel, dat gebruikmaakt van dezelfde uitgaande IP-adressen.

Het gebruik van privéconnectiviteit via het virtuele netwerk biedt deze firewallopties om te voorkomen dat anderen toegang hebben tot de database:

  • Maak een regel voor een virtueel netwerk die alleen verkeer toestaat van het regionale subnet dat is gedelegeerd door VNet-integratie, VNet-integratiesubnet in dit voorbeeld. Het gedelegeerde subnet moet een service-eindpunt hebben geconfigureerd voor Microsoft.Sql , zodat de database verkeer van dat subnet kan identificeren.
  • Configureer de firewall om openbare netwerktoegang te weigeren. Als u dit doet, worden alle andere firewallregels uitgeschakeld en is de database alleen toegankelijk via het privé-eindpunt.

De optie voor het weigeren van openbare netwerktoegang is de veiligste configuratie. Maar als u deze optie gebruikt, is databasetoegang alleen mogelijk via het virtuele netwerk dat als host fungeert voor het privé-eindpunt. Als u verbinding wilt maken met de database, moet alles anders dan de web-app directe verbinding hebben met het virtuele netwerk.

Implementaties of urgente handmatige verbindingen vanuit SQL Server Management Studio (SSMS) op lokale machines kunnen de database bijvoorbeeld niet bereiken, behalve via VPN- of ExpressRoute-connectiviteit in het virtuele netwerk. U kunt ook extern verbinding maken met een virtuele machine in het virtuele netwerk en daar SSMS gebruiken. In uitzonderlijke situaties kunt u tijdelijk openbare netwerktoegang toestaan en risico's beperken met behulp van andere configuratieopties.

Firewallopties voor opslagaccounts en Key Vault

Opslagaccounts en sleutelkluizen hebben een openbaar eindpunt dat toegankelijk is vanaf internet. U kunt ook privé-eindpunten maken voor uw opslagaccount en sleutelkluis. Hiermee wijst u deze services een privé-IP-adres toe vanuit uw virtuele netwerk en helpt u al het verkeer tussen uw virtuele netwerk en de betreffende service te beveiligen via een privékoppeling.

Wanneer u een privé-eindpunt maakt, heeft VNet Integration Subnet privé toegang tot de service en met verbeterde beveiliging via een privékoppeling. Maar het opslagaccount en de sleutelkluis zijn nog steeds toegankelijk vanuit andere virtuele Azure-netwerken. Als u de toegang vanuit een ander virtueel netwerk wilt blokkeren, maakt u het service-eindpunt voor dit gedelegeerde subnet.

Beschikbaarheid

Ondersteuning voor Private Link voor App Service, Azure SQL Database, Azure Storage en Azure Key Vault is beschikbaar in alle openbare regio's. Als u de beschikbaarheid in andere regio's wilt controleren, raadpleegt u de beschikbaarheid van Azure Private Link.

Private Link introduceert een ander onderdeel en een andere beschikbaarheidsoverweging in de architectuur. De Private Link-service heeft een SLA met hoge beschikbaarheid. U moet rekening houden met deze SLA wanneer u de samengestelde SLO van de hele oplossing berekent.

Schaalbaarheid

Zie Private Link en DNS-integratie op schaal voor informatie over het integreren van Azure Private Link voor PaaS-services met Azure Privé-DNS-zones in hub-and-spoke-netwerkarchitecturen.

Wereldwijde peering

Elke service in elke Azure-regio die verbinding kan maken via het virtuele netwerk, kan de privé-eindpunten van de PaaS-services bereiken, bijvoorbeeld via peering van virtuele netwerken in hub-and-spoke-topologieën. Voor regionale VNet-integratie van App Service moeten de gekoppelde virtuele netwerken zich echter in dezelfde Azure-regio bevinden.

Gebrek aan wereldwijde peeringondersteuning betekent dat u deze oplossing niet kunt gebruiken voor connectiviteit tussen regio's van App Service naar een database of een ander privé-eindpunt in een andere Azure-regio. Deze oplossing zou bijvoorbeeld niet werken voor een multiregionale implementatie ter ondersteuning van een gedeeltelijke failover, waarbij de web-app actief blijft in één regio, maar verbinding moet maken met een database waarvoor een failover is uitgevoerd in een andere regio, of omgekeerd. Maar er bestaan andere oplossingen voor deze situatie.

Als u Web Apps wilt verbinden met een virtueel netwerk in een andere regio, kunt u gateway-vereiste VNet-integratie instellen. De beperking is dat gateway-vereiste VNet-integratie niet kan worden gebruikt met een virtueel netwerk dat is verbonden met Azure ExpressRoute.

Logboekregistratie en controle

Azure Private Link is geïntegreerd met Azure Monitor, waarmee u kunt zien of gegevens stromen.

U kunt de service voor het oplossen van verbindingsproblemen in Azure Network Watcher ook gebruiken om de connectiviteit van een VIRTUELE machine in een virtueel netwerk te traceren naar de FQDN-naam van de privé-eindpuntresource.

Kostenoptimalisatie

Kostenoptimalisatie gaat over manieren om onnodige uitgaven te verminderen en operationele efficiëntie te verbeteren. Zie Overzicht van de pijler kostenoptimalisatie voor meer informatie.

Er zijn geen extra kosten verbonden aan regionale VNet-integratie van App Service in ondersteunde prijscategorieën in Basic, Standard, Premium v2, Premium v3, Isolated v2 App Service en Azure Functions Premium-abonnementen.

Privé-eindpunt is beschikbaar voor Windows-web-apps en Linux-web-apps, in containers geplaatst of niet, gehost op Basic, Standard, Premium v2, Premium v3 en Isolated v2 App Service-abonnementen, en ook voor functie-apps die zijn geïmplementeerd in een Premium-abonnement.

De Azure Private Link-service waarmee de privé-eindpunten voor PaaS-services worden ingeschakeld, hebben een bijbehorende kosten die zijn gebaseerd op een uurtarief plus een premie voor bandbreedte. Zie de pagina met prijzen van Private Link voor meer informatie. Voor verbindingen van een virtueel clientnetwerk met de Azure Firewall in het virtuele hubnetwerk worden kosten in rekening gebracht. Er worden geen kosten in rekening gebracht voor verbindingen van Azure Firewall in het virtuele hubnetwerk naar privé-eindpunten in een gekoppeld virtueel netwerk.

Azure Privé-DNS zonekosten zijn gebaseerd op het aantal DNS-zones dat wordt gehost in Azure en het aantal ontvangen DNS-query's.

Als u de kosten voor het uitvoeren van dit scenario wilt verkennen, raadpleegt u de schatting van de Prijscalculator van Azure. Alle services die in dit artikel worden beschreven, zijn vooraf geconfigureerd met redelijke standaardwaarden voor een kleinschalige toepassing. Als u wilt zien hoe de prijzen voor uw use-case veranderen, wijzigt u de juiste variabelen zodat deze overeenkomen met het verwachte gebruik.

Medewerkers

Dit artikel wordt onderhouden door Microsoft. Het is oorspronkelijk geschreven door de volgende inzender.

Hoofdauteur:

Als u niet-openbare LinkedIn-profielen wilt zien, meldt u zich aan bij LinkedIn.

Volgende stappen