適用於 PostgreSQL 的 Azure 資料庫 的網路概觀 - 具有私人存取的彈性伺服器 (VNET 整合)

適用於:適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器

本文說明 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器的連線和網路概念。

當您建立 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器實例(彈性伺服器),您必須選擇下列其中一個網路選項:私人存取(VNet 整合)公用存取(允許的 IP 位址)和私人端點 本文件將說明 私人存取(VNet 整合) 網路選項。

私人存取 (VNet 整合)

您可以使用 VNET 插入,將彈性伺服器部署至 Azure 虛擬網路 (VNet)。 Azure 虛擬網路提供私人且安全的網路通訊。 虛擬網路中的資源可以透過 在此網路上指派的私人IP位址 進行通訊。

如果您想要下列功能,請選擇此網路選項:

  • 連線 使用私人IP位址,從相同虛擬網路中的 Azure 資源到彈性伺服器。
  • 使用 VPN 或 Azure ExpressRoute 從非 Azure 資源連線到彈性伺服器。
  • 請確定彈性伺服器沒有可透過因特網存取的公用端點。

Diagram that shows how peering works between virtual networks, one of which includes a flexible server.

在上圖中:

  • 彈性伺服器會插入 VNet-1 虛擬網路的子網 10.0.1.0/24。
  • 部署在相同虛擬網路內不同子網上的應用程式可以直接存取彈性伺服器。
  • 部署在不同的虛擬網路 (VNet-2) 上的應用程式無法直接存取彈性伺服器。 您必須先為私人 DNS 區域執行虛擬網路對等互連,才能存取彈性伺服器。

虛擬網路概念

Azure 虛擬網路包含專為您使用而設定的私人IP位址空間。 您的虛擬網路必須與彈性伺服器位於相同的 Azure 區域中。 若要深入瞭解虛擬網路,請參閱 Azure 虛擬網絡 概觀

當您使用資源與 PostgreSQL 彈性伺服器整合至 VNET 的虛擬網路時,以下是一些熟悉的概念:

  • 委派的子網。 虛擬網路包含子網(子網路)。 子網可讓您將虛擬網路分割成較小的位址空間。 Azure 資源會部署到虛擬網路內的特定子網。

    您的 VNET 整合式彈性伺服器必須位於委派子網中。 也就是說,只有 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器實例可以使用該子網。 委派的子網路中不可以有其他 Azure 資源類型。 您可以將子網的委派屬性指派為 Microsoft.DBforPostgreSQL/flexibleServers來委派子網。 您可以為子網指定的最小 CIDR 範圍是 /28,可提供十六個 IP 位址,但是任何網路或子網中的第一個和最後一個位址都無法指派給任何個別主機。 Azure 會保留五個 IP 可供 Azure 網路在內部使用,其中包括兩個無法指派給主機的 IP,如上所述。 這可讓您針對 /28 CIDR 範圍提供 11 個可用的 IP 位址,而具有高可用性功能的單一彈性伺服器會利用 4 個位址。 針對複寫和 Microsoft Entra 連線,請確定路由表不會影響流量。常見的模式是透過 Azure 防火牆 或自定義/內部部署網路篩選設備路由傳送所有輸出流量。 如果子網有與規則相關聯的路由表,將所有流量路由傳送至虛擬設備:

    • 使用目的地服務標籤 “AzureActiveDirectory” 和下一個躍點 “Internet” 新增規則
    • 新增與 PostgreSQL 子網範圍相同的目的地 IP 範圍和下一個躍點 「虛擬網絡」 的規則

    重要

    AzureFirewallManagementSubnetAzureBastionSubnetGatewaySubnet 的名稱AzureFirewallSubnet會保留於 Azure 內。 請勿使用上述任一項目作為子網名稱。 如需 Azure 儲存體 連線,請確定 PostgreSQL 委派的子網具有 VNet 區域中 Azure 儲存體 的服務端點。 端點預設會建立,但請小心不要手動移除這些端點。

  • 網路安全群組 (NSG) 。 NSG 中的安全性規則可讓您篩選可流入和流出虛擬網路子網和網路介面的網路流量類型。 如需詳細資訊,請參閱 NSG 概觀

    應用程式安全組 (ASG) 可讓您輕鬆地使用 NSG 進行一般網路控制第 4 層安全性。 您可快速地:

    • 將虛擬機加入 ASG,或從 ASG 移除虛擬機。
    • 動態將規則套用至這些虛擬機,或從這些虛擬機移除規則。

    如需詳細資訊,請參閱 ASG 概觀

    目前,我們不支援使用 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器作為 ASG 規則的一部分的 NSG。 我們目前建議在 NSG 中使用 以 IP 為基礎的來源或目的地篩選

    重要

    高可用性和其他 適用於 PostgreSQL 的 Azure 資料庫 功能 - 彈性伺服器需要能夠將流量傳送至 azure 虛擬網路子網內的目的地埠 5432,其中 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器已部署,以及用於記錄封存的 Azure 記憶體。 如果您建立網路安全組 (NSG) 來拒絕流量流向或流出 適用於 PostgreSQL 的 Azure 資料庫 - 其部署所在子網內的彈性伺服器,請務必允許流量傳送至子網內的目的地埠 5432,以及使用服務卷標 Azure 儲存體 作為目的地的 Azure 記憶體。 此外,如果您選擇使用 Microsoft Entra 驗證來驗證登入您的 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器,請使用 Microsoft Entra 服務標籤允許對 Microsoft Entra 識別符的輸出流量。 在跨 Azure 區域設定讀取複本時,適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器需要能夠同時將主要和複本的目的地埠 5432 以及主要和複本伺服器上的 Azure 記憶體傳送至目的地埠 5432。

  • 私用 DNS 區域整合。 Azure 私人 DNS 區域整合可讓您解析目前虛擬網路內的私人 DNS,或連結私人 DNS 區域的任何區域對等互連虛擬網路。

使用私人 DNS 區域

Azure 私用 DNS 為您的虛擬網路提供可靠且安全的 DNS 服務。 Azure 私用 DNS 管理及解析虛擬網路中的功能變數名稱,而不需要設定自定義 DNS 解決方案。

搭配 Azure 虛擬網路使用專用網存取時,必須提供私人 DNS 區域資訊,才能進行 DNS 解析。 若要使用專用網存取建立新的 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器,您必須使用私人 DNS 區域,同時設定具有私人存取權的彈性伺服器。 針對新的 適用於 PostgreSQL 的 Azure 資料庫 使用專用網存取與 API、ARM 或 Terraform 建立彈性伺服器,請建立私人 DNS 區域,並在設定具有私人存取權的彈性伺服器時使用這些區域。 請參閱 Microsoft Azure 的 REST API 規格詳細資訊。 如果您使用 Azure 入口網站 或 Azure CLI 來建立彈性伺服器,則可以提供您先前在相同或不同訂用帳戶中建立的私人 DNS 區域名稱,或在您的訂用帳戶中自動建立預設私人 DNS 區域。

如果您使用 Azure API、Azure Resource Manager 範本(ARM 範本)或 Terraform, 請建立以 結尾的私人 .postgres.database.azure.comDNS 區域。 在設定具有私人存取權的彈性伺服器時,請使用這些區域。 例如,使用 表單 [name1].[name2].postgres.database.azure.com[name].postgres.database.azure.com。 如果您選擇使用表單 [name].postgres.database.azure.com,則名稱 可以是您用於其中一部彈性伺服器的名稱,或布建期間會顯示錯誤訊息。 如需詳細資訊,請參閱 私人 DNS 區域概觀

使用 Azure 入口網站、API、CLI 或 ARM,您也可以將私人 DNS 區域從您在建立 適用於 PostgreSQL 的 Azure 資料庫 時所提供的 DNS 區域變更為另一個存在於相同或不同訂用帳戶的私人 DNS 區域。

重要

在建立 適用於 PostgreSQL 的 Azure 資料庫 時,能夠將私人 DNS 區域從您提供的 DNS 區域變更為另一個私人 DNS 區域,目前已針對已啟用高可用性功能的伺服器停用。

在 Azure 中建立私人 DNS 區域之後,您必須 將虛擬網路連結到 它。 鏈接之後,裝載在該虛擬網路中的資源即可存取私人 DNS 區域。

重要

我們不再驗證建立 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器的虛擬網路連結是否存在,並搭配專用網。 透過入口網站建立伺服器時,我們提供客戶選擇在伺服器建立時,透過 Azure 入口網站中的 [連結 私用 DNS 區域您的虛擬網路] 複選框建立連結。

DNS 私人區域可復原 區域中斷,因為區域數據是全域可用的。 私人區域中的資源記錄會自動跨區域複寫。 Azure 私用 DNS 是可用性區域基礎、區域重新取消服務。 如需詳細資訊,請參閱 具有可用性區域支援的 Azure 服務。

與自定義 DNS 伺服器整合

如果您使用自定義 DNS 伺服器,則必須使用 DNS 轉寄站來解析 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器的 FQDN。 轉寄站IP位址應該是 168.63.129.16

自定義 DNS 伺服器應該位於虛擬網路內,或可透過虛擬網路的 DNS 伺服器設定來連線。 若要深入瞭解,請參閱 使用您自己的 DNS 伺服器的名稱解析。

私用 DNS 區域和虛擬網路對等互連

私用 DNS 區域設定和虛擬網路對等互連彼此獨立。 如果您想要從位於相同區域或不同區域的另一個虛擬網路中布建的用戶端連線到彈性伺服器,您必須 將私人 DNS 區域與虛擬網路連結 。 如需詳細資訊,請參閱 連結虛擬網路

注意

只能連結結尾為 『postgres.database.azure.com』 的私人 DNS 區域名稱。 您的 DNS 區域名稱不能與您的彈性伺服器相同,否則名稱解析將會失敗。

若要將伺服器名稱對應至 DNS 記錄,您可以使用 Azure PowerShell 或 Bash 在 Azure Cloud Shell 中執行 nslookup 命令,在下列範例中取代伺服器的名稱作為 <server_name > 參數:

nslookup -debug <server_name>.postgres.database.azure.com | grep 'canonical name'

使用中樞和輪輻專用網設計

中樞和輪輻是熱門的網路模型,可有效率地管理常見的通訊或安全性需求。

中樞是一個虛擬網路,可作為管理外部連線的中央位置。 它也裝載多個工作負載所使用的服務。 中樞會協調所有進出輪輻的通訊。 IT 規則或程序等安全性功能,可以檢查、路由傳送和集中管理流量。 輪輻是裝載工作負載並透過虛擬網路對等互連來連線到中央中樞的虛擬網路。 共用服務裝載在自己的子網中,以便與輪輻共用。 周邊子網接著會作為安全性設備。

輪輻也是 Azure 中用來隔離個別工作負載的虛擬網路。 內部部署總部與 Azure 之間的流量會透過 ExpressRoute 或站對站 VPN 連線,連線到中樞虛擬網路。 從輪輻到中樞的虛擬網路是對等互連的,且允許與內部部署資源進行通訊。 您可以在不同訂用帳戶或資源群組中,實作中樞和每個輪輻。

將輪輻虛擬網路彼此連線的主要模式有三種:

  • 輪輻彼此直接連線。 虛擬網路對等互連或 VPN 通道會在輪輻虛擬網路之間建立,以提供直接連線,而不需要周遊中樞虛擬網路。
  • 輪輻會透過網路設備 進行通訊。 每個輪輻虛擬網路都有虛擬 WAN 或中樞虛擬網路的對等互連。 設備會將流量從輪輻路由傳送到輪輻。 設備可由 Microsoft 管理(如同虛擬 WAN),或由您管理。
  • 虛擬網絡連結至中樞網路的閘道,並使用使用者定義的路由(UDR) 來啟用輪輻之間的通訊。

Diagram that shows basic hub and spoke architecture with hybrid connectivity via Express Hub.

使用 Azure 虛擬網絡 Manager (AVNM) 建立新的中樞和輪輻虛擬網路拓撲,以集中管理連線和安全性控制。

使用私人網路跨 Azure 區域和虛擬網路進行複寫

資料庫複寫是將資料從中央或主伺服器複製到多個稱為複本的伺服器的程式。 主伺服器接受讀取和寫入作業,而複本則提供唯讀交易。 主伺服器和複本會共同形成資料庫叢集。資料庫複寫的目標是確保資料的備援、一致性、高可用性和協助工具,特別是在高流量、任務關鍵性應用程式中。

適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器提供兩種複寫方法:實體 (亦即串流)透過 內建的讀取複本功能和 邏輯複 寫。 這兩者都非常適合不同的使用案例,而且使用者可能會根據最終目標來選擇一個。

跨 Azure 區域複寫,每個區域中都有個別 的虛擬網路(VNET) ,需要跨區域虛擬網路界限的連線能力, 這些界限 可以透過 虛擬網路對等互連 或透過網路設備 在中樞和輪輻架構 提供。

根據預設 ,DNS 名稱解析 的範圍是 虛擬網路 。 這表示某個虛擬網路中的任何用戶端 (VNET1) 無法解析另一個虛擬網路中的彈性伺服器 FQDN (VNET2)

若要解決此問題,您必須確定 VNET1 中的用戶端可以存取彈性伺服器私用 DNS區域。 將虛擬網路連結 新增 至彈性伺服器實例的 私用 DNS 區域,即可達成此目的。

不支援的虛擬網路案例

以下是使用透過 VNET 整合建立的虛擬網路的一些限制:

重要

Azure Resource Manager 支援鎖定 資源作為安全性控制的能力。 資源鎖定會套用至資源,而且適用于所有使用者和角色。 資源鎖定有兩種類型: CanNotDelete ReadOnly 。 這些鎖定類型可以套用至私用 DNS區域或個別記錄集。 對私用 DNS區域或個別記錄集套用類型的鎖定可能會干擾適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器服務更新 DNS 記錄 ,並在 DNS 上的重要作業期間造成問題,例如從主要容錯移轉到次要的高可用性容錯移轉。 基於這些原因,請確定您在 使用高可用性功能搭配 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器時,不會 使用 DNS 私人區域或記錄鎖定。

主機名稱

無論您選擇的網路選項為何,建議您在連線到彈性伺服器時,一律使用 FQDN 作為主機名稱。 伺服器的 IP 位址不保證保持靜態。 使用 FQDN 可協助您避免變更連接字串。

使用 FQDN 做為主機名稱的範例為 hostname = servername.postgres.database.azure.com 。 可能的話,請避免使用 hostname = 10.0.0.4 (私人位址) 或 hostname = 40.2.45.67 (公用位址)。

下一步

  • 瞭解如何使用 Azure 入口網站 Azure CLI 中的 [私人存取][VNet 整合] 選項來建立彈性伺服器。