Sdílet prostřednictvím


Použití koncových bodů služeb virtuální sítě a pravidel pro servery služby Azure SQL Database

Platí pro: Azure SQL Database Azure Synapse Analytics

Pravidla virtuální sítě jsou funkce zabezpečení brány firewall, která řídí, jestli server pro vaše databáze a elastické fondy ve službě Azure SQL Database nebo pro vyhrazené databáze SQL (dříve SQL DW) ve službě Azure Synapse Analytics přijímá komunikaci odesílanou z konkrétních podsítí ve virtuálních sítích. Tento článek vysvětluje, proč jsou pravidla virtuální sítě někdy nejlepší volbou pro bezpečné povolení komunikace s databází ve službě SQL Database a Azure Synapse Analytics.

Poznámka:

Tento článek se týká služby SQL Database i Azure Synapse Analytics. Pro zjednodušení odkazuje databáze termínů na obě databáze ve službě SQL Database a Azure Synapse Analytics. Stejně tak všechny odkazy na server odkazují na logický server , který je hostitelem služby SQL Database a Azure Synapse Analytics.

Pokud chcete vytvořit pravidlo virtuální sítě, musí být nejprve koncový bod služby virtuální sítě, na který má pravidlo odkazovat.

Poznámka:

ID Microsoft Entra se dříve označovalo jako Azure Active Directory (Azure AD).

Vytvoření pravidla virtuální sítě

Pokud chcete vytvořit jenom pravidlo virtuální sítě, můžete přeskočit k krokům a vysvětlením dále v tomto článku.

Podrobnosti o pravidlech virtuální sítě

Tato část popisuje několik podrobností o pravidlech virtuální sítě.

Pouze jedna geografická oblast

Každý koncový bod služby virtuální sítě se vztahuje pouze na jednu oblast Azure. Koncový bod neumožňuje ostatním oblastem přijímat komunikaci z podsítě.

Jakékoli pravidlo virtuální sítě je omezené na oblast, na kterou se vztahuje její základní koncový bod.

Úroveň serveru, ne úroveň databáze

Každé pravidlo virtuální sítě platí pro celý server, nejen pro jednu konkrétní databázi na serveru. Jinými slovy, pravidla virtuální sítě platí na úrovni serveru, ne na úrovni databáze.

Pravidla IP adres se naopak dají použít na obou úrovních.

Role správy zabezpečení

Při správě koncových bodů služby virtuální sítě existuje oddělení rolí zabezpečení. Akce se vyžaduje z každé z následujících rolí:

  • Správce sítě (role Přispěvatel sítě): Zapněte koncový bod.
  • Správce databáze (role Přispěvatel SQL Serveru): Aktualizujte seznam řízení přístupu (ACL) a přidejte danou podsíť na server.

Alternativní řešení Azure RBAC

Role správce sítě a správce databáze mají více funkcí, než je potřeba ke správě pravidel virtuální sítě. Potřebujete jenom podmnožinu jejich schopností.

Máte možnost použít řízení přístupu na základě role (RBAC) v Azure k vytvoření jedné vlastní role, která má pouze nezbytnou podmnožinu funkcí. Vlastní roli je možné použít místo zapojení správce sítě nebo správce databáze. Povrchová oblast ohrožení zabezpečení je nižší, pokud přidáte uživatele do vlastní role a přidáte ho do dalších dvou hlavních rolí správce.

Poznámka:

V některých případech se databáze ve službě SQL Database a podsíti virtuální sítě nacházejí v různých předplatných. V těchto případech musíte zajistit následující konfigurace:

  • Obě předplatná musí být ve stejném tenantovi Microsoft Entra.
  • Uživatel má požadovaná oprávnění k zahájení operací, jako je povolení koncových bodů služby a přidání podsítě virtuální sítě na daný server.
  • Obě předplatná musí mít zaregistrovaného poskytovatele Microsoft.Sql.

Omezení

U služby SQL Database má funkce pravidel virtuální sítě následující omezení:

  • V bráně firewall pro vaši databázi ve službě SQL Database každé pravidlo virtuální sítě odkazuje na podsíť. Všechny tyto odkazované podsítě musí být hostované ve stejné geografické oblasti, která je hostitelem databáze.
  • Každý server může mít až 128 položek seznamu ACL pro libovolnou virtuální síť.
  • Pravidla virtuální sítě se vztahují pouze na virtuální sítě Azure Resource Manageru a ne na klasické sítě modelu nasazení.
  • Zapnutí koncových bodů služeb virtuální sítě do služby SQL Database také umožňuje koncové body pro Azure Database for MySQL a Azure Database for PostgreSQL. Když jsou koncové body nastavené na ZAPNUTO, pokusy o připojení z koncových bodů k instancím Azure Database for MySQL nebo Azure Database for PostgreSQL můžou selhat.
    • Důvodem je, že služba Azure Database for MySQL a Azure Database for PostgreSQL pravděpodobně nemá nakonfigurované pravidlo virtuální sítě. Musíte nakonfigurovat pravidlo virtuální sítě pro Azure Database for MySQL a Azure Database for PostgreSQL.
    • Pokud chcete definovat pravidla brány firewall virtuální sítě na logickém serveru SQL, který už je nakonfigurovaný s privátními koncovými body, nastavte možnost Odepřít přístup k veřejné síti na Ne.
  • V bráně firewall se rozsahy IP adres vztahují na následující síťové položky, ale pravidla virtuální sítě ne:

Důležité informace o používání koncových bodů služby

Pokud používáte koncové body služby pro službu SQL Database, projděte si následující aspekty:

  • Vyžaduje se odchozí provoz veřejných IP adres služby Azure SQL Database. Aby bylo možné připojení povolit, je nutné otevřít skupiny zabezpečení sítě (NSG) pro IP adresy služby SQL Database. Můžete to provést pomocí značek služby NSG pro SLUŽBU SQL Database.

ExpressRoute

Pokud pro veřejný partnerský vztah nebo partnerský vztah Microsoftu používáte ExpressRoute z místního prostředí, budete muset identifikovat používané IP adresy překladu adres (NAT). Ve veřejných partnerských vztazích každý okruh ExpressRoute automaticky využívá dvě IP adresy pro překlad adres (NAT), které se používají k provozu služeb Azure při vstupu do páteřní sítě Microsoft Azure. V případě partnerského vztahu Microsoftu poskytují IP adresy překladu adres (NAT), které používá zákazník nebo poskytovatel služeb. Pokud chcete povolit přístup k prostředkům služby, musíte tyto veřejné IP adresy povolit v nastavení IP adresy brány firewall prostředku. Pokud chcete zjistit IP adresy veřejného partnerského okruhu ExpressRoute, otevřete lístek podpory pro ExpressRoute na webu Azure Portal. Další informace o překladu adres (NAT) pro veřejný partnerský vztah ExpressRoute a partnerském vztahu Microsoftu najdete v tématu Požadavky na překlad adres (NAT) pro veřejný partnerský vztah Azure.

Pokud chcete povolit komunikaci z okruhu do služby SQL Database, musíte vytvořit pravidla sítě IP pro veřejné IP adresy vašeho překladu adres (NAT).

Dopad použití koncových bodů služby pro virtuální síť se službou Azure Storage

Ve službě Azure Storage je implementovaná stejná funkce, která umožňuje omezit připojení k vašemu účtu služby Azure Storage. Pokud se rozhodnete tuto funkci použít s účtem Azure Storage, který sql Database používá, můžete narazit na problémy. Dále je seznam a diskuze o funkcích SLUŽBY SQL Database a Azure Synapse Analytics, které jsou touto funkcí ovlivněny.

Příkaz PolyBase a COPY pro Azure Synapse Analytics

PolyBase a příkaz COPY se běžně používají k načtení dat do Azure Synapse Analytics z účtů Azure Storage pro příjem dat s vysokou propustností. Pokud účet Azure Storage, ze kterého načítáte data z omezení, přistupuje jenom k sadě podsítí virtuální sítě, připojení při použití PolyBase a příkazu COPY k účtu úložiště se přeruší. Pokud chcete povolit scénáře importu a exportu pomocí copy a PolyBase s Azure Synapse Analytics, které se připojují k Azure Storage, které jsou zabezpečené k virtuální síti, postupujte podle kroků v této části.

Požadavky

  • Nainstalujte Azure PowerShell. Další informace najdete v tématu Instalace modulu Azure Az PowerShell.
  • Pokud máte účet služby Azure Blob Storage pro obecné účely verze 1 nebo Azure Blob Storage, musíte nejprve upgradovat na účet úložiště pro obecné účely verze 2 podle pokynů v části Upgrade na účet úložiště pro obecné účely verze 2.
  • Pro přístup k tomuto účtu úložiště musíte mít zapnutou možnost Povolit důvěryhodné služby Microsoft v nabídce nastavení účtů služby Azure Storage a bran firewall a virtuálních sítí. Povolením této konfigurace umožníte PolyBase a příkazu COPY připojit se k účtu úložiště pomocí silného ověřování, kdy síťový provoz zůstává v páteřní síti Azure. Další informace najdete v tomto průvodci.

Důležité

Azure SQL Database stále podporuje modul Azure Resource Manageru v PowerShellu, ale veškerý budoucí vývoj je určený pro tento Az.Sql modul. Modul AzureRM bude dál dostávat opravy chyb až do alespoň prosince 2020. Argumenty pro příkazy v modulu Az a v modulech AzureRm jsou podstatně identické. Další informace o jejich kompatibilitě najdete v tématu Představení nového modulu Az Azure PowerShellu.

Kroky

  1. Pokud máte samostatný vyhrazený fond SQL (dříve SQL DW), pomocí PowerShellu zaregistrujte sql server pomocí Microsoft Entra ID:

    Connect-AzAccount
    Select-AzSubscription -SubscriptionId <subscriptionId>
    Set-AzSqlServer -ResourceGroupName your-database-server-resourceGroup -ServerName your-SQL-servername -AssignIdentity
    

    Tento krok není nutný pro vyhrazené fondy SQL v pracovním prostoru Azure Synapse Analytics. Spravovaná identita přiřazená systémem (SA-MI) pracovního prostoru je členem role Správce Synapse a má tak zvýšená oprávnění k vyhrazeným fondům SQL pracovního prostoru.

  2. Podle kroků v části Vytvoření účtu úložiště vytvořte účet úložiště pro obecné účely verze 2.

  3. Na stránce účtu úložiště vyberte Řízení přístupu (IAM).

  4. Výběrem možnosti Přidat>přiřazení role otevřete stránku Přidat přiřazení role.

  5. Přiřaďte následující roli. Podrobný postup najdete v tématu Přiřazování rolí Azure s využitím webu Azure Portal.

    Nastavení Hodnota
    Role Přispěvatel dat objektů blob úložiště
    Přiřadit přístup k Uživatel, skupina nebo instanční objekt
    Členové Server nebo pracovní prostor hostující vyhrazený fond SQL, který jste zaregistrovali s ID Microsoft Entra

    Snímek obrazovky se stránkou Přidat přiřazení role na webu Azure Portal

    Poznámka:

    Tento krok můžou provést jenom členové s oprávněním vlastníka účtu úložiště. Informace o různých předdefinovaných rolích Azure najdete v tématu Předdefinované role Azure.

  6. Povolení připojení PolyBase k účtu Azure Storage:

    1. Pokud jste ho ještě nevytvořili, vytvořte hlavní klíč databáze.

      CREATE MASTER KEY [ENCRYPTION BY PASSWORD = 'somepassword'];
      
    2. Vytvořte přihlašovací údaje s oborem databáze s identitou = Identita spravované služby.

      CREATE DATABASE SCOPED CREDENTIAL msi_cred WITH IDENTITY = 'Managed Service Identity';
      
      • U přístupového klíče azure Storage není nutné zadávat tajný klíč, protože tento mechanismus používá spravovanou identitu v rámci krytů. Tento krok není nutný pro vyhrazené fondy SQL v pracovním prostoru Azure Synapse Analytics. Spravovaná identita přiřazená systémem (SA-MI) pracovního prostoru je členem role Správce Synapse a má tak zvýšená oprávnění k vyhrazeným fondům SQL pracovního prostoru.

      • Název IDENTITY musí být Identita spravované služby , aby připojení PolyBase fungovalo s účtem Azure Storage zabezpečeným k virtuální síti.

    3. Vytvořte externí zdroj dat se schématem abfss:// pro připojení k účtu úložiště pro obecné účely v2 pomocí PolyBase.

      CREATE EXTERNAL DATA SOURCE ext_datasource_with_abfss WITH (TYPE = hadoop, LOCATION = 'abfss://myfile@mystorageaccount.dfs.core.windows.net', CREDENTIAL = msi_cred);
      
      • Pokud už máte externí tabulky přidružené k účtu pro obecné účely verze 1 nebo Blob Storage, měli byste tyto externí tabulky nejprve odstranit. Potom odstraňte odpovídající externí zdroj dat. Dále vytvořte externí zdroj dat se schématem abfss:// , které se připojuje k účtu úložiště pro obecné účely verze 2, jak je znázorněno dříve. Pak znovu vytvořte všechny externí tabulky pomocí tohoto nového externího zdroje dat. Pomocí Průvodce generováním a publikováním skriptů můžete snadno vygenerovat skripty pro všechny externí tabulky.
      • Další informace o schématu abfss:// najdete v tématu Použití identifikátoru URI Azure Data Lake Storage Gen2.
      • Další informace opříkazch
    4. Dotazování jako normální pomocí externích tabulek

Auditování objektů blob služby SQL Database

Auditování Azure SQL může zapisovat protokoly auditu SQL do vlastního účtu úložiště. Pokud tento účet úložiště používá funkci koncových bodů služby pro virtuální síť, podívejte se , jak zapsat audit do účtu úložiště za virtuální sítí a bránou firewall.

Přidání pravidla brány firewall virtuální sítě na server

Před tím, než byla tato funkce rozšířená, jste byli před tím, než jste mohli implementovat živé pravidlo virtuální sítě v bráně firewall, museli jste zapnout koncové body služby virtuální sítě. Koncové body souvisejí s danou podsítí virtuální sítě k databázi v SQL Database. Od ledna 2018 můžete tento požadavek obejít nastavením příznaku IgnoreMissingVNetServiceEndpoint . Teď můžete na server přidat pravidlo brány firewall virtuální sítě, aniž byste zapnuli koncové body služby virtuální sítě.

Pouhé nastavení pravidla brány firewall nepomáhají zabezpečit server. Aby se zabezpečení projevilo, musíte také zapnout koncové body služby virtuální sítě. Když zapnete koncové body služby, dojde k výpadku podsítě virtuální sítě, dokud se nepřekončí přechod z vypnutého na zapnutý. Tato doba výpadku platí zejména v kontextu rozsáhlých virtuálních sítí. Příznak IgnoreMissingVNetServiceEndpoint můžete použít ke snížení nebo vyloučení výpadků během přechodu.

Příznak IgnoreMissingVNetServiceEndpoint můžete nastavit pomocí PowerShellu. Další informace najdete v PowerShellu k vytvoření koncového bodu služby virtuální sítě a pravidla pro službu SQL Database.

Poznámka:

Podobné pokyny v Azure Synapse Analytics najdete v pravidlech brány firewall protokolu IP služby Azure Synapse Analytics.

Vytvoření pravidla virtuální sítě pomocí webu Azure Portal

Tato část ukazuje, jak můžete pomocí webu Azure Portal vytvořit pravidlo virtuální sítě ve vaší databázi ve službě SQL Database. Toto pravidlo říká vaší databázi, aby přijímala komunikaci z konkrétní podsítě, která je označená jako koncový bod služby virtuální sítě.

Poznámka:

Pokud chcete přidat koncový bod služby do pravidel brány firewall virtuální sítě vašeho serveru, nejprve se ujistěte, že jsou pro podsíť zapnuté koncové body služby.

Pokud nejsou koncové body služby pro podsíť zapnuté, portál vás vyzve, abyste je povolili. Ve stejném podokně, do kterého pravidlo přidáte, vyberte tlačítko Povolit.

Požadavky

Musíte už mít podsíť, která je označená konkrétním názvem typu koncového bodu služby virtuální sítě, která je relevantní pro službu SQL Database.

Kroky na webu Azure Portal

  1. Přihlaste se k portálu Azure.

  2. Vyhledejte a vyberte SERVERY SQL a pak vyberte váš server. V části Zabezpečení vyberte Sítě.

  3. Na kartě Veřejný přístup se ujistěte, že je přístup k veřejné síti nastavený na Možnost Vybrat sítě, jinak jsou nastavení virtuálních sítí skrytá. V části Virtuální sítě vyberte + Přidat existující virtuální síť.

    Snímek obrazovky znázorňující vlastnosti logického serveru pro sítě

  4. V novém podokně Vytvořit/Aktualizovat vyplňte pole názvy prostředků Azure.

    Tip

    Musíte zahrnout správnou předponu adresy pro vaši podsíť. Hodnotu předpony Adresa najdete na portálu. Přejděte na Všechny prostředky>Všechny typy>Virtuální sítě. Filtr zobrazí vaše virtuální sítě. Vyberte svou virtuální síť a pak vyberte Podsítě. Sloupec ROZSAH ADRES má předponu adresy, kterou potřebujete.

    Snímek obrazovky znázorňující vyplnění polí nového pravidla

  5. Podívejte se na výsledné pravidlo virtuální sítě v podokně Brána firewall .

    Snímek obrazovky znázorňující nové pravidlo v podokně Brána firewall

  6. Nastavte Možnost Povolit službám a prostředkům Azure přístup k tomuto serveru na Ne.

    Důležité

    Pokud necháte zaškrtnuté políčko Povolit službám a prostředkům Azure přístup k tomuto serveru , váš server přijme komunikaci z jakékoli podsítě uvnitř hranice Azure. Jedná se o komunikaci, která pochází z jedné z IP adres, které jsou rozpoznané jako rozsahy definované pro datacentra Azure. Ponechání povoleného ovládacího prvku může být nadměrným přístupem z hlediska zabezpečení. Funkce koncového bodu služby Microsoft Azure Virtual Network v koordinaci s funkcí pravidel virtuální sítě služby SQL Database může snížit vaši oblast zabezpečení.

  7. Vyberte tlačítko OK v dolní části podokna.

Poznámka:

Pro pravidla platí následující stavy nebo stavy:

  • Připraveno: Označuje, že operace, kterou jste zahájili, byla úspěšná.
  • Selhání: Označuje, že operace, kterou jste zahájili, selhala.
  • Odstraněno: Platí pouze pro Delete operaci a označuje, že pravidlo bylo odstraněno a již neplatí.
  • InProgress: Označuje, že operace probíhá. Staré pravidlo platí, když je operace v tomto stavu.

Vytvoření pravidla virtuální sítě pomocí PowerShellu

Skript může také vytvořit pravidla virtuální sítě pomocí rutiny New-AzSqlServerVirtualNetworkRule PowerShellu nebo az network vnet create. Další informace najdete v PowerShellu k vytvoření koncového bodu služby virtuální sítě a pravidla pro službu SQL Database.

Vytvoření pravidla virtuální sítě pomocí rozhraní REST API

Rutiny PowerShellu pro akce virtuální sítě SQL interně volají rozhraní REST API. Rozhraní REST API můžete volat přímo. Další informace najdete v tématu Pravidla virtuální sítě: Operace.

Řešení chyb 40914 a 40615

Chyba připojení 40914 souvisí s pravidly virtuální sítě, jak je uvedeno v podokně Brána firewall na webu Azure Portal.
Chyba 40615 je podobná, s výjimkou toho, že souvisí s pravidly IP adres v bráně firewall.

Chyba 40914

Text zprávy: "Server [název_serveru] požadovaný pro přihlášení nelze otevřít. Klient nemá povolený přístup k tomuto serveru.

Popis chyby: Klient je v podsíti, která obsahuje koncové body serveru virtuální sítě. Server ale nemá žádné pravidlo virtuální sítě, které podsíti uděluje právo komunikovat s databází.

Řešení chyb: V podokně Firewall na webu Azure Portal přidejte pravidlo virtuální sítě pro podsíť pomocí ovládacího prvku pravidel virtuální sítě.

Chyba 40615

Text zprávy: Server nelze otevřít{0} požadovaný pro přihlášení. Klient s IP adresou {1} nemá povolený přístup k tomuto serveru.

Popis chyby: Klient se pokouší připojit z IP adresy, která nemá oprávnění k připojení k serveru. Brána firewall serveru nemá žádné pravidlo IP adresy, které umožňuje klientovi komunikovat z dané IP adresy do databáze.

Řešení chyb: Jako pravidlo IP zadejte IP adresu klienta. K tomuto kroku použijte podokno Brány firewall na webu Azure Portal.

Další kroky