分享方式:


為 Azure SignalR Service 使用私人端點

您可以為您的 Azure SignalR Service 使用私人端點,以允許虛擬網路 (VNet) 上的用戶端透過 Private Link 安全存取資料。 私人端點會為您的 Azure SignalR Service 使用 VNet 位址空間中的 IP 位址。 VNet 上的用戶端與 Azure SignalR Service 之間的網路流量會周遊 Microsoft 骨幹網路上的私人連結,從而排除在公用網際網路上曝光的風險。

為 Azure SignalR Service 使用私人端點可讓您:

  • 使用網路存取控制保護 Azure SignalR Service,以封鎖 Azure SignalR Service 公用端點上的所有連線。
  • 讓您阻止虛擬網路 (VNet) 中的資料外流,以提高 VNet 的安全性。
  • 搭配使用 VPNExpressRoutes 與私人對等互連,安全地從連線至 VNet 的內部部署網路連線到 Azure SignalR Service。

本文說明如何將私人端點使用於 Azure SignalR Service。

概念概觀

Overview of private endpoints for Azure SignalR Service

私人端點是您虛擬網路 (VNet) 中的 Azure 資源適用的特殊網路介面。 當您為 Azure SignalR Service 建立私人端點時,該私人端點僵會在您 VNet 上的用戶端與服務之間提供安全的連線。 私人端點獲指派的 IP 位址來自您 VNet 的 IP 位址範圍。 私人端點與 Azure SignalR Service 之間的連線會使用安全的私人連結。

VNet 中的應用程式可以使用他們在其他情況下也會使用的相同連接字串和授權機制,透過私人端點順暢地連線至 Azure SignalR Service。 私人端點可與 Azure SignalR Service 所支援的所有通訊協定搭配使用,包括 REST API。

在 VNet 中為 Azure SignalR Service 建立私人端點時,系統會傳送同意要求給 Azure SignalR Service 擁有者,請求核准。 如果要求建立私人端點的使用者也是 Azure SignalR Service 的擁有者,則系統會自動核准此同意要求。

Azure SignalR Service 擁有者可以在 Azure 入口網站中,透過 Azure SignalR Service 的 [私人端點] 索引標籤,管理同意要求和私人端點。

提示

如果您想要限定為只能透過私人端點來存取您的 Azure SignalR Service,請將網路存取控制設定為拒絕或控制透過公用端點的存取。

連線至私人端點

使用私人端點的 VNet 用戶端在連線至公用端點時,應將相同的連接字串用於 Azure SignalR Service。 我們依賴 DNS 解析,透過私人連結自動將來自 VNet 的連線路由至 Azure SignalR Service。

重要

使用相同的連接字串,透過私人端點連線至 Azure SignalR Service,就像在其他情況下一樣。 請勿使用 privatelink 子網域 URL 連線至 Azure SignalR Service。

根據預設,我們會建立一個附加至 VNet 的私人 DNS 區域,並對私人端點進行必要的更新。 不過,如果您使用的是自己的 DNS 伺服器,則可能需要對 DNS 設定進行其他變更。 私人端點的 DNS 變更一節描述私人端點所需的更新。

私人端點的 DNS 變更

當您建立私人端點時,在首碼為 privatelink 的子網域中,Azure SignalR Service 的 DNS CNAME 資源記錄會更新為別名。 根據預設,我們也會建立對應至 privatelink 子網域的私人 DNS 區域,以及私人端點的 DNS A 資源記錄。

當您從具有私人端點的 VNet 外部解析 Azure SignalR Service 網域名稱時,其會解析為 Azure SignalR Service 的公用端點。 從裝載私人端點的 VNet 解析時,網域名稱會解析為私人端點的 IP 位址。

在上述範例中,從裝載私人端點的 VNet 外部解析時,Azure SignalR Service 的 DNS 資源記錄將為:

名稱 類型
foobar.service.signalr.net CNAME foobar.privatelink.service.signalr.net
foobar.privatelink.service.signalr.net A <Azure SignalR Service 公用 IP 位址>

如前所述,您可以使用網路存取控制,來拒絕或控制透過公用端點對 VNet 外部的用戶端存取。

由裝載私人端點的 VNet 中的用戶端解析時,「foobar」的 DNS 資源記錄將為:

名稱 類型
foobar.service.signalr.net CNAME foobar.privatelink.service.signalr.net
foobar.privatelink.service.signalr.net A 10.1.1.5

此方法可讓您將相同的連接字串用於裝載私人端點的 VNet 用戶端,以及該 VNet 外部的用戶端,以存取 Azure SignalR Service。

如果您在網路上使用自訂 DNS 伺服器,則用戶端必須能夠將 Azure SignalR Service 端點的 FQDN 解析為私人端點 IP 位址。 您應設定 DNS 伺服器,以將私人連結子網域委派給 VNet 的私人 DNS 區域,或為具有私人端點 IP 位址的 foobar.privatelink.service.signalr.net 設定 A 記錄。

提示

使用自訂或內部部署 DNS 伺服器時,您應設定 DNS 伺服器將 privatelink 子網域中的 Azure SignalR Service 名稱解析為私人端點 IP 位址。 若要這麼做,您可以將 privatelink 子網域委派給 VNet 的私人 DNS 區域,或在 DNS 伺服器上設定 DNS 區域,然後新增 DNS A 記錄。

Azure SignalR Service 私人端點的建議 DNS 區域名稱為:privatelink.service.signalr.net

如需有關設定您自己的 DNS 伺服器以支援私人端點的詳細資訊,請參閱下列文章:

建立私人端點

在 Azure 入口網站中建立私人端點以及新的 Azure SignalR Service

  1. 建立新的 Azure SignalR Service 時,請選取 [網路] 索引標籤。選擇 [私人端點] 作為連線方法。

    Create Azure SignalR Service - Networking tab

  2. 選取 [新增]。 填寫新私人端點的訂用帳戶、資源群組、位置、名稱。 選擇虛擬網路和子網路。

    Create Azure SignalR Service - Add private endpoint

  3. 選取 [檢閱 + 建立]。

在 Azure 入口網站中,為現有 Azure SignalR Service 建立私人端點

  1. 前往 Azure SignalR Service。

  2. 選取名稱為 [私人端點連線] 的設定功能表。

  3. 選取頂端的 [+ 私人端點] 按鈕。

    Private endpoint connections blade

  4. 輸入新私人端點的訂用帳戶、資源群組、資源名稱和區域。

    Create private endpoint - Basics

  5. 選擇目標 Azure SignalR Service 資源。

    Create private endpoint - Resource

  6. 選擇目標虛擬網路

    Create private endpoint - Configuration

  7. 選取 [檢閱 + 建立]。

使用 Azure CLI 建立私人端點

  1. 登入 Azure CLI
    az login
    
  2. 設定您的 Azure 訂用帳戶
    az account set --subscription {AZURE SUBSCRIPTION ID}
    
  3. 建立新的資源群組
    az group create -n {RG} -l {AZURE REGION}
    
  4. 將 Microsoft.SignalRService 註冊為提供者
    az provider register -n Microsoft.SignalRService
    
  5. 建立新的 Azure SignalR Service
    az signalr create --name {NAME} --resource-group {RG} --location {AZURE REGION} --sku Standard_S1
    
  6. 建立虛擬網路
    az network vnet create --resource-group {RG} --name {vNet NAME} --location {AZURE REGION}
    
  7. 新增子網路
    az network vnet subnet create --resource-group {RG} --vnet-name {vNet NAME} --name {subnet NAME} --address-prefixes {addressPrefix}
    
  8. 停用虛擬網路原則
    az network vnet subnet update --name {subnet NAME} --resource-group {RG} --vnet-name {vNet NAME} --disable-private-endpoint-network-policies true
    
  9. 建立私人 DNS 區域
    az network private-dns zone create --resource-group {RG} --name privatelink.service.signalr.net
    
  10. 將私人 DNS 區域連結至虛擬網路
    az network private-dns link vnet create --resource-group {RG} --virtual-network {vNet NAME} --zone-name privatelink.service.signalr.net --name {dnsZoneLinkName} --registration-enabled true
    
  11. 建立私人端點 (自動核准)
    az network private-endpoint create --resource-group {RG} --vnet-name {vNet NAME} --subnet {subnet NAME} --name {Private Endpoint Name}  --private-connection-resource-id "/subscriptions/{AZURE SUBSCRIPTION ID}/resourceGroups/{RG}/providers/Microsoft.SignalRService/SignalR/{NAME}" --group-ids signalr --connection-name {Private Link Connection Name} --location {AZURE REGION}
    
  12. 建立私人端點 (手動要求核准)
    az network private-endpoint create --resource-group {RG} --vnet-name {vNet NAME} --subnet {subnet NAME} --name {Private Endpoint Name}  --private-connection-resource-id "/subscriptions/{AZURE SUBSCRIPTION ID}/resourceGroups/{RG}/providers/Microsoft.SignalRService/SignalR/{NAME}" --group-ids signalr --connection-name {Private Link Connection Name} --location {AZURE REGION} --manual-request
    
  13. 顯示連線狀態
    az network private-endpoint show --resource-group {RG} --name {Private Endpoint Name}
    

定價

如需價格詳細資料,請參閱 Azure Private Link 價格

已知問題

請記住下列與 Azure SignalR Service 私人端點有關的已知問題

免費層

您無法為免費層 Azure SignalR Service 建立任何私人端點。

具有私人端點的 VNet 中,用戶端的存取條件限制

具有現有私人端點的 VNet 中,用戶端在存取其他具有私人端點的 Azure SignalR Service 執行個體時,會面臨條件限制。 例如:

  • 當 VNet N1 具有 Azure SignalR Service 執行個體 S1 的私人端點時
    • 若 Azure SignalR Service S2 在 VNet N2 中具有一個私人端點,則 VNet N1 中的用戶端也必須使用私人端點存取 Azure SignalR Service S2。
    • 若 Azure SignalR Service S2 沒有任何私人端點,則 VNet N1 中的用戶端在存取該帳戶中的 Azure SignalR Service 時可以不使用私人端點。

此條件約束是 Azure SignalR Service S2 建立私人端點時 DNS 變更所產生的結果。

下一步