允許透過私人端點來存取 Azure 服務匯流排命名空間

Azure Private Link 服務可供透過虛擬網路中的私人端點存取 Azure 服務 (例如 Azure 服務匯流排、Azure 儲存體和 Azure Cosmos DB),以及 Azure 裝載的客戶/合作夥伴服務。

私人端點是一種網路介面,其可以私人且安全的方式連線至 Azure Private Link 所支援服務。 私人端點會使用您虛擬網路中的私人 IP 位址,有效地將服務帶入您的虛擬網路中。 服務的所有流量都可以透過私人端點路由傳送,因此不需要閘道、NAT 裝置、ExpressRoute 或 VPN 連線或公用 IP 位址。 虛擬網路和服務間的流量會在通過 Microsoft 骨幹網路時隨之減少,降低資料在網際網路中公開的風險。 您可以連線至 Azure 資源的執行個體,以提供您存取控制中最高層級的細微性。

如需詳細資訊,請參閱何謂 Azure Private Link?

重點

  • Azure 服務匯流排的進階層支援這項功能。 如需進階層的詳細資訊,請參閱服務匯流排進階和標準傳訊層級一文。

  • 實作私人端點可防止其他 Azure 服務與「服務匯流排」進行互動。 例外狀況是,即使在啟用私人端點時,您也可以允許從某些信任的服務存取服務匯流排資源。 如需信任的服務清單,請參閱信任的服務

    虛擬網路上必須有下列 Microsoft 服務

    • Azure App Service
    • Azure Functions
  • 為命名空間指定至少一個 IP 規則或虛擬網路規則,只允許來自虛擬網路的指定 IP 位址或子網路的流量。 如果沒有 IP 和虛擬網路規則,可透過公用網際網路 (使用存取金鑰) 來存取命名空間。

使用 Azure 入口網站新增私人端點

必要條件

若要將服務匯流排命名空間與 Azure Private Link 整合,則您需要下列實體或權限:

  • 服務匯流排命名空間。
  • Azure 虛擬網路。
  • 虛擬網路中的子網路。 您可以使用預設子網路。
  • 服務匯流排命名空間和虛擬網路的擁有者或參與者權限。

您的私人端點和虛擬網路必須位於相同區域。 當您使用入口網站選取私人端點的區域時,其只會自動篩選該區域中的虛擬網路。 服務匯流排命名空間可位於不同區域。 此外,私人端點會使用虛擬網路中的私人 IP 位址。

建立命名空間時設定私人存取

建立命名空間時,您可以允許僅限公用 (來自所有網路) 或僅限私人 (僅透過私人端點) 存取命名空間。

如果您在命名空間建立精靈的 [網路] 頁面上選取 [私人存取] 選項,您可以選取 [+ 私人端點] 按鈕,在頁面上新增私人端點。 如需新增私人端點的詳細步驟,請參閱下一節。

Screenshot showing the Networking page of the Create namespace wizard with Private access option selected.

設定現有命名空間的私人存取

如果您已經有命名空間,則可遵循下列步驟來建立私人端點:

  1. 登入 Azure 入口網站

  2. 在搜尋列中,鍵入 [服務匯流排]

  3. 從清單中選取您要新增私人端點的命名空間

  4. 在左側功能表的 [設定] 下,選取 [網路] 選項。

    注意

    您只會看到進階命名空間的 [網路] 索引標籤。

  5. 如果您想要讓命名空間只能透過私人端點來存取,請在 [網路] 頁面上,針對 [公用網路存取] 選取 [已停用]

  6. 如果您想要允許受信任的 Microsoft 服務略過此防火牆,針對 [允許受信任的 Microsoft 服務略過此防火牆],選取 [是]

    Screenshot of the Networking page with public network access as Disabled.

  7. 若要允許透過私人端點存取命名空間,請選取頁面頂端的 [私人端點連線] 索引標籤

  8. 選取頁面頂端的 [+ 私人端點] 按鈕。

    Add private endpoint button

  9. 在 [基本] 頁面上,遵循下列步驟:

    1. 選取您要在其中建立私人端點的 Azure 訂閱

    2. 選取私人端點資源的資源群組

    3. 輸入私人端點的名稱

    4. 輸入網路介面的名稱

    5. 選取私人端點的區域。 您的私人端點必須位於與虛擬網路相同的區域,但可與將要連線的目的地私人連結資源位於不同區域。

    6. 選取頁面底部的 [下一步: 資源 >]

      Screenshot showing the Basics page of the Create private endpoint wizard.

  10. 在 [資源] 頁面上檢閱設定,然後選取頁面底部的 [下一步: 虛擬網路]

    Screenshot showing the Resource page of the Create private endpoint wizard.

  11. 在 [虛擬網路] 頁面上,您會選取虛擬網路中要部署私人端點的子網路。

    1. 選取虛擬網路。 下拉式清單只會列出目前所選訂閱與位置中的虛擬網路。
    2. 選取您所選虛擬網路中的子網路
    3. 請注意,已停用私人端點的網路原則。 如果想要啟用此原則,請選取 [編輯]、更新設定,然後選取 [儲存]
    4. 在 [私人 IP 設定] 中,預設會選取 [動態配置 IP 位址]。 如果想要指派靜態的 IP 位址,請選取 [靜態配置 IP 位址]*。
    5. 針對 [應用程式安全性群組],選取現有的應用程式安全性群組,或建立要與私人端點建立關聯的安全性群組。
    6. 選取頁面底部的 [下一步: DNS >] 按鈕。

    Screenshot showing the Virtual Network page of the Create private endpoint wizard.

  12. 在 [DNS] 頁面上,選取是否要整合私人端點與私人 DNS 區域,然後選取 [下一步: 標記]

    Screenshot showing the DNS page of the Create private endpoint wizard.

  13. 在 [標記] 頁面上,建立想要與私人端點資源建立關聯的任何標記 (名稱和值)。 然後選取頁面底部的 [檢閱 + 建立] 按鈕。

  14. 在 [檢閱 + 建立] 上,檢閱所有設定,然後選取 [建立] 來建立私人端點。

    Screenshot showing the Review and Create page of the Create private endpoint wizard.

  15. 確認已建立私人端點。 如果您是資源的擁有者,且已針對 [連線方法] 選取 [連線至我目錄中的 Azure 資源] 選項,則端點連線應該為 [自動核准]。 如果其處於 [擱置] 狀態,請參閱<使用 Azure 入口網站管理私人端點>一節。

    Private endpoint created

受信任的 Microsoft 服務

啟用 [允許信任的 Microsoft 服務略過此防火牆] 設定時,下列服務會獲授與服務匯流排資源的存取權。

信任的服務 支援的使用方式情節
事件格線 允許 Azure 事件方格將事件傳送至服務匯流排命名空間中的佇列或主題。 您也必須執行下列步驟:
  • 為主題或網域啟用系統指派的身分識別
  • 將身分識別新增至服務匯流排命名空間上的 Azure 服務匯流排資料傳送者角色
  • 然後,將使用服務匯流排佇列或主題做為端點的事件訂用帳戶設定為使用系統指派的身分識別。

如需詳細資訊,請參閱使用受控識別傳遞事件

Azure 串流分析 允許 Azure 串流分析作業將資料輸出至主題的服務匯流排佇列

重要:串流分析作業應設定為使用受控識別來存取服務匯流排命名空間。 將身分識別新增至服務匯流排命名空間上的 Azure 服務匯流排資料傳送者角色。

Azure IoT 中樞 允許 IoT 中樞將訊息傳送至服務匯流排命名空間中的佇列或主題。 您也必須執行下列步驟:
Azure API 管理

API 管理服務可讓您將訊息傳送至服務匯流排命名空間中的服務匯流排佇列/主題。

Azure IoT Central

可讓 IoT Central 將資料匯出至服務匯流排命名空間中的服務匯流排佇列或主題。 您也必須執行下列步驟:

Azure Digital Twins 允許 Azure Digital Twins 將資料輸出至服務匯流排命名空間中的服務匯流排主題。 您也必須執行下列步驟:

  • 為您的 Azure Digital Twins 執行個體啟用系統指派的身分識別。
  • 將身分識別新增至服務匯流排命名空間上的 Azure 服務匯流排資料傳送者角色。
  • 然後,設定 Azure Digital Twins 端點或 Azure Digital Twins 資料歷程記錄連線,其會使用系統指派的身分識別進行驗證。 如需設定從 Azure Digital Twins 至服務匯流排資源的端點和事件路由的詳細資訊,請參閱路由 Azure Digital Twins 事件在 Azure Digital Twins 中建立端點
Azure 監視器 (診斷設定和動作群組) 允許 Azure 監視器將診斷資訊和警示通知傳送至服務匯流排命名空間中的服務匯流排。 Azure 監視器可以從服務匯流排命名空間讀取資料,以及將資料寫入其中。
Azure Synapse 允許 Azure Synapse 使用 Synapse 工作區受控識別連線至服務匯流排。 將 Azure 服務匯流排資料傳送者、接收者或擁有者角色新增至服務匯流排命名空間上的身分識別。

以下是 Azure 服務匯流排的其他受信任服務:

  • Azure 資料總管
  • Azure 健康資料服務
  • Azure Arc
  • Azure Kubernetes
  • Azure Machine Learning
  • Microsoft Purview

若要允許信任的服務存取您的命名空間,請切換至 [網路] 頁面上的 [公用存取] 索引標籤,然後針對 [允許受信任的 Microsoft 服務略過此防火牆嗎?],選取 [是]

使用 PowerShell 新增私人端點

下列範例會示範如何使用 Azure PowerShell 來建立對服務匯流排命名空間的私人端點連線。

您的私人端點和虛擬網路必須位於相同區域。 服務匯流排命名空間可位於不同區域。 此外,私人端點會使用虛擬網路中的私人 IP 位址。


$rgName = "<RESOURCE GROUP NAME>"
$vnetlocation = "<VNET LOCATION>"
$vnetName = "<VIRTUAL NETWORK NAME>"
$subnetName = "<SUBNET NAME>"
$namespaceLocation = "<NAMESPACE LOCATION>"
$namespaceName = "<NAMESPACE NAME>"
$peConnectionName = "<PRIVATE ENDPOINT CONNECTION NAME>"

# create resource group
New-AzResourceGroup -Name $rgName -Location $vnetLocation 

# create virtual network
$virtualNetwork = New-AzVirtualNetwork `
                    -ResourceGroupName $rgName `
                    -Location $vnetlocation `
                    -Name $vnetName `
                    -AddressPrefix 10.0.0.0/16

# create subnet with endpoint network policy disabled
$subnetConfig = Add-AzVirtualNetworkSubnetConfig `
                    -Name $subnetName `
                    -AddressPrefix 10.0.0.0/24 `
                    -PrivateEndpointNetworkPoliciesFlag "Disabled" `
                    -VirtualNetwork $virtualNetwork

# update virtual network
$virtualNetwork | Set-AzVirtualNetwork

# create premium service bus namespace
$namespaceResource = New-AzResource -Location $namespaceLocation -ResourceName $namespaceName -ResourceGroupName $rgName -Sku @{name = "Premium"; capacity = 1} -Properties @{} -ResourceType "Microsoft.ServiceBus/namespaces" -

# create a private link service connection
$privateEndpointConnection = New-AzPrivateLinkServiceConnection `
                                -Name $peConnectionName `
                                -PrivateLinkServiceId $namespaceResource.ResourceId `
                                -GroupId "namespace"

# get subnet object that you will use in the next step                                
$virtualNetwork = Get-AzVirtualNetwork -ResourceGroupName  $rgName -Name $vnetName
$subnet = $virtualNetwork | Select -ExpandProperty subnets `
                                | Where-Object  {$_.Name -eq $subnetName}  
   
# now, create private endpoint   
$privateEndpoint = New-AzPrivateEndpoint -ResourceGroupName $rgName  `
                                -Name $vnetName   `
                                -Location $vnetlocation `
                                -Subnet  $subnet   `
                                -PrivateLinkServiceConnection $privateEndpointConnection

(Get-AzResource -ResourceId $namespaceResource.ResourceId -ExpandProperties).Properties


使用 Azure 入口網站管理私人端點

當您建立私人端點時,必須核准連線。 如果正要建立私人端點的資源位於目錄中,則在具有足夠權限的情況下,即可核准連線要求。 如果正要連線到位於另一個目錄中的 Azure 資源,則必須等候該資源的擁有者核准連線要求。

佈建狀態有四種:

服務動作 服務取用者私人端點狀態 描述
None 待定 連線會手動建立並等待 Private Link 資源擁有者進行核准。
核准 核准 已自動或手動核准連線並可供使用。
拒絕​​ 已拒絕 私人連結資源擁有者已拒絕連線。
移除 已中斷連接 私人連結資源擁有者已移除連線,而私人端點變成參考性,且應該刪除以進行清除。

核准、拒絕或移除私人端點連線

  1. 登入 Azure 入口網站。
  2. 在搜尋列中,鍵入 [服務匯流排]
  3. 選取您要管理的命名空間
  4. 選取 [網路] 索引標籤。
  5. 根據您想要執行的作業:核准、拒絕或移除,請參閱下列適當的小節。

核准私人端點連線

  1. 如果有任何暫止的連線,您會在佈建狀態中看到以 [擱置中] 列出的連線。

  2. 選取您想要核准的私人端點

  3. 選取 [核准] 按鈕。

    Approve private endpoint

  4. 在 [核准連線] 頁面上,輸入選擇性的註解,然後選取 [是]。 如果您選取 [否],則不會發生任何事。

    Approve connection page

  5. 您應該會看見清單中連線的狀態變更為 [已核准]

    Connection status - approved

拒絕私人端點連線

  1. 如果想拒絕任何私人端點連線 (不論是暫止要求還是稍早核准的現有連線),請選取端點連線,然後選取 [拒絕] 按鈕。

    Reject button

  2. 在 [拒絕連線] 頁面上,輸入選擇性的註解,然後選取 [是]。 如果您選取 [否],則不會發生任何事。

    Reject connection page

  3. 您應該會看見清單中連線的狀態變更為 [已拒絕]

    Endpoint rejected

移除私人端點連線

  1. 若要移除私人端點連線,請在清單中加以選取,然後選取工具列上的 [移除]

    Remove button

  2. 在 [刪除連線] 頁面上,選取 [是] 以確認刪除私人端點。 如果您選取 [否],則不會發生任何事。

    Delete connection page

  3. 您應該會看見狀態變更為 [已中斷連線]。 然後,端點會從清單中消失。

您應該驗證私人端點虛擬網路內的資源是否正透過私人 IP 位址連線到您的服務匯流排命名空間,而且其具有正確的私人 DNS 區域整合。

首先,依照在 Azure 入口網站中建立 Windows 虛擬機器中的步驟,建立虛擬機器。

在 [網路] 索引標籤中:

  1. 指定 [虛擬網路] 和 [子網路]。 您必須選取您已在其上方部署私人端點的虛擬網路。
  2. 指定公用 IP 資源。
  3. 針對 [NIC 網路安全性群組],選取 [無]
  4. 針對 [負載平衡],選取 [否]

連線到 VM、開啟命令列,然後執行下列命令:

nslookup <service-bus-namespace-name>.servicebus.windows.net

您應該會看到如下所示的結果。

Non-authoritative answer:
Name:    <service-bus-namespace-name>.privatelink.servicebus.windows.net
Address:  10.0.0.4 (private IP address associated with the private endpoint)
Aliases:  <service-bus-namespace-name>.servicebus.windows.net

限制和設計考量

  • 如需定價資訊,請參閱 Azure 私人連結定價
  • 此功能已可在所有 Azure 公用區域中使用。
  • 每個服務匯流排命名空間的私人端點數目上限:120。
  • 流量會在應用程式層封鎖,而不是在 TCP 層。 因此,即使公用存取已停用,您還是會看到對公用端點的 TCP 連線或 nslookup 作業成功。

如需詳細資訊,請參閱 Azure Private Link 服務:限制

下一步