共用方式為


在私人虛擬網路中插入 Azure API 管理 實例 - 進階 v2 層

適用於:進階 v2

本文會引導您完成在虛擬網路中插入 Azure API 管理 Premium v2 (預覽) 實例的需求。

注意

若要在虛擬網路中插入傳統開發人員或進階層實例,需求和設定不同。 深入了解

在虛擬網路中插入 API 管理 Premium v2 實例時:

  • API 管理 閘道端點可透過私人IP位址的虛擬網路來存取。
  • API 管理 可以對網路中隔離的 API 後端提出輸出要求。

針對您想要將網路流量隔離至 API 管理 實例和後端 API 的案例,建議使用此組態。

在虛擬網路中插入 API 管理 實例以隔離輸入和輸出流量的圖表。

如果您想要在標準 v2 或進階 v2 層中啟用 API 管理 實例的公用輸入存取,但限制對網路隔離後端的輸出存取,請參閱與虛擬網路整合以進行輸出連線

重要

  • 本文所述的虛擬網路插入僅適用於進階 v2 層中 API 管理 實例(預覽)。 如需不同層級的網路選項,請參閱搭配 Azure API 管理 使用虛擬網路。
  • 目前,您只能在建立實例時,將 Premium v2 實例插入虛擬網路。 您無法將現有的 Premium v2 實例插入虛擬網路。 不過,您可以在建立實例之後更新要插入的子網設定。
  • 目前,您無法在進階 v2 實例的虛擬網路插入與虛擬網路整合之間切換。

必要條件

  • 進階 v2 定價層中的 Azure API 管理 實例。
  • 您的用戶端應用程式和 API 管理 後端 API 裝載所在的虛擬網路。 如需用於 API 管理 實例的虛擬網路和子網需求和建議,請參閱下列各節。

網路位置

  • 虛擬網路必須位於與 APIM 執行個體相同的區域與 Azure 訂用帳戶中。

子網路需求

  • 無法與另一個 Azure 資源分享 API 管理 實例的子網。

子網路大小

  • 最小值:/27 (32 個位址)
  • 建議: /24 (256 個位址) - 以容納調整 API 管理 實例

網路安全性群組

網路安全組必須與子網相關聯。

子網路委派

子網必須委派給 Microsoft.Web/hostingEnvironments 服務。

顯示入口網站中子網路委派至 Microsoft.Web/hostingEnvironments 的螢幕擷取畫面。

注意

您可能需要在訂用帳戶中註冊 Microsoft.Web/hostingEnvironments 資源提供者,以便將子網路委派給服務。

如需設定子網委派的詳細資訊,請參閱 新增或移除子網委派

addressPrefix 屬性

進階 v2 層中的虛擬網路插入需要 addressPrefix 子網屬性設定為有效的 CIDR 區塊。

如果您使用 Azure 入口網站 來設定子網,子網會設定由addressPrefixes位址前綴清單組成的 (plural) 屬性。 不過,API 管理 需要單一 CIDR 區塊做為 屬性的值addressPrefix

若要使用 addressPrefix建立或更新子網,請使用 Azure PowerShell、Azure Resource Manager 範本或 REST API 之類的工具。 例如,使用 Set-AzVirtualNetworkSubnetConfig Azure PowerShell Cmdlet 來更新子網:

# Set values for the variables that are appropriate for your environment.

$resourceGroupName = "MyResourceGroup"
$virtualNetworkName = "MyVirtualNetwork"
$subnetName = "ApimSubnet"
$addressPrefix = "10.0.3.0/24"


$virtualNetwork = Get-AzVirtualNetwork -Name $virtualNetworkName -ResourceGroupName $resourceGroupName

Set-AzVirtualNetworkSubnetConfig -Name $subnetName -VirtualNetwork $virtualNetwork -AddressPrefix $addressPrefix

$virtualNetwork | Set-AzVirtualNetwork

權限

您必須至少有下列子網或更高層級的角色型存取控制許可權,才能設定虛擬網路插入:

動作 描述
Microsoft.Network/virtualNetworks/read 讀取虛擬網路定義
Microsoft.Network/virtualNetworks/subnets/read 讀取虛擬網路子網路定義
Microsoft.Network/virtualNetworks/subnets/join/action 加入虛擬網路

在虛擬網路中插入 API 管理

當您使用 Azure 入口網站 建立 Premium v2 實例時,可以選擇性地設定虛擬網路插入的設定。

  1. 在 [建立 API 管理 服務精靈] 中,選取 [網络] 索引標籤。
  2. 在 [ 連線類型] 中,選取 [ 虛擬網络]。
  3. 在 [類型] 中,選取 [虛擬網絡 插入]。
  4. 在 [ 設定虛擬網络] 中,選取您要插入的虛擬網路和委派子網。
  5. 完成精靈以建立 API 管理 實例。

用於存取私人IP位址的 DNS 設定

在虛擬網路中插入進階 v2 API 管理 實例時,您必須管理自己的 DNS,才能啟用 API 管理 的輸入存取。

雖然您可以選擇使用自己的自定義 DNS 伺服器,但建議您:

  1. 設定 Azure DNS 私人區域
  2. 將 Azure DNS 私人區域連結至虛擬網路。

了解如何在 Azure DNS 中設定私人區域

默認主機名上的端點存取

當您在 Premium v2 層中建立 API 管理 實例時,會將下列端點指派為預設主機名:

  • 閘道 - 範例: contoso-apim.azure-api.net

設定 DNS 記錄

在 DNS 伺服器中建立 A 記錄,以從虛擬網路記憶體取 API 管理 實例。 將端點記錄對應至 API 管理 實例的私人VIP位址。

基於測試目的,您可以在連線到部署 API 管理 之虛擬網路的子網中,更新虛擬機上的主機檔案。 假設 API 管理 實例的私人虛擬IP位址是10.1.0.5,您可以對應主機檔案,如下列範例所示。 hosts 對應檔案位於 %SystemDrive%\drivers\etc\hosts (Windows) 或 /etc/hosts (Linux、macOS)。 例如:

內部虛擬 IP 網路 閘道主機名稱
10.1.0.5 contoso-apim.portal.azure-api.net