Azure Private Link 讓你能為 適用於 PostgreSQL 的 Azure 資料庫 靈活伺服器建立私人端點,將伺服器帶入你的虛擬網路。 這項功能是 虛擬網路整合所提供的網路功能建議替代方案。
透過使用 Private Link,虛擬網路與服務之間的流量會透過 Microsoft 骨幹網路傳輸。 您不再需要將服務公開給公用網際網路。 您可以在虛擬網路中建立自己的 Private Link 服務,並提供給客戶。 在 Azure PaaS 服務、客戶擁有的服務和共用合作夥伴服務中,使用私人連結的設定和取用都是一致的。
兩種 Azure 資源類型會向使用者揭露 Private Link:
- 私人端點 (Microsoft.Network/PrivateEndpoints)
- 私人連結服務 (Microsoft.Network/PrivateLinkServices)
私人終端節點
私有端點會為資源新增網路介面,賦予其從虛擬網路分配的私有 IP 位址。 應用後,你可以透過虛擬網路與此資源獨家溝通。 有關支援 Private Link 功能的 PaaS 服務清單,請參閱 Private Link 文件。 私人端點是特定虛擬網路和子網路內的私人 IP 位址。
多個虛擬網路或子網中的私有端點,即使它們有重疊的位址空間,也可能參考相同的公共服務。
Private Link 的主要優點
私人連結提供下列優勢:
- 私密存取 Azure 平台上的服務:透過私有端點連接虛擬網路,連接所有可用作 Azure 應用元件的服務。 服務提供者可以在自己的虛擬網路中提供其服務。 取用者可在其本機虛擬網路存取這些服務。 Private Link 平台會透過 Azure 骨幹網路處理取用者與服務之間的連線。
- 內部部署和對等互連網路:使用私人端點,從內部部署透過 Azure ExpressRoute 私人對等互連、虛擬私人網路 (VPN) 通道和對等互連虛擬網路,存取 Azure 中執行的服務。 您不需要設定 ExpressRoute Microsoft 對等互連或周遊網際網路,即可連線到服務。 Private Link 提供將工作負載移轉至 Azure 的安全方式。
- 防範資料外洩: 私有端點會映射到某個 PaaS 資源的實例,而非整個服務。 取用者只能連線至特定資源。 對服務中的任何其他資源進行存取都會遭到封鎖。 此機制可防止資料外洩風險。
- 全球覆蓋範圍:私密連接其他地區運行的服務:消費者的虛擬網路可以位於區域 A。它可以連接到區域 B 的 Private Link 後方的服務。
適用於 PostgreSQL 的 Azure 資料庫之 Private Link 使用案例
用戶端可透過以下各項連線至私人端點:
- 相同的虛擬網路。
- 同一區域或跨區域的對等互連虛擬網路。
- 跨區域的網路對網路連線。
用戶端也可以使用 ExpressRoute、私人對等互連或 VPN 通道從內部部署環境連線。 下列簡化圖表顯示了常見的使用案例。
Private Link 支援的功能
這裡有一個跨功能可用性矩陣,適用於 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器中私有端點。
| 特徵 / 功能 | Availability | 註釋 |
|---|---|---|
| 高可用性 | Yes | 依照設計的方式運作。 |
| 讀取複本 | Yes | 依照設計的方式運作。 |
| 使用虛擬端點來讀取複本 | Yes | 依照設計的方式運作。 |
| 時間點還原 | Yes | 依照設計的方式運作。 |
| 同時允許使用防火牆規則的公用/網際網路存取 | Yes | 依照設計的方式運作。 |
| 主要版本升級 | Yes | 依照設計的方式運作。 |
| Microsoft Entra 驗證 | Yes | 依照設計的方式運作。 |
| 與 PGBouncer 的連線集區 | Yes | 依照設計的方式運作。 |
| 私人端點 DNS | Yes | 可依設計及記載方式運作。 |
| 使用客戶管理的金鑰進行加密 | Yes | 依照設計的方式運作。 |
只能為在 適用於 PostgreSQL 的 Azure 資料庫 開始支援 Private Link 之後建立的伺服器設定私人端點。 你必須設定網路模式不要使用虛擬網路整合,而是使用公共存取。
如果你設定網路模式不使用虛擬網路整合而使用公開存取,你就無法為該日期之前建立的伺服器設定私有端點。 使用虛擬網路整合建立的伺服器目前不支援使用私人端點。
從對等互連虛擬網路中的 Azure VM 進行連線
設定 虛擬網路對等互連,以建立從對等互連的虛擬網路中的 Azure 虛擬機器 (VM) 連線至適用於 PostgreSQL 的 Azure 資料庫彈性伺服器的連線能力。
從網路對網路環境中的 Azure VM 連線
設定網路對網路 VPN 閘道連線,以便從位於不同區域或訂閱中的 Azure VM 建立與 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器的連線。
透過 VPN 從本地環境連線
若要從本地環境連接到 適用於 PostgreSQL 的 Azure 資料庫 靈活伺服器,請選擇並實作以下選項之一:
網路安全性與私人連結
使用私有端點時,流量會被保護到 私有連結資源。 該平台會驗證網路連線,僅允許連線到達指定的私有連結資源。 要在同一 Azure 服務中存取更多子資源,你需要更多私有端點和對應的目標。 例如,對於 Azure 儲存體,你需要獨立的私有端點來存取檔案和 blob 子資源。
私人端點會為 Azure 服務提供私人可存取的 IP 位址,但不一定會限制其公用網路存取。 其他所有 Azure 服務都需要另一個存取控制。 這些控制措施為您的資源提供額外的網路安全層,幫助防止存取與私有連結資源相關的 Azure 服務。
私人端點支援網路原則。 網路原則可支援網路安全性群 (NSG)、使用者定義路由 (UDR) 和應用程式安全性群組 (ASG)。 如需為私人端點啟用網路原則的詳細資訊,請參閱<管理私人端點的網路原則>(機器翻譯)。 若要搭配私人端點使用 ASG,請參閱《使用私人端點設定應用程式安全性群組》。
私人連結與 DNS
當您使用私人端點時,您必須連線至相同的 Azure 服務,但使用私人端點 IP 位址。 私有端點連線需要獨立的網域名稱系統(DNS)設定,才能將私有 IP 位址解析為資源名稱。
私用 DNS 區域在虛擬網路內提供網域名稱解析,而不需要自訂 DNS 解決方案。 您可將私人 DNS 區域連結至每個虛擬網路,以向該網路提供 DNS 服務。
私人 DNS 區域會針對每項 Azure 服務提供個別 DNS 區域名稱。 例如,如果您在上一個映像中設定儲存體帳戶 Blob 服務的私人 DNS 區域,則 DNS 區域名稱為 privatelink.blob.core.windows.net。 檢閱 Microsoft 文件,以查看所有 Azure 服務的更多私人 DNS 區域名稱。
備註
只會在您使用建議的命名配置時,才會自動產生私人端點私人 DNS 區域組態:privatelink.postgres.database.azure.com。
在新配置的公開存取(非虛擬網路整合)伺服器上,DNS 佈局會有所改變。 伺服器的 FQDN 現在會變成形式為 servername.postgres.database.azure.com 的 CNAME 記錄,其會以下列其中一種格式指向 A 記錄:
- 如果伺服器具有連結預設私人 DNS 區域的私人端點,A 記錄會使用此格式:
server_name.privatelink.postgres.database.azure.com。 - 如果伺服器沒有私有端點,A 紀錄會使用以下格式:
server_name.rs-<15 semi-random bytes>.postgres.database.azure.com。
適用於 Azure 和內部部署資源的混合式 DNS
DNS 是整體著陸區架構中一個關鍵的設計考量。 某些組織可能會想要使用其在 DNS 中的現有投資。 其他人可能想要針對其所有 DNS 需求採用原生 Azure 功能。
您可以使用 Azure DNS 私人解析器與 Azure 私用 DNS 區域進行跨內部部署名稱解析。 DNS Private Resolver 可以將 DNS 請求轉發給其他 DNS 伺服器,並提供一個 IP 位址,供外部 DNS 伺服器用來轉發請求。 因此,外部本地 DNS 伺服器可以解析位於 私用 DNS 區域的名稱。
欲了解更多關於使用 DNS Private Resolver 搭配本地 DNS 轉發器將 DNS 流量轉發至 Azure DNS 的資訊,請參見:
所述解決方案會延伸已具備 DNS 解決方案的內部部署網路,以解析 Azure.Microsoft 架構中的資源。
中樞和支點網路架構中的私人連結與 DNS 整合
你通常會在部署樞紐虛擬網路的同一個 Azure 訂閱中集中架設私有 DNS 區域。 這種中央託管的做法是由跨單位 DNS 名稱解析及其他中央 DNS 解析 (例如 Microsoft Entra) 的需求所驅動。 在大部分情況下,只有網路和身分識別系統管理員有權管理區域中的 DNS 記錄。
在此架構中,需配置以下元件:
- 內部部署的 DNS 伺服器已針對每個私人端點公用 DNS 區域設定了條件式轉寄站,指向託管於中樞虛擬網路中的私人 DNS 解析程式。
- 裝載於中樞虛擬網路中的私人 DNS 解析程式使用 Azure 提供的 DNS (168.63.129.16) 作為轉寄站。
- 您將中樞虛擬網路連結至 Azure 服務的 私用 DNS 區域名稱(例如 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器所使用的
privatelink.postgres.database.azure.com)。 - 所有 Azure 虛擬網路都使用 私用 DNS Resolver,託管在樞紐虛擬網路中。
- 私用 DNS 解析器對客戶的企業網域並不具權威性,因為它只是轉發器(例如 Microsoft Entra 網域名稱)。 它應該有指向客戶企業網域的外部端點轉發器,指向本地的 DNS 伺服器,或是部署在 Azure 中、對此類區域具權威性的 DNS 伺服器。
私人連結與網路安全性群組
根據預設,虛擬網路中的子網路會停用網路原則。 要使用像 UDR 和 NSG 這類網路政策支援,必須啟用子網的網路政策支援。 此設定僅適用於子網內的私有端點。 此設定會影響子網路中所有的私人端點。 針對子網路中的其他資源,會根據 NSG 中的安全性規則來控制存取權。
您可以僅針對 NSG、僅針對 UDR 或兩者啟用網路原則。 如需詳細資訊,請參閱 管理私人端點的網路原則。
NSG 和私人端點限制列於什麼是私人端點?中。
這很重要
防止資料外洩:私人端點會對應到 PaaS 資源的執行個體,而不是整個服務。 取用者只能連線至特定資源。 對服務中的任何其他資源進行存取都會遭到封鎖。 此機制可提供基本保護,防止資料外洩風險。
Private Link 結合防火牆規則
當搭配防火牆規則使用 Private Link 時,可能會發生下列情況和結果:
如果你沒有設定任何防火牆規則,預設情況下,流量就無法存取 適用於 PostgreSQL 的 Azure 資料庫 的彈性伺服器。
如果您設定公用流量或服務端點並建立私人端點,不同類型的傳入流量會由對應類型的防火牆規則所授權。
如果你沒有設定任何公開流量或服務端點,並且建立了私有端點,適用於 PostgreSQL 的 Azure 資料庫 這個彈性伺服器只能透過私有端點存取。 如果你沒有設定公共流量或服務端點,當所有核准的私有端點被拒絕或刪除後,任何流量都無法存取 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器。
疑難排解
當你使用 Private Link 端點搭配 適用於 PostgreSQL 的 Azure 資料庫 靈活伺服器時,可能因設定錯誤或網路限制而產生連線問題。 若要針對這些問題進行疑難解答,請確認私人端點、DNS 設定、網路安全組 (NSG) 和路由表的設定。 有系統地解決這些區域,可協助您找出並解決常見問題,確保順暢連線,並安全地存取您的資料庫。
採用私人端點的網路發生連線問題
如果您在使用基於私有端點的網路時遇到連線問題,請檢查以下區域:
- 驗證 IP 位址分配: 確保私有端點分配的 IP 位址正確,且不會與其他資源衝突。 欲了解更多關於私有端點與 IP 的資訊,請參閱管理 Azure 私有端點。
- 檢查網路安全性群組(NSG): 檢閱私人端點所在子網路的 NSG 規則,確認已允許必要的流量,且不存在相互衝突的規則。 如需有關 NSG 的詳細資訊,請參閱網路安全性群組。
- 驗證路由表設定:確保與私人端點子網路相關聯的路由表,以及已連線的資源已正確設定適當的路由。
- 使用網路監視和診斷:使用 Azure 網路監看員,透過連線監視器或封包擷取等工具來監視和診斷網路流量。 欲了解更多關於網路診斷的資訊,請參閱「什麼是 Azure 網路監看員?」。
欲了解更多關於私有端點故障排除的資訊,請參閱「排除 Azure 私有端點連線問題」。
使用私人端點型網路進行 DNS 解析
如果您在使用基於私有端點的網路時遇到 DNS 解析問題,請檢查以下區域:
- 驗證 DNS 解析:檢查私人端點使用的 DNS 伺服器或服務,以及連線的資源是否正常運作。 確定私人端點的 DNS 設定正確無誤。 欲了解更多關於私人端點與 DNS 區域設定的資訊,請參閱 Azure 私有端點的 私用 DNS 區域值。
- 清除 DNS 快取:清除私人端點或用戶端機器上的 DNS 快取,以確保擷取最新的 DNS 資訊,並避免發生不一致的錯誤。
- 分析 DNS 記錄:檢閱 DNS 記錄中是否有錯誤訊息或異常模式,例如 DNS 查詢失敗、伺服器錯誤或逾時。 欲了解更多關於 DNS 指標的資訊,請參閱 Azure DNS 指標與警示。
限制與考量
你只能為 Private Link 推出後建立的伺服器設定私有端點。 使用虛擬網路(VNet)整合的伺服器不符合私有端點配置的資格。
限制私有端點數量的是 Azure 網路限制,而非資料庫服務本身。 具體來說,它們限制了你能注入到 VNet 內某個子網的私有端點數量。
虛擬機器可以透過私有端點連接資料庫,前提是它們在同一虛擬網路內正確配置或有適當的路由。