Mechanizmy kontroli dostępu do sieci w usługach Azure SQL Database i Azure Synapse Analytics

Dotyczy:Azure SQL DatabaseAzure Synapse Analytics (tylko dedykowane pule SQL)

Podczas tworzenia serwera logicznego w witrynie Azure Portal dla usług Azure SQL Database i Azure Synapse Analytics wynik jest publicznym punktem końcowym w formacie yourservername.database.windows.net.

Następujące mechanizmy kontroli dostępu do sieci umożliwiają selektywne zezwalanie na dostęp do bazy danych za pośrednictwem publicznego punktu końcowego:

  • Zezwalaj usługom i zasobom platformy Azure na dostęp do tego serwera: po włączeniu inne zasoby w granicach platformy Azure, na przykład maszyna wirtualna platformy Azure, mogą uzyskiwać dostęp do usługi SQL Database
  • Reguły zapory adresów IP: ta funkcja umożliwia jawne zezwalanie na połączenia z określonego adresu IP, na przykład z maszyn lokalnych

Możesz również zezwolić na dostęp prywatny do bazy danych z sieci wirtualnych za pośrednictwem:

  • Reguły zapory sieci wirtualnej: użyj tej funkcji, aby zezwolić na ruch z określonej sieci wirtualnej w granicach platformy Azure
  • Usługa Private Link: ta funkcja służy do tworzenia prywatnego punktu końcowego dla serwera logicznego na platformie Azure w ramach określonej sieci wirtualnej

Ważne

Ten artykuł nie dotyczy usługi SQL Managed Instance. Aby uzyskać więcej informacji na temat konfiguracji sieci, zobacz Nawiązywanie połączenia z usługą Azure SQL Managed Instance .

Zapoznaj się z poniższym filmem wideo, aby zapoznać się z ogólnym wyjaśnieniem tych mechanizmów kontroli dostępu i ich działaniami:

Zezwalaj na usługi platformy Azure

Domyślnie podczas tworzenia nowego serwera logicznego z witryny Azure Portal pozycja Zezwalaj usługom i zasobom platformy Azure na dostęp do tego serwera jest niezaznaczone i nie jest włączona. To ustawienie jest widoczne, gdy jest dozwolona łączność przy użyciu publicznego punktu końcowego usługi.

To ustawienie można również zmienić za pomocą ustawienia Sieć po utworzeniu serwera logicznego w następujący sposób:

Screenshot of manage server firewall

Gdy opcja Zezwalaj usługom i zasobom platformy Azure na dostęp do tego serwera jest włączona, serwer zezwala na komunikację ze wszystkich zasobów w granicach platformy Azure, które mogą być częścią Subskrypcji.

W wielu przypadkach włączenie tego ustawienia jest bardziej permisywne niż to, czego chce większość klientów. Możesz usunąć zaznaczenie tego ustawienia i zastąpić je bardziej restrykcyjnymi regułami zapory IP lub regułami zapory sieci wirtualnej.

Jednak ma to wpływ na następujące funkcje, które działają na maszynach wirtualnych na platformie Azure, które nie są częścią sieci wirtualnej, a tym samym łączą się z bazą danych za pośrednictwem adresu IP platformy Azure:

Usługa Import/Export

Usługa importu eksportu nie działa, gdy pozycja Zezwalaj usługom i zasobom platformy Azure na dostęp do tego serwera nie jest włączona. Można jednak obejść ten problem , ręcznie uruchamiając pakiet SqlPackage z maszyny wirtualnej platformy Azure lub wykonując eksport bezpośrednio w kodzie przy użyciu interfejsu API DACFx.

Synchronizacja danych

Aby użyć funkcji synchronizacji danych z ustawieniem Zezwalaj usługom i zasobom platformy Azure na dostęp do tego serwera , należy utworzyć pojedyncze wpisy reguły zapory, aby dodać adresy IP z tagu usługi Sql dla regionu hostującym bazę danych Centrum . Dodaj te reguły zapory na poziomie serwera do serwerów hostjących bazy danych centrum i składowych (które mogą znajdować się w różnych regionach)

Użyj następującego skryptu programu PowerShell, aby wygenerować adresy IP odpowiadające tagowi usługi SQL dla regionu Zachodnie stany USA

PS C:\>  $serviceTags = Get-AzNetworkServiceTag -Location eastus2
PS C:\>  $sql = $serviceTags.Values | Where-Object { $_.Name -eq "Sql.WestUS" }
PS C:\> $sql.Properties.AddressPrefixes.Count
70
PS C:\> $sql.Properties.AddressPrefixes
13.86.216.0/25
13.86.216.128/26
13.86.216.192/27
13.86.217.0/25
13.86.217.128/26
13.86.217.192/27

Napiwek

Polecenie Get-AzNetworkServiceTag zwraca globalny zakres tagu usługi SQL, mimo określenia parametru Location. Pamiętaj, aby filtrować go do regionu, w którym jest hostowana baza danych centrum używana przez grupę synchronizacji

Pamiętaj, że dane wyjściowe skryptu programu PowerShell są w notacji Routing międzydomenowy (CIDR) bez klas. Należy go przekonwertować na format adresu IP początkowego i końcowego przy użyciu polecenia Get-IPrangeStartEnd.ps1 w następujący sposób:

PS C:\> Get-IPrangeStartEnd -ip 52.229.17.93 -cidr 26
start        end
-----        ---
52.229.17.64 52.229.17.127

Możesz użyć tego dodatkowego skryptu programu PowerShell, aby przekonwertować wszystkie adresy IP z ciDR na format początkowy i końcowy adres IP.

PS C:\>foreach( $i in $sql.Properties.AddressPrefixes) {$ip,$cidr= $i.split('/') ; Get-IPrangeStartEnd -ip $ip -cidr $cidr;}
start          end
-----          ---
13.86.216.0    13.86.216.127
13.86.216.128  13.86.216.191
13.86.216.192  13.86.216.223

Teraz możesz dodać je jako odrębne reguły zapory, a następnie wyłączyć ustawienie Zezwalaj usługom i zasobom platformy Azure na dostęp do tego serwera.

Reguły zapory bazujące na adresach IP

Zapora oparta na adresach IP to funkcja serwera logicznego na platformie Azure, która uniemożliwia dostęp do serwera do momentu jawnego dodania adresów IP maszyn klienckich.

Reguły zapory sieci wirtualnej

Oprócz reguł adresów IP zapora serwera umożliwia definiowanie reguł sieci wirtualnej. Aby dowiedzieć się więcej, zobacz Punkty końcowe i reguły usługi dla sieci wirtualnej dla usługi Azure SQL Database.

Terminologia dotycząca sieci platformy Azure

Pamiętaj o następujących terminach dotyczących sieci platformy Azure podczas eksplorowania reguł zapory sieci wirtualnej

Sieć wirtualna: możesz mieć sieci wirtualne skojarzone z subskrypcją platformy Azure

Podsieć: sieć wirtualna zawiera podsieci. Wszystkie maszyny wirtualne platformy Azure przypisane do podsieci. Jedna podsieć może zawierać wiele maszyn wirtualnych lub innych węzłów obliczeniowych. Węzły obliczeniowe, które znajdują się poza siecią wirtualną, nie mogą uzyskać dostępu do sieci wirtualnej, chyba że skonfigurujesz zabezpieczenia, aby zezwolić na dostęp.

Punkt końcowy usługi dla sieci wirtualnej:punkt końcowy usługi sieci wirtualnej to podsieć, której wartości właściwości zawierają co najmniej jedną formalną nazwę typu usługi platformy Azure. W tym artykule interesuje nas nazwa typu Microsoft.Sql, która odwołuje się do usługi platformy Azure o nazwie SQL Database.

Reguła sieci wirtualnej: reguła sieci wirtualnej dla serwera jest podsiecią wymienioną na liście kontroli dostępu (ACL) serwera. Aby znajdować się w liście ACL bazy danych w usłudze SQL Database, podsieć musi zawierać nazwę typu Microsoft.Sql . Reguła sieci wirtualnej nakazuje serwerowi akceptowanie komunikacji z każdego węzła, który znajduje się w podsieci.

Adres IP a reguły zapory sieci wirtualnej

Zapora usługi Azure SQL Database umożliwia określenie zakresów adresów IP, z których komunikacja jest akceptowana w usłudze SQL Database. Takie podejście jest odpowiednie w przypadku stabilnych adresów IP spoza sieci prywatnej platformy Azure. Jednak maszyny wirtualne w sieci prywatnej platformy Azure są konfigurowane przy użyciu dynamicznych adresów IP. Dynamiczne adresy IP mogą ulec zmianie po ponownym uruchomieniu maszyny wirtualnej i z kolei unieważnić regułę zapory opartej na adresach IP. Byłoby to szaleństwo, aby określić dynamiczny adres IP w regule zapory w środowisku produkcyjnym.

To ograniczenie można obejść, uzyskując statyczny adres IP dla maszyny wirtualnej. Aby uzyskać szczegółowe informacje, zobacz Tworzenie maszyny wirtualnej ze statycznym publicznym adresem IP przy użyciu witryny Azure Portal. Jednak podejście statycznego adresu IP może stać się trudne do zarządzania i jest kosztowne po zakończeniu na dużą skalę.

Reguły sieci wirtualnej są łatwiejszą alternatywą do ustanowienia dostępu z określonej podsieci zawierającej maszyny wirtualne i zarządzania nim.

Uwaga

Nie można jeszcze mieć bazy danych SQL Database w podsieci. Jeśli serwer był węzłem w podsieci w sieci wirtualnej, wszystkie węzły w sieci wirtualnej mogą komunikować się z usługą SQL Database. W takim przypadku maszyny wirtualne mogą komunikować się z usługą SQL Database bez konieczności używania żadnych reguł sieci wirtualnej ani reguł adresów IP.

Usługa Private Link umożliwia nawiązywanie połączenia z serwerem za pośrednictwem prywatnego punktu końcowego. Prywatny punkt końcowy to prywatny adres IP w określonej sieci wirtualnej i podsieci .

Następne kroki