教學課程:使用 Azure CLI 透過 Azure 私人端點連線到 Azure SQL 伺服器
Azure 私人端點是 Azure 中私人連結的基本建置組塊。 其可讓 Azure 資源 (例如虛擬機器 (VM)) 與私人連結資源進行私密通訊。
在本教學課程中,您會了解如何:
- 建立虛擬網路和堡壘主機。
- 建立虛擬機器。
- 建立 Azure SQL 伺服器和私人端點。
- 測試 SQL 伺服器私人端點的連線能力。
必要條件
- 具有有效訂用帳戶的 Azure 帳戶。 免費建立帳戶。
- 登入 Azure 入口網站,並執行
az login
檢查您的訂用帳戶是否有效。 - 執行
az --version
,在終端機或命令視窗中檢查您的 Azure CLI 版本。 如需最新版本,請參閱最新版本資訊。- 如果您沒有最新版本,請遵循適用於您作業系統或平台的安裝指南,更新您的安裝。
建立資源群組
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
注意
無論是未獲指派公用 IP 位址的 VM,或位於內部基本 Azure 負載平衡器後端集區的 VM,Azure 都會為其提供預設輸出存取 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 伺服器。
登入 Azure 入口網站。
在左側瀏覽窗格中,選取 [資源群組]。
選取 CreateSQLEndpointTutorial-rg。
選取 [myVM]。
在 [myVM] 的 [概觀] 頁面上,選取 [連線],然後選取 [堡壘]。
選取藍色的 [使用堡壘] 按鈕。
輸入您在虛擬機器建立期間輸入的使用者名稱與密碼。
連線之後,在伺服器上開啟 Windows PowerShell。
輸入
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 位址。 此位址位於您先前建立之虛擬網路的子網路內。
在 myVM上安裝 SQL Server Management Studio。
開啟 [SQL Server Management Studio] 。
在 [連線至伺服器] 中,輸入或選取這項資訊:
設定 值 伺服器類型 選取 [資料庫引擎]。 伺服器名稱 輸入 <sql-server-name>.database.windows.net 驗證 選取 [SQL Server 驗證]。 使用者名稱 輸入您在伺服器建立期間輸入的使用者名稱 密碼 輸入您在建立伺服器時輸入的密碼 記住密碼 選取 [是]。 選取 Connect。
瀏覽左側功能表中的資料庫。
(選擇性) 從 mysqldatabase 建立或查詢資訊。
關閉與 myVM 的 Bastion 連線。
清除資源
在私人端點、SQL Server 和 VM 使用完畢後,請刪除資源群組及其包含的所有資源:
az group delete \
--name CreateSQLEndpointTutorial-rg
下一步
您已在本教學課程中建立:
- 建立虛擬網路和堡壘主機。
- 虛擬機器。
- 具有私人端點的 Azure SQL 伺服器。
您已使用虛擬機器在私人端點上安全地測試與 SQL 伺服器的連線。
下一個步驟中,您可能也會想了解與 Azure SQL 資料庫之間具有私人連線能力的 Web 應用程式架構案例,可將虛擬網路外部的 Web 應用程式連線到資料庫的私人端點。