Azure API 管理的 IP 位址
適用於:所有 APIM 層
在本文中,我們將說明如何擷取 Azure API 管理服務的 IP 位址。 如果服務位於虛擬網路中,IP 位址可以是公用或私人。 您可以使用 IP 位址來建立防火牆規則、篩選進入後端服務的流量,或限制輸出流量。
公用 IP 位址
在開發人員、基本、標準或進階層中,每個 API 管理服務執行個體都有公用 IP 位址,僅供該服務執行個體專用 (不與其他資源共用)。
您可以在 Azure 入口網站中從資源的概觀儀表板擷取 IP 位址。
您也可以使用下列 API 呼叫,以程式設計方式擷取 IP 位址:
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 位址。
VNet 中 API 管理服務的 IP 位址
如果 API 管理服務位於虛擬網路內,則具有兩種 IP 位址:公用和私人。
公用 IP 位址用於連接埠
3443
上的內部通訊 - 用來管理設定 (例如,透過 Azure Resource Manager)。 在外部 VNet 組態中,它們也會用於運行時間 API 流量。 在內部 VNet 組態中,公用 IP 位址僅用於 Azure 內部管理作業,而且不會將您的實例公開至因特網。私人虛擬 IP (VIP) 位址 (僅內部 VNet 模式中可用) 用於從網路內連線至 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 位址採取動態指派。 因此,在部署之前,不可能預期 APIM 執行個體的私人 IP。 此外,變更為不同子網路再變更回來,可能會導致私人 IP 位址變更。
輸出流量的 IP 位址
APIM 會針對 VNet 或對等互連 VNet 以外的連線使用公用 IP 位址,並針對 VNet 或對等互連 VNet 中的連線使用私人 IP 位址。
當 API 管理 部署在外部或內部虛擬網路中,且 API 管理 連線到私人(內部網路面向)後端時,子網的內部IP位址(動態IP或 DIP 位址)會用於運行時間 API 流量。 當要求從 API 管理傳送至私人後端時,可看到要求源自於私人 IP 位址。
因此,如果 IP 限制列出 VNet 或對等互連 VNet 內的安全資源,建議您使用整個 APIM 子網路範圍與 IP 規則,而 (在內部模式中) 不只是與 APIM 資源相關聯的私人 IP 位址。
當要求從 APIM 傳送至面向公眾 (網際網路) 後端時,可看到要求一定源自於公用 IP 位址。
取用IP位址、基本 v2、標準 v2和進階 v2 層 API 管理 服務
如果您的 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.180.192/27",
"213.199.183.0/24"
]
}
}
如需有關此檔案何時更新和 IP 位址何時變更的資訊,請展開下載中心頁面的 [詳細資料] 區段。
IP 位址的變更
在 APIM 的開發人員、基本、標準和進階層,公用 IP 位址 (VIP) 和私人 IP 位址 (如果在內部 VNet 模式中設定) 在服務的存留期內為靜態,但有下列例外:
APIM 服務遭到刪除,然後又重新建立。
服務訂用帳戶遭到停用或警告 (例如,因為未付款),然後又恢復。 深入了解訂用帳戶狀態
(開發人員和進階層) Azure 虛擬網路會在服務中新增或移除。
(開發人員和進階層) APIM 服務在外部和內部 VNet 部署模式之間切換。
(開發人員和進階層)API 管理 服務會移至不同的子網、從
stv1
移轉至stv2
計算平臺,或使用不同的公用IP位址資源進行設定。(進階層) 啟用、新增或移除可用性區域。
(進階層) 在多區域部署中,如果區域空出又恢復,則區域 IP 位址會變更。
重要
從內部變更為外部虛擬網路時,從 移
stv1
轉至stv2
平臺或變更網路中子網,更新 VNet 中的 API 管理 實例,您可以設定不同的公用 IP 位址。 如果您未提供,則會自動設定 Azure 管理的公用 IP 位址。