Share via


教學課程:使用 Azure CLI 透過 Azure 私人端點連線到 Azure SQL 伺服器

Azure 私人端點是 Azure 中私人連結的基本建置組塊。 其可讓 Azure 資源 (例如虛擬機器 (VM)) 與私人連結資源進行私密通訊。

私人端點快速入門中建立的資源圖表。

在本教學課程中,您會了解如何:

  • 建立虛擬網路和堡壘主機。
  • 建立虛擬機器。
  • 建立 Azure SQL 伺服器和私人端點。
  • 測試 SQL 伺服器私人端點的連線能力。

必要條件

建立資源群組

Azure 資源群組是在其中部署與管理 Azure 資源的邏輯容器。

使用 az group create 來建立資源群組:

  • 具名的 CreateSQLEndpointTutorial-rg
  • eastus 位置中。
az group create \
    --name CreateSQLEndpointTutorial-rg \
    --location eastus

建立虛擬網路和堡壘主機

在本節中,您會建立虛擬網路、子網路和堡壘主機。

堡壘主機將用來安全地連線到虛擬機器,以測試私人端點。

使用 az network vnet create 建立虛擬網路

  • 具名 myVNet
  • 位址前置詞 10.0.0.0/16
  • 名為 MyBackendSubnet 的子網路。
  • 子網路前置詞 10.0.0.0/24
  • CreateSQLEndpointTutorial-rg 資源群組中。
  • eastus 的位置。
az network vnet create \
    --resource-group CreateSQLEndpointTutorial-rg\
    --location eastus \
    --name myVNet \
    --address-prefixes 10.0.0.0/16 \
    --subnet-name myBackendSubnet \
    --subnet-prefixes 10.0.0.0/24

使用 az network vnet subnet update,更新子網路以停用私人端點的私人端點網路原則:

az network vnet subnet update \
    --name myBackendSubnet \
    --resource-group CreateSQLEndpointTutorial-rg \
    --vnet-name myVNet \
    --disable-private-endpoint-network-policies true

使用 az network public-ip create 建立堡壘主機的公用 IP 位址:

  • 建立名為 myBastionIP 的標準區域備援公用 IP 位址。
  • CreateSQLEndpointTutorial-rg 中。
az network public-ip create \
    --resource-group CreateSQLEndpointTutorial-rg \
    --name myBastionIP \
    --sku Standard

使用 az network vnet subnet create 建立 Bastion 子網路:

  • 命名為 AzureBastionSubnet
  • 位址前置詞 10.0.1.0/24
  • 在虛擬網路 MyVNet 中。
  • 在資源群組 CreateSQLEndpointTutorial-rg 中。
az network vnet subnet create \
    --resource-group CreateSQLEndpointTutorial-rg \
    --name AzureBastionSubnet \
    --vnet-name myVNet \
    --address-prefixes 10.0.1.0/24

使用 az network bastion create 建立堡壘主機:

  • 命名為 myBastionHost
  • CreateSQLEndpointTutorial-rg 中。
  • 與公用 IP myBastionIP 相關聯。
  • 與虛擬網路 myVNet 相關聯。
  • eastus 位置中。
az network bastion create \
    --resource-group CreateSQLEndpointTutorial-rg \
    --name myBastionHost \
    --public-ip-address myBastionIP \
    --vnet-name myVNet \
    --location eastus

部署 Azure Bastion 主機需要幾分鐘的時間。

建立測試虛擬機器

在本節中,您將建立將用來測試私人端點的虛擬機器。

使用 az vm create 建立 VM。 出現提示時,請提供密碼以作為 VM 的認證:

  • 具名的 myVM
  • CreateSQLEndpointTutorial-rg 中。
  • 在虛擬網路 myVNet 中。
  • 在子網路 MyBackendSubnet 中。
  • 伺服器映像 Win2019Datacenter
az vm create \
    --resource-group CreateSQLEndpointTutorial-rg \
    --name myVM \
    --image Win2019Datacenter \
    --public-ip-address "" \
    --vnet-name myVNet \
    --subnet myBackendSubnet \
    --admin-username azureuser

注意

Azure 會針對未獲指派公用 IP 位址或位於內部基本 Azure 負載平衡器後端集區中的 VM,提供預設輸出存取 IP。 預設輸出存取 IP 機制能提供無法自行設定的輸出 IP 位址。

發生下列其中一個事件時,會停用預設輸出存取 IP:

  • 系統會指派公用 IP 位址給 VM。
  • 無論有沒有輸出規則,都會將 VM 放在標準負載平衡器的後端集區中。
  • Azure NAT 閘道資源會指派給 VM 的子網。

在彈性協調流程模式中使用虛擬機器擴展集建立的 VM 不會有預設輸出存取。

如需 Azure 中輸出連線的詳細資訊,請參閱 Azure 中的預設對外存取針對輸出連線,使用來源網路位址轉譯 (SNAT)

建立 Azure SQL Server

在本節中,您將會建立 SQL Server 和資料庫。

使用 az sql server create 建立 SQL server:

  • 以您唯一的伺服器名稱取代 <sql-server-name>
  • 以您的密碼取代 <your-password>
  • CreateSQLEndpointTutorial-rg 中。
  • eastus 區域中。
az sql server create \
    --name <sql-server-name> \
    --resource-group CreateSQLEndpointTutorial-rg \
    --location eastus \
    --admin-user sqladmin \
    --admin-password <your-password>

使用 az sql db create 建立資料庫:

  • 具名的 myDataBase
  • CreateSQLEndpointTutorial-rg 中。
  • 以您唯一的伺服器名稱取代 <sql-server-name>
az sql db create \
    --resource-group CreateSQLEndpointTutorial-rg  \
    --server <sql-server-name> \
    --name myDataBase \
    --sample-name AdventureWorksLT

建立私人端點

在本節中,您會建立私人端點。

使用 az sql server list 將 SQL server 的資源識別碼放入殼層變數中。

使用 az network private-endpoint create立 建立端點和連線:

  • 具名的 myPrivateEndpoint
  • 在資源群組 CreateSQLEndpointTutorial-rg 中。
  • 在虛擬網路 MyVNet 中。
  • 在子網路 MyBackendSubnet 中。
  • 名為 myConnection 的連線。
id=$(az sql server list \
    --resource-group CreateSQLEndpointTutorial-rg \
    --query '[].[id]' \
    --output tsv)

az network private-endpoint create \
    --name myPrivateEndpoint \
    --resource-group CreateSQLEndpointTutorial-rg \
    --vnet-name myVNet --subnet myBackendSubnet \
    --private-connection-resource-id $id \
    --group-ids sqlServer \
    --connection-name myConnection  

設定私人 DNS 區域

在本節中,您會使用 az network private-dns zone create建立和設定私人 DNS 區域。

您將使用 az network private-dns link vnet create 建立 DNS 區域的虛擬網路連結。

您將會使用 az network private-endpoint dns-zone-group create建立 DNS 區域群組。

  • 名為 privatelink.database.windows.net 的區域
  • 在虛擬網路 MyVNet 中。
  • 在資源群組 CreateSQLEndpointTutorial-rg 中。
  • 名為 myDNSLink的 DNS 連結。
  • myPrivateEndpoint 相關聯。
  • 名為 MyZoneGroup 的區域群組。
az network private-dns zone create \
    --resource-group CreateSQLEndpointTutorial-rg \
    --name "privatelink.database.windows.net"

az network private-dns link vnet create \
    --resource-group CreateSQLEndpointTutorial-rg \
    --zone-name "privatelink.database.windows.net" \
    --name MyDNSLink \
    --virtual-network myVNet \
    --registration-enabled false

az network private-endpoint dns-zone-group create \
   --resource-group CreateSQLEndpointTutorial-rg \
   --endpoint-name myPrivateEndpoint \
   --name MyZoneGroup \
   --private-dns-zone "privatelink.database.windows.net" \
   --zone-name sql

測試對私人端點的連線能力

在本節中,您將使用您在上一個步驟中建立的虛擬機器,連線到私人端點上的 SQL 伺服器。

  1. 登入 Azure 入口網站

  2. 在左側瀏覽窗格中,選取 [資源群組]

  3. 選取 CreateSQLEndpointTutorial-rg

  4. 選取 [myVM]

  5. 在 [myVM] 的 [概觀] 頁面上,選取 [連線],然後選取 [堡壘]

  6. 選取藍色的 [使用堡壘] 按鈕。

  7. 輸入您在虛擬機器建立期間輸入的使用者名稱與密碼。

  8. 連線之後,在伺服器上開啟 Windows PowerShell。

  9. 輸入 nslookup <sqlserver-name>.database.windows.net。 以您在先前步驟中建立的 SQL 伺服器名稱取代 <sqlserver-name>。 您將收到類似下列所示的訊息:

    Server:  UnKnown
    Address:  168.63.129.16
    
    Non-authoritative answer:
    Name:    mysqlserver8675.privatelink.database.windows.net
    Address:  10.0.0.5
    Aliases:  mysqlserver8675.database.windows.net
    

    會針對 SQL 伺服器名稱傳回 10.0.0.5 的私人 IP 位址。 此位址位於您先前建立之虛擬網路的子網路內。

  10. myVM上安裝 SQL Server Management Studio

  11. 開啟 [SQL Server Management Studio] 。

  12. 在 [連線至伺服器] 中,輸入或選取這項資訊:

    設定
    伺服器類型 選取 [資料庫引擎]。
    伺服器名稱 輸入 <sql-server-name>.database.windows.net
    驗證 選取 [SQL Server 驗證]
    使用者名稱 輸入您在伺服器建立期間輸入的使用者名稱
    密碼 輸入您在建立伺服器時輸入的密碼
    記住密碼 選取 [是]
  13. 選取 Connect

  14. 瀏覽左側功能表中的資料庫。

  15. (選擇性) 從 mysqldatabase 建立或查詢資訊。

  16. 關閉與 myVM 的 Bastion 連線。

清除資源

在私人端點、SQL Server 和 VM 使用完畢後,請刪除資源群組及其包含的所有資源:

az group delete \
    --name CreateSQLEndpointTutorial-rg

下一步

您已在本教學課程中建立:

  • 建立虛擬網路和堡壘主機。
  • 虛擬機器。
  • 具有私人端點的 Azure SQL 伺服器。

您已使用虛擬機器在私人端點上安全地測試與 SQL 伺服器的連線。

下一個步驟中,您可能也會想了解與 Azure SQL 資料庫之間具有私人連線能力的 Web 應用程式架構案例,可將虛擬網路外部的 Web 應用程式連線到資料庫的私人端點。