適用於:所有 APIM 層
本文說明如何擷取 Azure API 管理的IP位址。 如果服務位於虛擬網路中,IP 位址可以是公用或私人。 您可以使用IP位址來建立防火牆規則、篩選後端服務的連入流量,或限制輸出流量。
公用 IP 位址
開發人員、基本、標準或進階層中的每個 API 管理實例都有只有該實例專屬的公用 IP 位址。 (它們不會與其他資源分享。)
您可以從 Azure 入口網站中資源的概觀儀錶板擷取 IP 位址:
您也可以使用此 API 呼叫,以程式設計方式擷取它們:
GET https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.ApiManagement/service/<service-name>?api-version=<api-version>
公用IP位址會出現在回應中:
{
...
"properties": {
...
"publicIPAddresses": [
"172.31.0.1"
],
...
}
...
}
在多區域部署中,每個區域部署都有一個公用 IP 位址。
虛擬網路中 API 管理的 IP 位址
如果您的 API 管理實例位於虛擬網路內,則會有兩種類型的 IP 位址:公用和私人。
公用IP位址用於內部通訊,在埠
3443
上,用於管理組態(例如,透過 Azure Resource Manager)。 在 外部 虛擬網路組態中,它們也會用於運行時的 API 流量。 在 內部 虛擬網路組態中,公用IP位址僅用於Azure內部管理作業,而且不會將您的實例公開給因特網。私人虛擬IP(VIP) 位址僅適用於 內部虛擬網路模式,可用來從網路內聯機到API管理端點:閘道、開發人員入口網站,以及直接 API 存取的管理平面。 您可以使用這些位址來設定網路內的 DNS 記錄。
您會在 Azure 入口網站和 API 呼叫的回應中看到這兩種類型的位址:
GET https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.ApiManagement/service/<service-name>?api-version=<api-version>
{
...
"properties": {
...
"publicIPAddresses": [
"172.31.0.1"
],
"privateIPAddresses": [
"192.168.1.5"
],
...
},
...
}
重要
內部負載平衡器和 APIM 單位的私人 IP 位址採取動態指派。 因此,在部署之前,無法預期 API 管理實例的私人 IP。 此外,變更為不同的子網,然後傳回可能會導致私人IP位址變更。
輸出流量的 IP 位址
API 管理會針對虛擬網路或對等互連虛擬網路以外的連線使用公用IP位址。 它會針對虛擬網路或對等互連虛擬網路中的連線使用私人IP位址。
當 API 管理部署在外部或內部虛擬網路中,並連接到私人(內部網路面向)後端時,來自子網的內部 IP 位址(動態 IP 或 DIP 位址)將用於執行時的 API 流量。 當要求從 API 管理傳送至私人後端時,可看到要求源自於私人 IP 位址。
因此,如果 IP 限制列表涵蓋虛擬網路或對等連接的虛擬網路內的安全資源,我們建議您在使用 IP 規則時,應使用整個 API 管理 子網範圍 ,而不僅僅是 API 管理資源的私人 IP 位址。
當要求從 APIM 傳送至面向公眾 (網際網路) 後端時,可看到要求一定源自於公用 IP 位址。
使用量、基本 v2、標準 v2 和進階 v2 層 API 管理實例的 IP 位址
如果您的 APIM 執行個體建立於在共用基礎結構上執行的服務層級中,就不會有專用的 IP 位址。 目前,下列服務層級中的實例會在共用基礎結構上執行,而且沒有確定性的IP位址:使用量、基本 v2、標準 v2、進階 v2。
如果您需要將使用量、基本 v2、標準 v2 或進階 v2 層實例所使用的輸出 IP 位址新增至允許清單,您可以將實例的數據中心 (Azure 區域) 新增至允許清單。 您可以 下載 JSON 檔案,其中列出所有 Azure 資料中心的 IP 位址。 然後尋找適用於執行個體執行所在區域的 JSON 片段。
例如,下列 JSON 片段是西歐允許清單的外觀:
{
"name": "AzureCloud.westeurope",
"id": "AzureCloud.westeurope",
"properties": {
"changeNumber": 9,
"region": "westeurope",
"platform": "Azure",
"systemService": "",
"addressPrefixes": [
"13.69.0.0/17",
"13.73.128.0/18",
... Some IP addresses not shown here
"213.199.183.0/24"
]
}
}
如需有關此檔案何時更新和 IP 位址何時變更的資訊,請展開下載中心頁面的 [詳細資料] 區段。
IP 位址的變更
在 API 管理的開發人員、基本、標準和進階層中,公用 IP 位址或位址 (VIP) 和私人 VIP 位址(如果在內部虛擬網路模式中設定)在服務的存留期內是靜態的,但有下列例外:
API 管理會遭到刪除,然後重新建立。
服務訂用帳戶遭到停用或警告 (例如,因為未付款),然後又恢復。 深入瞭解訂用帳戶狀態。
(開發人員和進階層) Azure 虛擬網路會在服務中新增或移除。
(開發人員和進階層)API 管理會在外部和內部虛擬網路部署模式之間切換。
(開發人員和進階層)API 管理會移至不同的子網,或使用不同的公用IP位址資源進行設定。
(進階層) 啟用、新增或移除可用性區域。
(進階層) 在多區域部署中,如果區域空出又恢復,則區域 IP 位址會變更。
重要
從內部變更為外部虛擬網路或變更網路中子網時,您可以設定不同的 公用IP位址。 如果您未提供,則會自動設定 Azure 管理的公用 IP 位址。