Azure API 管理的 Azure 安全基線

這很重要

此安全基準基於先前版本的 Microsoft Cloud Security Benchmark(v1.0),可能包含過時的指引。 欲取得最新安全指引,請參閱 API 管理文件。

此安全基準將 Microsoft 雲端安全基準 的指引應用於 Azure API 管理。 Microsoft 雲端安全性基準提供如何在 Azure 上保護雲端解決方案的建議。 內容分組會依據 Microsoft 雲端安全性基準所定義的安全性控制項,以及適用於 APIM 的相關指導。

你可以透過使用 Microsoft Defender for Cloud 來監控這個安全基線及其建議。 Azure 原則定義會列在適用於雲端的 Microsoft Defender 入口網站頁面的 [法規合規性] 區段中。

當某功能有相關的 Azure Policy 定義時,會在此基線中列出,以協助你衡量符合 Microsoft 雲端安全基準的控制與建議。 某些建議可能需要付費的 Microsoft Defender 方案,才能啟用特定的安全性案例。

備註

不適用於 API 管理的功能被排除在外。 想了解 API 管理如何完全對應到 Microsoft 雲端安全基準,請參閱 完整的 API Management 安全基準映射檔案。

安全檔案

安全プロファイル總結了 API 管理的高衝擊行為,需考慮更高的安全性。

服務行為屬性 價值觀
產品類別 網路
客戶可以訪問主機/操作系統 無存取權
服務可以部署到客戶的虛擬網路中 對
儲存靜態客戶資料 否

網路安全性

欲了解更多資訊,請參閱 Microsoft 雲端安全基準:網路安全。

NS-1:建立網路分割界限

Features

虛擬網路整合

說明:服務支援部署至客戶的私人虛擬網路。 欲了解更多,請參閱 可部署於虛擬網路中的服務。

支持 預設啟用 配置責任
對 否 客戶

設定指引:在 Azure 虛擬網路內部署 API 管理,使其能存取網路內的後端服務。 開發者入口網站與 API 管理閘道可設定為可從網際網路(外部)或僅在虛擬網路內(內部)存取。

  • 外部:APIM 閘道和開發人員入口網站可透過外部負載平衡器從公用網際網路存取。 閘道可以存取虛擬網路內的資源。
  • 內部:APIM 閘道和開發人員入口網站只能透過內部負載平衡器從虛擬網路內存取。 閘道可以存取虛擬網路內的資源。

參考資料: 使用虛擬網路搭配 Azure API 管理

網路安全群組支援

說明:服務網路流量會遵守其子網的網路安全群組(NSG)規則指派。 欲了解更多,請參閱 Azure 網路安全群組概覽。

支持 預設啟用 配置責任
對 否 客戶

設定指引:在您的 API 管理子網路部署網路安全群組,以依埠口、協定、來源 IP 位址或目的 IP 位址限制或監控流量。 建立 NSG 規則來限制服務的開放連接埠 (例如防止從不受信任的網路存取管理連接埠)。 預設情況下,NSG 會拒絕所有入站流量,但允許來自虛擬網路和 Azure 負載平衡器的流量。

注意:在 API 管理子網設定 NSG 時,必須開啟一組埠口。 如果上述任一連接埠無法使用,則 APIM 可能無法正常運作,且可能無法存取。

注意: 設定 NSG 規則以管理 API

參考資料: 虛擬網路配置參考資料:API Management

NS-2:使用網路控制保護雲端服務

Features

說明:服務原生 IP 過濾功能,用於過濾網路流量(不要與 NSG 或 Azure Firewall 混淆)。 欲了解更多,請參閱 What is Azure Private Link?

支持 預設啟用 配置責任
對 否 客戶

設定指引:若無法將 API Management 實例部署到虛擬網路中,應部署私有端點以建立該資源的私有存取點。

注意:要啟用私有端點,API Management 實例無法預先設定外部或內部虛擬網路。 私人端點連線僅支援 APIM 執行個體的傳入流量。

參考資料: 使用私有端點私有連接 API 管理

關閉公共網路存取

說明:服務支援透過使用服務層級的 IP ACL 過濾規則(非 NSG 或 Azure 防火牆)或使用 停用公共網路存取 切換開關來停用公共網路存取。 欲了解更多,請參閱 NS-2:具網路控制的安全雲端服務。

支持 預設啟用 配置責任
對 否 客戶

設定指引:停用公共網路存取可以使用分配給服務子網的 NSG 上的 IP ACL 過濾規則,或使用切換開關來實現。

注意:API Management 支援部署至虛擬網路,並可使用私人端點保護非基於網路的部署,及停用公共網路存取。

Reference: 停用公共網路存取

適用於雲端監視的 Microsoft Defender

Azure Policy built-in definitions - Microsoft.ApiManagement:

名稱
(Azure 入口網站)
Description Effect(s) 版本
(GitHub)
API 管理服務應使用虛擬網路 Azure 虛擬網路部署提供增強的安全性、隔離,並可讓您將 API 管理服務放在可控制存取權的非網際網路可路由網路中。 這些網路接著可以使用各種 VPN 技術連線到您的內部部署網路,以存取網路和/或內部部署內的後端服務。 開發人員入口網站與 API 閘道,可設定為從網際網路存取或只從虛擬網路內存取。 稽核、拒絕、停用 1.0.2

NS-6:部署 Web 應用程式防火牆

NS-6 的其他指引

為了保護關鍵的 Web/HTTP API,請在虛擬網路內部模式下設定 API 管理,並設定 Azure 應用閘道。 應用程式閘道是 PaaS 服務。 其可作為反向 Proxy,並提供 L7 負載平衡、路由、Web 應用程式防火牆 (WAF) 和其他服務。 欲了解更多,請參閱 「與應用閘道整合內部虛擬網路中的 API 管理」。

結合內部虛擬網路中配置的 API 管理與應用閘道前端,可實現以下情境:

  • 使用單一的 API 管理資源,將所有 API 暴露給內部與外部使用者。
  • 使用單一 APIM 資源,將 API 子集公開給外部取用者。
  • 提供一種方法,使得能夠在公開網際網路上啟用和停用 API 管理功能存取。

身分識別管理

欲了解更多資訊,請參閱 Microsoft 雲端安全基準:身份管理。

IM-1:使用集中式身分識別和驗證系統

Features

資料平面存取需要 Microsoft Entra 認證

描述:服務支援使用 Microsoft Entra 驗證進行資料平面存取。 欲了解更多,請參閱 「什麼是 Microsoft Entra 認證?」

支持 預設啟用 配置責任
對 否 客戶

設定指引:盡可能使用 Microsoft Entra ID 作為 API 管理的預設認證方式。

  • 設定您的 API 管理開發者入口網站,使用 Microsoft Entra ID 來驗證開發者帳號。
  • 透過使用 OAuth 2.0 協定搭配 Microsoft Entra ID 來配置您的 API 管理實例,以保護您的 API。

參考資料: 在 Azure API Management 中使用 OAuth 2.0 授權,使用 Microsoft Entra ID 保護 API

資料平面存取的本地認證方法

說明:支援資料平面存取的本地認證方法,例如本地使用者名稱與密碼。 若要深入瞭解,請參閱 驗證和授權。

支持 預設啟用 配置責任
對 否 客戶

功能說明:避免使用本地驗證方法或帳號,應盡可能停用。 相反地,盡可能使用 Microsoft Entra ID 來驗證。

設定指引:限制在資料平面存取時使用本地認證方法。 維護 API 管理使用者帳戶存貨,並在需要時核對存取權限。 在 API 管理中,開發者是透過 API 管理所暴露的 API 的使用者。 預設情況下,新建立的開發者帳號是 啟用的,並且會與開發者群組相關聯。 處於作用中狀態的開發人員帳戶,可用來存取他們擁有訂用帳戶的所有 API。

此外,API 管理訂閱是確保存取 API 的一種方式,並附帶一對產生的訂閱金鑰,支援輪替功能。

與其使用其他認證方法,若可能,請使用 Microsoft Entra ID 作為預設的認證方法來控制資料平面存取。

參考資料: API 管理政策參考

IM-3:安全地且自動管理應用程式身分識別

Features

管理式身分識別

描述:資料平面動作支援使用受控識別進行驗證。 欲了解更多,請參閱「 Azure 資源的管理身份是什麼?」

支持 預設啟用 配置責任
對 否 客戶

設定指引:使用由 Microsoft Entra ID 產生的管理服務身份碼,讓您的 API Management 實例能輕鬆且安全地存取其他 Microsoft Entra 保護的資源,例如 Azure Key Vault,而不必使用服務主體。 受控識別認證完全受平臺管理、輪替及保護,避免原始程式碼或組態檔中的硬式編碼認證。

參考資料: API 管理政策參考

服務主體

說明:資料平面支援使用服務主體進行認證。 欲了解更多,請參閱 「用 Azure PowerShell 建立 Azure 服務主體」。

支持 預設啟用 配置責任
對 否 客戶

設定指引:目前 Microsoft 沒有針對此功能配置的指引。 檢閱並判斷您的組織是否要設定此安全性功能。

IM-5:使用單一登錄 (SSO) 進行應用程式存取

IM-5 的其他指導方針

Azure API 管理可設定為使用 Microsoft Entra ID 作為身份提供者,以在開發者入口網站驗證使用者,以享受 Microsoft Entra 提供的 SSO 功能。 設定完成後,新開發者入口網站的使用者可選擇依照現成的註冊流程,先透過 Microsoft Entra 進行認證,並在認證後完成入口網站的註冊流程。

或者,您可以透過委派進一步自訂登入/註冊程序。 委派可讓您使用現有的網站來處理開發人員登入/註冊以及訂閱產品,而不是在開發人員入口網站中使用內建功能。 它可讓您的網站擁有使用者資料,並以自訂方式執行這些步驟的驗證。

IM-7:根據條件限制資源存取

Features

資料平面的條件存取

說明:資料平面存取可透過 Microsoft Entra 條件存取政策進行控制。 欲了解更多,請參閱 《什麼是條件存取?》

支持 預設啟用 配置責任
否 不適用 不適用

設定指引:此功能不支援以保護此服務。

IM-8:限制認證和秘密的公開

Features

服務憑證和密鑰支持在 Azure 金鑰保管庫中的整合和存儲

說明:資料平面支援原生使用 Azure Key Vault 來儲存憑證與秘密。 欲了解更多,請參閱 Azure Key Vault 機密。

支持 預設啟用 配置責任
對 否 客戶

設定指引:設定 API Management 與 Azure Key Vault 的整合。 確保 API 管理的秘密(命名值)儲存在 Azure Key Vault 中,以便安全存取與更新。

參考資料: 在 Azure API 管理政策中使用命名值,搭配 Key Vault 整合

適用於雲端監視的 Microsoft Defender

Azure Policy built-in definitions - Microsoft.ApiManagement:

名稱
(Azure 入口網站)
Description Effect(s) 版本
(GitHub)
APIM 的最低 API 版本應設定為 2019-12-01 或更新版本 若要防止與唯讀使用者共用服務密碼,最低 API 版本應設定為 2019-12-01 或更新版本。 稽核、拒絕、停用 1.0.1

特權存取

欲了解更多資訊,請參閱 Microsoft 雲端安全基準:特權存取。

PA-1:分隔及限制高許可權/系統管理使用者

Features

本地管理員帳號

說明:服務採用了本地管理帳戶的概念。 欲了解更多,請參閱 「分離並限制高權限/管理員使用者」。

支持 預設啟用 配置責任
對 否 客戶

功能說明:避免使用本地驗證方法或帳號,應盡可能停用。 請改為使用 Microsoft Entra ID 來盡可能進行驗證。

設定指引:若非例行管理作業所需,請停用或限制任何本地管理員帳號,僅供緊急使用。

注意:API 管理允許建立本地使用者帳號。 與其建立這些本地帳號,不如只啟用 Microsoft Entra 認證,並為這些 Microsoft Entra ID 帳號分配權限。

參考資料: 如何在 Azure API Management 中管理使用者帳號

PA-7:遵循適量管理(最小權限)原則

Features

Azure RBAC 用於資料平面

說明:Azure 角色基礎存取控制(Azure RBAC)可用於管理服務資料平面的存取。 欲了解更多,請參閱什麼是 Azure 角色為基礎的存取控制?

支持 預設啟用 配置責任
對 否 客戶

設定指引:使用 Azure RBAC 來控制 API 管理的存取。 API 管理依賴 Azure RBAC 來實現 API 管理服務與實體(例如 API 與政策)的細緻存取管理。

參考資料: 如何在 Azure API Management 中使用基於角色的存取控制

適用於雲端監視的 Microsoft Defender

Azure Policy built-in definitions - Microsoft.ApiManagement:

名稱
(Azure 入口網站)
Description Effect(s) 版本
(GitHub)
APIM 訂用帳戶不應將範圍設定為所有 API APIM 訂用帳戶的範圍應設定為產品或個別 API,而不是所有 API,否則可能會導致資料過度暴露。 稽核、停用、拒絕 1.1.0

PA-8:確定雲端提供者支援的存取流程

Features

客戶加密箱

說明:客戶鎖箱可用於 Microsoft 支援存取權限。 欲了解更多,請參閱 Microsoft Azure 的客戶鎖箱。

支持 預設啟用 配置責任
對 否 共用

設定指引:在支援情境中,Microsoft 需要存取您的資料時,請使用 Customer Lockbox 審查,然後批准或拒絕 Microsoft 的每一項資料存取請求。

資料保護

欲了解更多資訊,請參閱 Microsoft 雲端安全基準:資料保護。

DP-1:探索、分類及標記敏感性資料

Features

敏感資料發現與分類

說明:工具(如 Azure Purview 或 Azure Information Protection)可用於服務中的資料發現與分類。 欲了解更多,請參閱 「發現、分類及標註敏感資料」。

支持 預設啟用 配置責任
否 不適用 不適用

設定指引:此功能不支援以保護此服務。

DP-2:監視以敏感數據為目標的異常和威脅

Features

資料外洩/遺失防範

說明:此服務支援DLP 解決方案,以監控敏感資料移動(在客戶內容中)。 欲了解更多,請參閱 「監控針對敏感資料的異常與威脅」。

支持 預設啟用 配置責任
否 不適用 不適用

設定指引:此功能不支援以保護此服務。

DP-3:加密傳輸中的敏感數據

Features

傳輸中資料加密

描述:服務支援對於資料平面的傳輸中資料進行加密。 欲了解更多,請參閱 「運輸中的資料」。

支持 預設啟用 配置責任
對 對 Microsoft

設定指引:無需其他設定,因為預設部署已啟用此功能。

參考資料: 管理 Azure API Management 中的協議與密碼

DP-3 的其他指引

管理平面呼叫是透過 Azure Resource Manager 透過 TLS 進行的。 需要有效的 JSON Web 權杖 (JWT)。 資料平面呼叫可以使用 TLS 和其中一個支援的驗證機制來保護 (例如,用戶端憑證或 JWT)。

適用於雲端監視的 Microsoft Defender

Azure Policy built-in definitions - Microsoft.ApiManagement:

名稱
(Azure 入口網站)
Description Effect(s) 版本
(GitHub)
APIM API 應一律只使用加密通訊協定 為了確保傳輸中資料的安全性,API 應該只能透過 HTTPS 或 WSS 等加密通訊協定來使用。 請避免使用不安全的通訊協定,例如 HTTP 或 WS。 稽核、停用、拒絕 2.0.2

DP-4:預設啟用靜態資料加密

Features

使用平台金鑰進行資料靜態加密

說明:支援使用平台金鑰進行資料靜態加密。 任何處於靜態狀態的客戶資料都會用這些 Microsoft 管理的金鑰加密。 欲了解更多,請參閱 Microsoft 雲端服務中的靜態加密。

支持 預設啟用 配置責任
對 對 Microsoft

功能說明:API 管理實例中的客戶資料,包括 API 設定、產品、訂閱、使用者、群組及自訂開發者入口網站內容,會儲存在 SQL Azure 資料庫及 Azure 儲存中,後者會自動加密靜態內容。

設定指引:無需其他設定,因為預設部署已啟用此功能。

DP-6:使用安全金鑰管理程式

Features

Azure Key Vault 中的 Key Management

說明:服務支援 Azure Key Vault 整合,以支援任何客戶金鑰、秘密或憑證。 欲了解更多,請參閱 Azure Key Vault 的介紹。

支持 預設啟用 配置責任
對 否 客戶

設定指引:設定 API Management 與 Azure Key Vault 的整合。 確保 API 管理所使用的金鑰儲存在 Azure 金鑰庫中,以便安全存取與更新。

參考資料: 金鑰庫整合的前提條件

適用於雲端監視的 Microsoft Defender

Azure Policy built-in definitions - Microsoft.ApiManagement:

名稱
(Azure 入口網站)
Description Effect(s) 版本
(GitHub)
APIM 祕密的具名值應儲存在 Azure Key Vault 中 每個 API 管理服務中的具名值是由名稱和值對組成的集合。 祕密值可以儲存為 APIM 中的加密文字 (自訂祕密),或藉由參考 Azure Key Vault 中的祕密來儲存。 若要改善 API 管理和機密的安全性,請從 Azure Key Vault 參考具名的祕密值。 Azure Key Vault 支援細微的存取管理和祕密輪替原則。 稽核、停用、拒絕 1.0.2

DP-7:使用安全的憑證管理程序

Features

Azure Key Vault 中的憑證管理

說明:該服務支援任何客戶憑證的 Azure Key Vault 整合。 欲了解更多,請參閱 「Key Vault 憑證入門」。

支持 預設啟用 配置責任
對 否 客戶

設定指引:設定 API Management 與 Azure Key Vault 的整合。 確保 API 管理的秘密(命名值)儲存在 Azure Key Vault 中,以便安全存取與更新。

使用 Azure Key Vault 來建立及控制憑證生命週期,包括建立、匯入、輪替、撤銷、儲存和清除憑證。 請確定憑證產生遵循已定義的標準,而不使用任何不安全的屬性,例如:金鑰大小不足、有效期間過長、不安全的密碼編譯。 根據定義的排程或憑證到期時間,在 Azure Key Vault 和 Azure 服務中設定憑證的自動輪替。 如果應用程式中不支援自動輪替,請確定它們仍會使用 Azure Key Vault 和應用程式中的手動方法進行輪替。

參考資料: 在 Azure API Management 中使用客戶端憑證認證的安全後端服務

資產管理

欲了解更多資訊,請參閱 Microsoft 雲端安全基準:資產管理。

AM-2:僅使用已核准的服務

Features

Azure 原則支援

說明:服務設定可透過 Azure Policy 監控與強制執行。 欲了解更多,請參閱 「建立與管理政策以強制合規」。

支持 預設啟用 配置責任
對 否 客戶

設定指引:使用內建的 Azure Policy 監控並強制執行 API 管理資源間的安全設定。 在 Microsoft.ApiManagement 命名空間中使用 Azure Policy 別名,在需要時建立自訂的 Azure Policy 定義。

參考文獻: Azure Policy 內建的 Azure API Management 政策定義

記錄和威脅偵測

欲了解更多資訊,請參閱 Microsoft 雲端安全基準:日誌與威脅偵測。

LT-1:啟用威脅偵測功能

Features

Microsoft Defender 服務 / 產品系列

說明:Service 提供針對特定服務的 Microsoft Defender 解決方案,用於監控並警示安全問題。 若要了解更多,請參閱 什麼是 Microsoft Defender for Cloud。

支持 預設啟用 配置責任
對 否 客戶

設定指引: Microsoft Defender for APIs,是 Microsoft Defender for Cloud 的功能之一,提供完整的生命週期保護、偵測及回應覆蓋,適用於由 Azure API 管理管理的 API。

將 API 上線至適用於 API 的 Defender 是一個兩步驟的流程:針對訂用帳戶啟用適用於 API 的 Defender 方案,並在 APIM 執行個體中將未受保護的 API 上線。  

在你的 API 管理實例選單中選擇 Microsoft Defender for Cloud,查看所有已接載 API 的安全建議與警示摘要。

參考資料: 啟用使用 Microsoft Defender for Cloud 的進階 API 安全功能

LT-4:啟用日誌以進行安全性調查

Features

Azure 資源日誌

說明:服務產生資源日誌,可提供強化的服務專屬指標與日誌。 客戶可以設定這些資源記錄,並將其傳送至自己的數據接收端,例如儲存帳戶或記錄分析工作區。 欲了解更多,請參閱 Azure Monitor 資料來源及資料收集方法。

支持 預設啟用 配置責任
對 否 客戶

設定指引:啟用 API 管理資源日誌,資源日誌提供豐富的操作與錯誤資訊,對稽核與故障排除非常重要。 APIM 的資源記錄類別包括:

  • GatewayLogs
  • WebSocketConnectionLogs

參考資料: 資源日誌

備份及復原

欲了解更多資訊,請參閱 Microsoft 雲端安全基準:備份與復原。

BR-1:確保定期自動備份

Features

Azure 備份

說明:該服務可由 Azure 備份服務備份。 欲了解更多,請參閱 Azure Backup 服務是什麼?

支持 預設啟用 配置責任
否 不適用 不適用

設定指引:此功能不支援以保護此服務。

服務原生備份功能

說明:服務支援自身的原生備份功能(若不使用 Azure Backup)。 欲了解更多,請參閱 「確保定期自動備份」。

支持 預設啟用 配置責任
對 否 共用

額外指引:請使用 API Management 服務中的備份與還原功能。 使用備份功能時,API Management 會將備份寫入客戶擁有的 Azure Storage 帳號。 API Management 提供備份與還原操作,以執行完整的系統備份與還原。

參考資料: 如何在 Azure API Management 中使用服務備份與還原實作災難復原