Service-eindpunten en regels voor virtuele netwerken gebruiken voor servers in Azure SQL Database
Van toepassing op: Azure SQL DatabaseAzure Synapse Analytics
Regels voor virtuele netwerken zijn een firewallbeveiligingsfunctie waarmee wordt bepaald of de server voor uw databases en elastische pools in Azure SQL Database of voor uw toegewezen SQL-pooldatabases (voorheen SQL DW) in Azure Synapse Analytics communicatie accepteert die vanuit bepaalde subnetten in virtuele netwerken worden verzonden. In dit artikel wordt uitgelegd waarom regels voor virtuele netwerken soms de beste optie zijn om veilig communicatie met uw database in SQL Database en Azure Synapse Analytics mogelijk te maken.
Notitie
Dit artikel is van toepassing op zowel SQL Database als Azure Synapse Analytics. Ter vereenvoudiging verwijst de term database naar zowel databases in SQL Database als Azure Synapse Analytics. Eventuele verwijzingen naar de server verwijzen ook naar de logische server die als host fungeert voor SQL Database en Azure Synapse Analytics.
Als u een regel voor een virtueel netwerk wilt maken, moet er eerst een service-eindpunt voor een virtueel netwerk zijn waarnaar de regel moet verwijzen.
Notitie
Microsoft Entra-id is de nieuwe naam voor Azure Active Directory (Azure AD). Op dit moment wordt de documentatie bijgewerkt.
Een regel voor een virtueel netwerk maken
Als u alleen een regel voor een virtueel netwerk wilt maken, kunt u verdergaan met de stappen en uitleg verderop in dit artikel.
Details over regels voor virtuele netwerken
In deze sectie worden verschillende details over regels voor virtuele netwerken beschreven.
Slechts één geografische regio
Elk service-eindpunt voor een virtueel netwerk is van toepassing op slechts één Azure-regio. Met het eindpunt kunnen andere regio's geen communicatie van het subnet accepteren.
Elke regel voor een virtueel netwerk is beperkt tot de regio waarop het onderliggende eindpunt van toepassing is.
Serverniveau, niet databaseniveau
Elke regel voor een virtueel netwerk is van toepassing op de hele server, niet alleen op één bepaalde database op de server. Met andere woorden, regels voor virtuele netwerken zijn van toepassing op serverniveau, niet op databaseniveau.
Ip-regels kunnen daarentegen op beide niveaus worden toegepast.
Beveiligingsbeheerrollen
Er is een scheiding van beveiligingsrollen in het beheer van service-eindpunten voor virtuele netwerken. Actie is vereist voor elk van de volgende rollen:
- Netwerk Beheer (rol Netwerkbijdrager): Schakel het eindpunt in.
- Database Beheer (rol inzender voor SQL Server): Werk de toegangsbeheerlijst (ACL) bij om het opgegeven subnet toe te voegen aan de server.
Alternatief voor Azure RBAC
De rollen netwerk Beheer en database Beheer meer mogelijkheden hebben dan nodig zijn voor het beheren van regels voor virtuele netwerken. Er is slechts een subset van hun mogelijkheden nodig.
U hebt de mogelijkheid om op rollen gebaseerd toegangsbeheer (RBAC) in Azure te gebruiken om één aangepaste rol te maken met alleen de benodigde subset van mogelijkheden. De aangepaste rol kan worden gebruikt in plaats van het netwerk Beheer of de database-Beheer. Het oppervlak van uw beveiligingsblootstelling is lager als u een gebruiker toevoegt aan een aangepaste rol in plaats van de gebruiker toe te voegen aan de andere twee hoofdbeheerdersrollen.
Notitie
In sommige gevallen bevinden de database in SQL Database en het subnet van het virtuele netwerk zich in verschillende abonnementen. In deze gevallen moet u de volgende configuraties controleren:
- Beide abonnementen moeten zich in dezelfde Microsoft Entra-tenant bevinden.
- De gebruiker heeft de vereiste machtigingen voor het initiëren van bewerkingen, zoals het inschakelen van service-eindpunten en het toevoegen van een subnet van een virtueel netwerk aan de opgegeven server.
- Voor beide abonnementen moet de Microsoft.Sql-provider zijn geregistreerd.
Beperkingen
Voor SQL Database heeft de functie regels voor virtuele netwerken de volgende beperkingen:
- In de firewall voor uw database in SQL Database verwijst elke regel voor een virtueel netwerk naar een subnet. Al deze subnetten waarnaar wordt verwezen, moeten worden gehost in dezelfde geografische regio die als host fungeert voor de database.
- Elke server kan maximaal 128 ACL-vermeldingen hebben voor elk virtueel netwerk.
- Regels voor virtuele netwerken zijn alleen van toepassing op virtuele Netwerken van Azure Resource Manager en niet op klassieke implementatiemodelnetwerken .
- Als u service-eindpunten voor virtuele netwerken inschakelt voor SQL Database, worden ook de eindpunten voor Azure Database for MySQL en Azure Database for PostgreSQL ingeschakeld. Als eindpunten zijn ingesteld op AAN, kunnen pogingen om vanuit de eindpunten verbinding te maken met uw Azure Database for MySQL- of Azure Database for PostgreSQL-exemplaren mislukken.
- De onderliggende reden is dat Azure Database for MySQL en Azure Database for PostgreSQL waarschijnlijk geen regel voor een virtueel netwerk hebben geconfigureerd. U moet een regel voor een virtueel netwerk configureren voor Azure Database for MySQL en Azure Database for PostgreSQL.
- Als u firewallregels voor virtuele netwerken wilt definiëren op een logische SQL-server die al is geconfigureerd met privé-eindpunten, stelt u Openbare netwerktoegang weigeren in op Nee.
- Ip-adresbereiken zijn van toepassing op de volgende netwerkitems, maar regels voor virtuele netwerken zijn niet van toepassing op de firewall:
Overwegingen bij het gebruik van service-eindpunten
Wanneer u service-eindpunten voor SQL Database gebruikt, bekijkt u de volgende overwegingen:
- Uitgaand naar openbare IP-adressen van Azure SQL Database is vereist. Netwerkbeveiligingsgroepen (NSG's) moeten worden geopend voor IP-adressen van SQL Database om connectiviteit mogelijk te maken. U kunt dit doen met behulp van NSG-servicetags voor SQL Database.
ExpressRoute
Als u ExpressRoute van uw locatie gebruikt voor openbare peering of Microsoft-peering, moet u de NAT IP-adressen identificeren die worden gebruikt. Voor openbare peering gebruikt elk ExpressRoute-circuit standaard twee NAT IP-adressen. Deze worden toegepast op Azure-serviceverkeer wanneer het verkeer het Microsoft Azure-backbone-netwerk binnenkomt. Voor Microsoft-peering worden de NAT IP-adressen die worden gebruikt, geleverd door de klant of de serviceprovider. Voor toegang tot uw serviceresources moet u deze openbare IP-adressen toestaan in de instelling voor IP-firewall voor de resource. Wanneer u op zoek bent naar de IP-adressen van uw ExpressRoute-circuit voor openbare peering, opent u een ondersteuningsticket met ExpressRoute via de Azure-portal. Zie NAT-vereisten voor openbare Azure-peering voor openbare Azure-peering voor meer informatie over NAT voor openbare ExpressRoute- en Microsoft-peering.
Als u communicatie van uw circuit naar SQL Database wilt toestaan, moet u IP-netwerkregels maken voor de openbare IP-adressen van uw NAT.
Gevolgen van het gebruik van service-eindpunten voor virtuele netwerken met Azure Storage
Azure Storage heeft dezelfde functie geïmplementeerd waarmee u de connectiviteit met uw Azure Storage-account kunt beperken. Als u ervoor kiest om deze functie te gebruiken met een Azure Storage-account dat SQL Database gebruikt, kunt u problemen ondervinden. Hierna volgt een lijst en discussie over SQL Database- en Azure Synapse Analytics-functies die hierdoor worden beïnvloed.
Azure Synapse Analytics PolyBase- en COPY-instructie
PolyBase en de COPY-instructie worden vaak gebruikt voor het laden van gegevens in Azure Synapse Analytics vanuit Azure Storage-accounts voor gegevensopname met hoge doorvoer. Als het Azure Storage-account waarmee u gegevens laadt, alleen toegang heeft tot een set subnetten voor virtuele netwerken, wordt de connectiviteit verbroken wanneer u PolyBase gebruikt en de COPY-instructie voor het opslagaccount wordt verbroken. Volg de stappen in deze sectie voor het inschakelen van import- en exportscenario's met behulp van COPY en PolyBase met Azure Synapse Analytics waarmee verbinding wordt gemaakt met Azure Storage die is beveiligd met een virtueel netwerk.
Vereisten
- Installeer Azure PowerShell. Zie De Azure Az PowerShell-module installeren voor meer informatie.
- Als u een v1- of Azure Blob Storage-account voor algemeen gebruik hebt, moet u eerst upgraden naar algemeen gebruik v2 door de stappen in Upgrade uitvoeren naar een v2-opslagaccount voor algemeen gebruik uit te voeren.
- U moet vertrouwde Microsoft-services toegang hebben tot dit opslagaccount dat is ingeschakeld onder het instellingenmenu van het Azure Storage-account firewalls en virtuele netwerken. Als u deze configuratie inschakelt, kunnen PolyBase en de COPY-instructie verbinding maken met het opslagaccount met behulp van sterke verificatie waarbij netwerkverkeer zich op de Azure-backbone bevindt. Zie deze handleiding voor meer informatie.
Belangrijk
De PowerShell Azure Resource Manager-module wordt nog steeds ondersteund door Azure SQL Database, maar alle toekomstige ontwikkeling is voor de Az.Sql
module. De AzureRM-module blijft tot ten minste december 2020 bugfixes ontvangen. De argumenten voor de opdrachten in de Az-module en in de AzureRm-modules zijn vrijwel identiek. Zie Introductie van de nieuwe Az-module van Azure PowerShell voor meer informatie over de compatibiliteit van de argumenten.
Stappen
Als u een zelfstandige toegewezen SQL-pool (voorheen SQL DW) hebt, registreert u uw SQL-server bij Microsoft Entra ID met behulp van PowerShell:
Connect-AzAccount Select-AzSubscription -SubscriptionId <subscriptionId> Set-AzSqlServer -ResourceGroupName your-database-server-resourceGroup -ServerName your-SQL-servername -AssignIdentity
Deze stap is niet vereist voor de toegewezen SQL-pools in een Azure Synapse Analytics-werkruimte. De door het systeem toegewezen beheerde identiteit (SA-MI) van de werkruimte is lid van de synapse-Beheer istrator-rol en heeft dus verhoogde bevoegdheden voor de toegewezen SQL-pools van de werkruimte.
Maak een v2-opslagaccount voor algemeen gebruik door de stappen in Een opslagaccount maken te volgen.
- Als u een v1- of Blob Storage-account voor algemeen gebruik hebt, moet u eerst een upgrade uitvoeren naar v2 door de stappen in Upgrade uitvoeren naar een v2-opslagaccount voor algemeen gebruik uit te voeren.
- Zie Bekende problemen met Azure Data Lake Storage Gen2 voor bekende problemen met Azure Data Lake Storage Gen2.
Selecteer toegangsbeheer (IAM) op de pagina van uw opslagaccount.
Klik op Toevoegen>Roltoewijzing toevoegen om het deelvenster Roltoewijzing toevoegen te openen.
Wijs de volgende rol toe. Raadpleeg Azure-rollen toewijzen met Azure Portal voor informatie over het toewijzen van rollen.
Instelling Weergegeven als Rol Inzender voor opslagblobgegevens Toegang toewijzen aan Gebruiker, groep of service-principal Leden Server of werkruimte die als host fungeert voor uw toegewezen SQL-pool die u hebt geregistreerd bij Microsoft Entra-id Notitie
Alleen leden met eigenaarsbevoegdheden voor het opslagaccount kunnen deze stap uitvoeren. Zie ingebouwde Azure-rollen voor verschillende ingebouwde Azure-rollen.
PolyBase-connectiviteit met het Azure Storage-account inschakelen:
Maak een databasehoofdsleutel als u er nog geen hebt gemaakt.
CREATE MASTER KEY [ENCRYPTION BY PASSWORD = 'somepassword'];
Maak een databasereferentie met IDENTITY = Managed Service Identity.
CREATE DATABASE SCOPED CREDENTIAL msi_cred WITH IDENTITY = 'Managed Service Identity';
U hoeft SECRET niet op te geven met een Azure Storage-toegangssleutel, omdat in dit mechanisme beheerde identiteit onder de dekking wordt gebruikt. Deze stap is niet vereist voor de toegewezen SQL-pools in een Azure Synapse Analytics-werkruimte. De door het systeem toegewezen beheerde identiteit (SA-MI) van de werkruimte is lid van de synapse-Beheer istrator-rol en heeft dus verhoogde bevoegdheden voor de toegewezen SQL-pools van de werkruimte.
De identiteitsnaam moet Managed Service Identity zijn voor PolyBase-connectiviteit om te kunnen werken met een Azure Storage-account dat is beveiligd met een virtueel netwerk.
Maak een externe gegevensbron met het schema voor het
abfss://
maken van verbinding met uw v2-opslagaccount voor algemeen gebruik met behulp van PolyBase.CREATE EXTERNAL DATA SOURCE ext_datasource_with_abfss WITH (TYPE = hadoop, LOCATION = 'abfss://myfile@mystorageaccount.dfs.core.windows.net', CREDENTIAL = msi_cred);
- Als er al externe tabellen zijn gekoppeld aan een v1- of Blob Storage-account voor algemeen gebruik, moet u deze externe tabellen eerst verwijderen. Verwijder vervolgens de bijbehorende externe gegevensbron. Maak vervolgens een externe gegevensbron met het
abfss://
schema dat verbinding maakt met een v2-opslagaccount voor algemeen gebruik, zoals eerder is weergegeven. Maak vervolgens alle externe tabellen opnieuw met behulp van deze nieuwe externe gegevensbron. U kunt de wizard Scripts genereren en publiceren gebruiken om eenvoudig create-scripts te genereren voor alle externe tabellen. - Zie De URI van Azure Data Lake Storage Gen2 gebruiken voor meer informatie over het
abfss://
schema. - Zie CREATE EXTERNAL DATA SOURCE voor meer informatie over de T-SQL-opdrachten.
- Als er al externe tabellen zijn gekoppeld aan een v1- of Blob Storage-account voor algemeen gebruik, moet u deze externe tabellen eerst verwijderen. Verwijder vervolgens de bijbehorende externe gegevensbron. Maak vervolgens een externe gegevensbron met het
Query's uitvoeren als normaal met behulp van externe tabellen.
SQL Database-blobcontrole
Azure SQL-controle kan SQL-auditlogboeken schrijven naar uw eigen opslagaccount. Als dit opslagaccount gebruikmaakt van de functie service-eindpunten voor virtuele netwerken, raadpleegt u hoe u controle schrijft naar een opslagaccount achter VNet en firewall.
Een firewallregel voor een virtueel netwerk toevoegen aan uw server
Lang geleden, voordat deze functie werd uitgebreid, moest u service-eindpunten voor virtuele netwerken inschakelen voordat u een live virtuele netwerkregel in de firewall kon implementeren. De eindpunten hebben een bepaald subnet van een virtueel netwerk gerelateerd aan een database in SQL Database. Vanaf januari 2018 kunt u deze vereiste omzeilen door de vlag IgnoreMissingVNetServiceEndpoint in te stellen. U kunt nu een firewallregel voor een virtueel netwerk toevoegen aan uw server zonder service-eindpunten voor virtuele netwerken in te schakelen.
Het instellen van een firewallregel helpt niet om de server te beveiligen. U moet ook service-eindpunten voor virtuele netwerken inschakelen om de beveiliging van kracht te laten worden. Wanneer u service-eindpunten inschakelt, ondervindt het subnet van het virtuele netwerk downtime totdat de overgang van uitgeschakeld naar aan is voltooid. Deze periode van downtime geldt met name in de context van grote virtuele netwerken. U kunt de vlag IgnoreMissingVNetServiceEndpoint gebruiken om de downtime tijdens de overgang te verminderen of te elimineren.
U kunt de vlag IgnoreMissingVNetServiceEndpoint instellen met behulp van PowerShell. Zie PowerShell voor meer informatie voor het maken van een service-eindpunt en regel voor een virtueel netwerk voor SQL Database.
Notitie
Azure Portal gebruiken om een regel voor een virtueel netwerk te maken
In deze sectie ziet u hoe u Azure Portal kunt gebruiken om een regel voor een virtueel netwerk te maken in uw database in SQL Database. De regel geeft aan dat uw database communicatie accepteert van een bepaald subnet dat is gelabeld als een service-eindpunt voor een virtueel netwerk.
Notitie
Als u een service-eindpunt wilt toevoegen aan de firewallregels voor het virtuele netwerk van uw server, moet u eerst controleren of service-eindpunten zijn ingeschakeld voor het subnet.
Als service-eindpunten niet zijn ingeschakeld voor het subnet, wordt u door de portal gevraagd deze in te schakelen. Selecteer de knop Inschakelen in hetzelfde deelvenster waarop u de regel toevoegt.
Vereisten
U moet al een subnet hebben dat is gelabeld met de naam van het specifieke service-eindpunttype van het virtuele netwerk die relevant is voor SQL Database.
- De relevante naam van het eindpunttype is Microsoft.Sql.
- Als uw subnet mogelijk niet is getagd met de typenaam, raadpleegt u Controleren of uw subnet een eindpunt is.
Stappen in Azure Portal
Meld u aan bij de Azure-portal.
Zoek en selecteer SQL-servers en selecteer vervolgens uw server. Selecteer Onder Beveiliging de optie Netwerken.
Controleer op het tabblad Openbare toegang of openbare netwerktoegang is ingesteld op Netwerken selecteren, anders zijn de instellingen voor virtuele netwerken verborgen. Selecteer + Bestaand virtueel netwerk toevoegen in de sectie Virtuele netwerken .
Vul in het nieuwe deelvenster Maken/bijwerken de vakken in met de namen van uw Azure-resources.
Tip
U moet het juiste adresvoorvoegsel voor uw subnet opnemen. U vindt de waarde voor het adresvoorvoegsel in de portal. Ga naar Alle resources>Alle typen>virtuele netwerken. Het filter geeft uw virtuele netwerken weer. Selecteer uw virtuele netwerk en selecteer vervolgens Subnetten. De kolom ADRESBEREIK heeft het adresvoorvoegsel dat u nodig hebt.
Bekijk de resulterende regel voor virtuele netwerken in het deelvenster Firewall .
Stel Toestaan dat Azure-services en -resources toegang krijgen tot deze server op Nee.
Belangrijk
Als u Toestaan dat Azure-services en -resources toegang hebben tot deze server ingeschakeld, accepteert uw server communicatie van elk subnet binnen de Azure-grens. Dat is communicatie die afkomstig is van een van de IP-adressen die worden herkend als die binnen bereiken die zijn gedefinieerd voor Azure-datacenters. Het is mogelijk dat het ingeschakelde besturingselement te veel toegang heeft vanuit een beveiligingspunt. De service-eindpuntfunctie van Microsoft Azure Virtual Network in coördinatie met de functie regels voor virtuele netwerken van SQL Database kan uw beveiligingsoppervlak verminderen.
Selecteer de knop OK onderaan het deelvenster.
Notitie
De volgende statussen of statussen zijn van toepassing op de regels:
- Gereed: Geeft aan dat de bewerking die u hebt gestart, is geslaagd.
- Mislukt: Geeft aan dat de bewerking die u hebt gestart, is mislukt.
- Verwijderd: Alleen van toepassing op de bewerking Verwijderen en geeft aan dat de regel is verwijderd en niet meer van toepassing is.
- InProgress: Geeft aan dat de bewerking wordt uitgevoerd. De oude regel is van toepassing terwijl de bewerking deze status heeft.
PowerShell gebruiken om een regel voor een virtueel netwerk te maken
Een script kan ook regels voor virtuele netwerken maken met behulp van de PowerShell-cmdlet New-AzSqlServerVirtualNetworkRule
of az network vnet create. Zie PowerShell voor meer informatie voor het maken van een service-eindpunt en regel voor een virtueel netwerk voor SQL Database.
REST API gebruiken om een regel voor een virtueel netwerk te maken
Intern roepen de PowerShell-cmdlets voor acties voor virtuele SQL-netwerken REST API's aan. U kunt de REST API's rechtstreeks aanroepen. Zie Regels voor virtuele netwerken voor meer informatie: Bewerkingen.
Fouten 40914 en 40615 oplossen
Verbinding maken fout 40914 heeft betrekking op regels voor virtuele netwerken, zoals opgegeven in het deelvenster Firewall in Azure Portal. Fout 40615 is vergelijkbaar, behalve dat het betrekking heeft op IP-adresregels op de firewall.
Fout 40914
Berichttekst: 'Kan server [servernaam]' die is aangevraagd door de aanmelding, niet openen. Client heeft geen toegang tot de server"
Foutbeschrijving: De client bevindt zich in een subnet met servereindpunten voor virtuele netwerken. Maar de server heeft geen regel voor virtuele netwerken die aan het subnet het recht verleent om met de database te communiceren.
Foutoplossing: gebruik in het deelvenster Firewall van Azure Portal het besturingselement regels voor virtuele netwerken om een regel voor een virtueel netwerk toe te voegen voor het subnet.
Fout 40615
Berichttekst: 'Kan server niet openen'{0} die is aangevraagd door de aanmelding. Client met IP-adres '{1}' heeft geen toegang tot de server".
Foutbeschrijving: De client probeert verbinding te maken vanaf een IP-adres dat niet is geautoriseerd om verbinding te maken met de server. De serverfirewall heeft geen IP-adresregel waarmee een client kan communiceren van het opgegeven IP-adres naar de database.
Foutomzetting: voer het IP-adres van de client in als een IP-regel. Gebruik het deelvenster Firewall in Azure Portal om deze stap uit te voeren.