使用 CLI,為適用於 MariaDB 的 Azure 資料庫建立及管理 Private Link
重要
適用於 MariaDB 的 Azure 資料庫位於淘汰路徑上。 強烈建議您移轉至適用於 MySQL 的 Azure 資料庫。 如需移轉至適用於 MySQL 的 Azure 資料庫的詳細資訊,請參閱適用於 MariaDB 的 Azure 資料庫會發生什麼事?(部份機器翻譯)。
私人端點是 Azure 中私人連結的基本要素。 其可讓 Azure 資源 (例如虛擬機器 (VM)) 與私人連結資源進行私密通訊。 在本文中,您將了解如何使用 Azure CLI 在 Azure 虛擬網路中建立 VM,以及建立具有 Azure 私人端點的適用於 MariaDB 的 Azure 資料庫伺服器。
注意
私人連結功能僅適用於一般用途或記憶體最佳化定價層的適用於 MariaDB 的 Azure 資料庫伺服器。 請確定資料庫伺服器位於下列其中一個定價層。
如果您沒有 Azure 訂閱,請在開始之前,先建立 Azure 免費帳戶。
必要條件
在 Azure Cloud Shell 中使用 Bash 環境。 如需詳細資訊,請參閱 Azure Cloud Shell 中的 Bash 快速入門。
若要在本地執行 CLI 參考命令,請安裝 Azure CLI。 若您在 Windows 或 macOS 上執行,請考慮在 Docker 容器中執行 Azure CLI。 如需詳細資訊,請參閱〈如何在 Docker 容器中執行 Azure CLI〉。
如果您使用的是本機安裝,請使用 az login 命令,透過 Azure CLI 來登入。 請遵循您終端機上顯示的步驟,完成驗證程序。 如需其他登入選項,請參閱使用 Azure CLI 登入。
出現提示時,請在第一次使用時安裝 Azure CLI 延伸模組。 如需擴充功能詳細資訊,請參閱使用 Azure CLI 擴充功能。
執行 az version 以尋找已安裝的版本和相依程式庫。 若要升級至最新版本,請執行 az upgrade。
- 本文需要 2.0.28 版或更新版本的 Azure CLI。 如果您是使用 Azure Cloud Shell,就已安裝最新版本。
建立資源群組
建立任何資源之前,您必須先建立資源群組來裝載虛擬網路。 使用 az group create 來建立資源群組。 下列範例會在 westeurope 位置建立名為 myResourceGroup 的資源群組:
az group create --name myResourceGroup --location westeurope
建立虛擬網路
使用 az network vnet create 建立虛擬網路。 此範例會建立一個名為 myVirtualNetwork 的預設虛擬網路,其中含有一個名為 mySubnet 的子網路:
az network vnet create \
--name myVirtualNetwork \
--resource-group myResourceGroup \
--subnet-name mySubnet
停用子網路的私人端點原則
Azure 會將資源部署到虛擬網路內的子網路,因此您必須建立或更新子網路,以停用私人端點網路原則。 使用 az network vnet subnet update 來更新名為 mySubnet 的子網路設定:
az network vnet subnet update \
--name mySubnet \
--resource-group myResourceGroup \
--vnet-name myVirtualNetwork \
--disable-private-endpoint-network-policies true
建立 VM
使用 az vm create 建立虛擬機器。 出現提示時,請提供密碼以作為 VM 的登入認證。 此範例會建立名為 myVm 的 VM:
az vm create \
--resource-group myResourceGroup \
--name myVm \
--image Win2019Datacenter
請記下 VM 的公用 IP 位址。 在下一個步驟中,您將使用此位址來從網際網路連線至 VM。
建立適用於 MariaDB 的 Azure 資料庫伺服器
使用 az mariadb server create 命令來建立適用於 MariaDB 的 Azure 資料庫。 請記住,您的 MariaDB 伺服器名稱在整個 Azure 中必須是唯一的,因此請以您自己的唯一值取代括弧中的預留位置值:
# Create a server in the resource group
az mariadb server create \
--name mydemoserver \
--resource-group myResourcegroup \
--location westeurope \
--admin-user mylogin \
--admin-password <server_admin_password> \
--sku-name GP_Gen5_2
注意
在某些案例中,適用於 MariaDB 的 Azure 資料庫和 VNet 子網路是位於不同的訂用帳戶。 在這些情況下,您必須確保下列設定:
- 請確定這兩個訂用帳戶都已註冊 Microsoft.DBforMariaDB 資源提供者。 如需詳細資訊,請參閱 resource-manager-registration
建立私人端點
在您的虛擬網路中建立 MariaDB 伺服器的私人端點:
az network private-endpoint create \
--name myPrivateEndpoint \
--resource-group myResourceGroup \
--vnet-name myVirtualNetwork \
--subnet mySubnet \
--private-connection-resource-id $(az resource show -g myResourcegroup -n mydemoserver --resource-type "Microsoft.DBforMariaDB/servers" --query "id" -o tsv) \
--group-id mariadbServer \
--connection-name myConnection
設定私人 DNS 區域
建立適用於 MariaDB 伺服器網域的私人 DNS 區域,然後建立與虛擬網路關聯的連結。
az network private-dns zone create --resource-group myResourceGroup \
--name "privatelink.mariadb.database.azure.com"
az network private-dns link vnet create --resource-group myResourceGroup \
--zone-name "privatelink.mariadb.database.azure.com"\
--name MyDNSLink \
--virtual-network myVirtualNetwork \
--registration-enabled false
#Query for the network interface ID
networkInterfaceId=$(az network private-endpoint show --name myPrivateEndpoint --resource-group myResourceGroup --query 'networkInterfaces[0].id' -o tsv)
az resource show --ids $networkInterfaceId --api-version 2019-04-01 -o json
# Copy the content for privateIPAddress and FQDN matching the Azure database for MariaDB name
#Create DNS records
az network private-dns record-set a create --name mydemoserver --zone-name privatelink.mariadb.database.azure.com --resource-group myResourceGroup
az network private-dns record-set a add-record --record-set-name mydemoserver --zone-name privatelink.mariadb.database.azure.com --resource-group myResourceGroup -a <Private IP Address>
注意
客戶 DNS 設定中的 FQDN 無法解析為已設定的私人 IP。 對於已設定的 FQDN,您必須設定 DNS 區域,如此處所示。
從網際網路連線至 VM
從網際網路連線至 VM:myVm,如下所示:
在入口網站的搜尋列中,輸入 myVm。
選取 [連線] 按鈕。 選取 [連線] 按鈕之後,隨即會開啟 [連線至虛擬機器]。
選取 [下載 RDP 檔案]。 Azure 會建立一個「遠端桌面通訊協定」(.rdp) 檔案,並下載至您的電腦。
開啟 downloaded.rdp 檔案。
如果出現提示,請選取 [連接]。
輸入在建立 VM 時所指定的使用者名稱與密碼。
注意
您可能需要選取 [其他選擇]>[使用不同的帳戶],以指定您在建立 VM 時輸入的認證。
選取 [確定]。
您可能會在登入程序期間收到憑證警告。 如果您收到憑證警告,請選取 [是] 或 [繼續]。
當 VM 桌面出現之後,將它最小化以回到您的本機桌面。
從 VM 私人存取 MariaDB 伺服器
在 myVm 的遠端桌面中,開啟 PowerShell。
輸入
nslookup mydemoserver.privatelink.mariadb.database.azure.com
。您將收到如下訊息:
Server: UnKnown Address: 168.63.129.16 Non-authoritative answer: Name: mydemoserver.privatelink.mariadb.database.azure.com Address: 10.1.3.4
使用任何可用的用戶端來測試 MariaDB 伺服器的私人連結連線。 在下列範例中,我已使用 MySQL Workbench 執行此作業。
在 [新增連線] 中,輸入或選取這項資訊:
設定 值 連線名稱 選取您所選擇的連線名稱。 主機名稱 選取 mydemoserver.privatelink.mariadb.database.azure.com 使用者名稱 在 MariaDB 伺服器建立期間所提供的使用者名稱以 username@servername 形式輸入。 密碼 輸入在建立 MariaDB 伺服器期間提供的密碼。 選取 [測試連線] 或 [確定]。
(選擇性地) 從左側功能表瀏覽資料庫,以及從 MariaDB 資料庫建立或查詢資訊
關閉對 myVm 的遠端桌面連線。
清除資源
您可以使用 az group delete 來移除不再需要的資源群組,以及其所具有的所有資源:
az group delete --name myResourceGroup --yes
下一步
深入了解什麼是 Azure 私人端點