Delen via


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 specifieke subnetten in virtuele netwerken wordt 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 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 van het virtuele netwerk zijn waarnaar de regel moet verwijzen.

Notitie

Microsoft Entra ID voorheen Azure Active Directory (Azure AD) werd genoemd.

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:

  • netwerkbeheerder (rol Netwerkbijdrager): het eindpunt inschakelen.
  • Databasebeheerder (sql Server-inzender rol): De toegangsbeheerlijst (ACL) bijwerken om het opgegeven subnet toe te voegen aan de server.

Alternatief voor Azure RBAC

De rollen netwerkbeheerder en databasebeheerder hebben meer mogelijkheden dan nodig zijn voor het beheren van regels voor virtuele netwerken. Er is slechts een subset van hun mogelijkheden nodig.

U kunt op rollen gebaseerd toegangsbeheer (RBAC) in Azure gebruiken om één aangepaste rol te maken met alleen de benodigde subset van mogelijkheden. De aangepaste rol kan worden gebruikt in plaats van de netwerkbeheerder of de databasebeheerder te betrekken. 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:

  • 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 klassiek implementatiemodel netwerken.
  • 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 ON, 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 Geen.
  • Ip-adresbereiken zijn van toepassing op de volgende netwerkitems, maar regels voor virtuele netwerken zijn niet van toepassing op de firewall:
  • Beide abonnementen moeten zich in dezelfde Microsoft Entra-tenant bevinden.

Overwegingen bij het gebruik van service-eindpunten

Wanneer u service-eindpunten voor SQL Database gebruikt, bekijkt u de volgende overwegingen:

  • Voor uitgaand verkeer naar de 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 die worden toegepast op Azure-serviceverkeer wanneer het verkeer de Microsoft Azure-netwerk-backbone binnenkomt. Voor Microsoft-peering worden de NAT IP-adressen die worden gebruikt, geleverd door de klant of de serviceprovider. Als u toegang tot uw serviceresources wilt toestaan, moet u deze openbare IP-adressen toestaan in de ip-firewallinstelling van de resource. Als u de IP-adressen van uw ExpressRoute-circuit voor openbare peering wilt vinden, u een ondersteuningsticket met ExpressRoute- openen via Azure Portal. Zie NAT-vereisten voor openbare ExpressRoute- en Microsoft-peeringvoor meer informatie over NAT voor openbare 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.

Impact 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 waarvan u gegevens laadt alleen toegang biedt tot een set van subnetten voor virtuele netwerken, zal de connectiviteit worden verbroken wanneer u PolyBase en de COPY-instructie naar het opslagaccount gebruikt. 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.

Voorwaarden

  • Installeer Azure PowerShell. Zie De Azure Az PowerShell-module installerenvoor 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.
  • U moet de optie 'Vertrouwde Microsoft-services toegang geven tot dit opslagaccount' inschakelen in het gedeelte Firewalls en virtuele netwerken van het Azure Storage-account instellingenmenu. 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 handleidingvoor meer informatie.

Belangrijk

De Module PowerShell Azure Resource Manager (AzureRM) is afgeschaft op 29 februari 2024. Voor alle toekomstige ontwikkeling moet de Az.Sql-module worden gebruikt. Gebruikers wordt aangeraden om van AzureRM naar de Az PowerShell-module te migreren om ondersteuning en updates te garanderen. De AzureRM-module wordt niet meer onderhouden of ondersteund. De argumenten voor de opdrachten in de Az PowerShell-module en in de AzureRM-modules zijn aanzienlijk identiek. Zie Introductie van de nieuwe Az PowerShell-modulevoor meer informatie over de compatibiliteit.

Stappen

  1. 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 rol Synapse-beheerder en heeft dus verhoogde bevoegdheden voor de toegewezen SQL-pools van de werkruimte.

  2. Maak een v2-opslagaccount voor algemeen gebruik door de stappen in Een opslagaccount makente volgen.

  3. Op de pagina van uw opslagaccount selecteert u Toegangsbeheer (IAM).

  4. Selecteer >Roltoewijzing toevoegen om de pagina Roltoewijzing toevoegen te openen.

  5. Wijs de volgende rol toe. Zie Azure-rollen toewijzen met behulp van de Azure-portalvoor gedetailleerde stappen.

    Instelling Waarde
    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

    Schermopname van de pagina Roltoewijzing toevoegen in Azure Portal.

    Notitie

    Alleen leden met eigenaarsbevoegdheden voor het opslagaccount kunnen deze stap uitvoeren. Voor verschillende ingebouwde Azure-rollen, zie Azure ingebouwde rollen.

  6. PolyBase-connectiviteit met het Azure Storage-account inschakelen:

    1. Maak een database hoofdsleutel als u er nog niet eerder een hebt gemaakt.

      CREATE MASTER KEY [ENCRYPTION BY PASSWORD = 'somepassword'];
      
    2. 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 dit mechanisme gebruikmaakt van Beheerde Identiteit achter de schermen. 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 rol Synapse-beheerder en heeft dus verhoogde bevoegdheden voor de toegewezen SQL-pools van de werkruimte.

      • De id-naam moet worden Managed Service Identity- voor PolyBase-connectiviteit om te kunnen werken met een Azure Storage-account dat is beveiligd met een virtueel netwerk.

    3. Maak een externe gegevensbron met het abfss:// schema voor het 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.
      • Voor meer informatie over het abfss://-schema, zie De URI van Azure Data Lake Storage Gen2 gebruiken.
      • Zie CREATE EXTERNAL DATA SOURCEvoor meer informatie over de T-SQL-opdrachten.
    4. Voer queries uit zoals gebruikelijk 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 service-eindpuntenfunctie van het virtuele netwerk, raadpleegt u hoe u een audit kunt schrijven 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 IgnoreMissingVNetServiceEndpoint vlag 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 het maken van een service-eindpunt en regel voor een virtueel netwerk voor SQL Databasevoor meer informatie.

Notitie

Zie IP-firewallregels van Azure Synapse Analytics voor vergelijkbare instructies in Azure Synapse Analytics

Azure Portal gebruiken om een regel voor een virtueel netwerk te maken

In deze sectie ziet u hoe u de Azure Portal kunt gebruiken om een regel voor virtuele netwerken te maken in uw database in SQL Database. De regel geeft aan dat uw database communicatie van een bepaald subnet accepteert 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.

Voorwaarden

U moet al een subnet hebben dat is gelabeld met het specifieke service-eindpunt van het virtuele netwerk typenaam relevant voor SQL Database.

Stappen in Azure Portal

  1. Meld u aan bij de Azure Portal.

  2. Zoek en selecteer SQL-servers, en kies vervolgens uw server. Selecteer onder de secties Securityen Networking.

  3. Controleer op het tabblad Openbare toegang of Openbare netwerktoegang is ingesteld op Netwerken selecteren, anders zijn de Virtuele netwerken-instellingen verborgen. Selecteer + Bestaand virtueel netwerk toevoegen in de sectie Virtuele netwerken.

    Schermopname van de eigenschappen van logische servers voor netwerken.

  4. In het nieuwe deelvenster maken/bijwerken vult u de vakken in met de namen van uw Azure-resources.

    Tip

    U moet het juiste adresvoorvoegsel voor uw subnet opnemen. U vindt het adresvoorvoegsel met de waarde in het 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 bevat het adresvoorvoegsel dat u nodig hebt.

    Schermopname van het invullen van vakken voor de nieuwe regel.

  5. Bekijk de resulterende regel voor virtuele netwerken in het deelvenster Firewall.

    Schermopname van de nieuwe regel in het deelvenster Firewall.

  6. Stel in dat Azure-services en -resources toegang hebben tot deze server op Nee.

    Belangrijk

    Als u de optie Toestaan dat Azure-services en -resources toegang hebben tot deze server aangevinkt laat, accepteert uw server communicatie van elk subnet binnen het Azure-netwerk. Dat is communicatie die afkomstig is van een van de IP-adressen die worden herkend als behorend tot de reeksen 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.

  7. Selecteer de knop OK onderaan het deelvenster.

Notitie

De volgende statussen of toestanden zijn van toepassing op de regels:

  • Ready: Geeft aan dat de bewerking die u hebt gestart, is geslaagd.
  • Mislukt: geeft aan dat de bewerking die u hebt gestart, is mislukt.
  • Verwijderde: alleen van toepassing op de bewerking Delete 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 het maken van een service-eindpunt en regel voor een virtueel netwerk voor SQL Databasevoor meer informatie.

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: Bewerkingenvoor meer informatie.

Problemen met foutcodes 40914 en 40615 oplossen

Verbindingsfout 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 niet openen'[servernaam]' aangevraagd door de aanmelding. Client heeft geen toegang tot de server.

Beschrijving van fout: 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}' aangevraagd door de aanmelding. Client met IP-adres '{1}' heeft geen toegang tot de server.'

Beschrijving van fout: 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.

Foutoplossing: voer het IP-adres van de klant in als een IP-regel. Gebruik het deelvenster Firewall in Azure Portal om deze stap uit te voeren.

Volgende stappen