在私人虛擬網路中插入 Azure API 管理 實例 - 進階 v2 層
適用於:進階 v2
本文會引導您完成在虛擬網路中插入 Azure API 管理 Premium v2 (預覽) 實例的需求。
注意
若要在虛擬網路中插入傳統開發人員或進階層實例,需求和設定不同。 深入了解。
在虛擬網路中插入 API 管理 Premium v2 實例時:
- API 管理 閘道端點可透過私人IP位址的虛擬網路來存取。
- 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
資源提供者,以便將子網路委派給服務。
如需設定子網委派的詳細資訊,請參閱 新增或移除子網委派。
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 實例時,可以選擇性地設定虛擬網路插入的設定。
- 在 [建立 API 管理 服務精靈] 中,選取 [網络] 索引標籤。
- 在 [ 連線類型] 中,選取 [ 虛擬網络]。
- 在 [類型] 中,選取 [虛擬網絡 插入]。
- 在 [ 設定虛擬網络] 中,選取您要插入的虛擬網路和委派子網。
- 完成精靈以建立 API 管理 實例。
用於存取私人IP位址的 DNS 設定
在虛擬網路中插入進階 v2 API 管理 實例時,您必須管理自己的 DNS,才能啟用 API 管理 的輸入存取。
雖然您可以選擇使用自己的自定義 DNS 伺服器,但建議您:
- 設定 Azure DNS 私人區域。
- 將 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 |