Azure 私人 DNS 會為虛擬網路提供安全可靠的 DNS 服務。 Azure 私用 DNS 管理及解析虛擬網路中的功能變數名稱,而不需要設定自定義 DNS 解決方案。
當您部署具有私人存取網路功能(VNET 整合)模式的 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器時,您必須提供必須執行 DNS 解析的私人 DNS 區域。 對於使用私人網路存取建立新的適用於 PostgreSQL 的 Azure 資料庫彈性伺服器,在設定具有私人存取的適用於 PostgreSQL 的 Azure 資料庫彈性伺服器時需要使用私人 DNS 區域。
在現有的伺服器上,您可以將私人 DNS 區域從您在建立伺服器期間提供的 DNS 區域變更為已經存在的另一個區域,而且該區域可以位於您有權存取之任何訂用帳戶的任何資源群組上。
使用 Azure 入口網站:
選取您的 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器。
在資源功能表中,選取 [概觀]。
伺服器的狀態必須為 [可用],才能啟用 [ 網络 ] 功能表選項。
如果伺服器的狀態無法使用,則會停用 [網络] 選項。
注意
任何嘗試設定狀態不是可用之伺服器的網路設定,都會失敗並出現錯誤。
在資源功能表中,選取 [網络]。
使用私人存取部署的伺服器,唯一與 網路相關的可修改設定(VNET 整合) 是伺服器整合所在的私人 DNS 區域。 若要變更它,請在 [私用 DNS 整合] 區段中,展開 [訂用帳戶] 和 [私用 DNS 區域] 下拉式方塊,以選取您要在其中整合伺服器的現有私人 DNS 區域。
如果選取的私人 DNS 區域未連結至插入伺服器所在的虛擬網路,您可以看到 [ 將私人 DNS 區域連結至虛擬網路 ] 複選框。 默認會選取它,這表示選取的私人 DNS 區域將會連結至您伺服器的虛擬網路。 藉由清除複選框,您決定不要將該私人 DNS 區域連結到您伺服器的虛擬網路。 因此,該虛擬網路中沒有任何主機無法使用伺服器在該私人區域中保存的 A 記錄解析伺服器名稱。
注意
如果您選取 [ 將私人 DNS 區域連結至虛擬網路]
選取儲存。
通知會通知您正在套用變更。
此外,伺服器的狀態會變更為 [更新]。
當程式完成時,通知會通知您已套用變更。
此外,伺服器的狀態會變更為 [可用]。
您可以透過 az postgres flexible-server update 命令,變更與伺服器相關聯的私人 DNS 區域。
privateZoneId=$(az network private-dns zone show --resource-group <private_dns_zone_resource_group> --name <private_dns_zone> --query id --output tsv)
az postgres flexible-server update --resource-group <server_resource_group> --name <server> --private-dns-zone $privateZoneId
如果您要將私人 DNS 區域連結至伺服器的虛擬網路,請執行下列命令:
# Obtain the delegated subnet in which your server is integrated
subnetId=$(az postgres flexible-server show --resource-group <server_resource_group> --name <server> --query network.delegatedSubnetResourceId --output tsv)
# Trim the subnet part, to end up having the identifier of the virtual network
virtualNetworkId=$(echo $subnetId | sed 's/\/subnets.*//')
virtualNetworkName=$(echo $subnetId | sed -n 's|.*/virtualNetworks/\(.*\)/subnets/.*|\1|p')
# Link the private DNS zone to the virtual network
az network private-dns link vnet create --resource-group <private_dns_zone_resource_group> --zone-name <private_dns_zone> --virtual-network $virtualNetworkId --registration-enabled false --name $virtualNetworkName
相關內容