建議 Azure API 管理的安全性設定
適用於 APIM 的 Azure 安全性基準會將 Microsoft Cloud Security Benchmark 1.0 版的指導套用至 APIM。 Microsoft 雲端安全性基準提供如何在 Azure 上保護雲端解決方案的建議。 內容分組會依據 Microsoft 雲端安全性基準所定義的安全性控制項,以及適用於 APIM 的相關指導。
您可以使用適用於雲端的 Microsoft Defender 來監視此安全性基準及其建議。 Azure 原則定義會列在適用於雲端的 Microsoft Defender 入口網站頁面的 [法規合規性] 區段中。
當功能具有相關的 Azure 原則定義時,會列在此基準中,以協助您測量 Microsoft 雲端安全性基準控制項和建議的合規性。 某些建議可能需要付費的 Microsoft Defender 方案,才能啟用特定的安全性案例。
網路安全性
NS-1:建立網路分割界限
功能:虛擬網路整合
說明:服務支援部署到客戶的私人虛擬網路 (VNet) 中。
設定指導:在 Azure 虛擬網路 (VNET) 內部署 Azure APIM,因此可存取網路內的後端服務。 開發人員入口網站與 API 管理閘道,均可設定為從網際網路 (外部) 存取或只在 Vnet (內部) 中存取。
- 外部:APIM 閘道和開發人員入口網站可透過外部負載平衡器從公用網際網路存取。 閘道可以存取虛擬網路內的資源。
- 外部虛擬網路設定
- 內部:APIM 閘道和開發人員入口網站只能透過內部負載平衡器從虛擬網路內存取。 閘道可以存取虛擬網路內的資源。
- 內部虛擬網路設定
功能:網路安全性群組支援
說明:服務網路流量會遵循其子網路上的網路安全性群組規則指派。
設定指導:將網路安全性群組 (NSG) 部署到您的 APIM 子網路,以透過連接埠、通訊協定、來源 IP 位址或目的地 IP 位址來限制或監視流量。 建立 NSG 規則來限制服務的開放連接埠 (例如防止從不受信任的網路存取管理連接埠)。 請注意,NSG 預設會拒絕所有輸入流量,但允許來自虛擬網路和 Azure Load Balancer 的流量。
警告
在 APIM 子網路上設定 NSG 時,必須開啟一組連接埠。 如果上述任一連接埠無法使用,則 APIM 可能無法正常運作,且可能無法存取。
NS-2:使用網路控制保護雲端服務
功能:Azure Private Link
說明:用於篩選網路流量的服務原生 IP 篩選功能 (不要和 NSG 或 Azure 防火牆混淆)。
設定指導:在您無法將 APIM 執行個體部署到虛擬網路的執行個體中,您應該改為部署私人端點來建立這些資源的私人存取點。
注意
若要啟用私人端點,API 管理執行個體不能已設定外部或內部虛擬網路。 私人端點連線僅支援 APIM 執行個體的傳入流量。
功能:停用公用網路存取
說明:服務支援使用服務層級 IP ACL 篩選規則 (非 NSG 或 Azure 防火牆) 或使用 [停用公用網络存取] 切換開關來停用公用網络存取。
設定指導:在指派給服務子網路的 NSG 上使用 IP ACL 篩選規則,或切換交換器進行公用網路存取,來停用公用網路存取。
注意
APIM 支援部署至虛擬網路,以及使用私人端點鎖定非網路型部署,以及停用公用網路存取。
功能:適用於雲端的 Microsoft Defender 監視
Azure 原則內建定義 - Microsoft.ApiManagement:
名稱 (Azure 入口網站) |
說明 | 效果 | 版本 (GitHub) |
---|---|---|---|
API 管理服務應使用虛擬網路 | Azure 虛擬網路部署提供增強的安全性、隔離,並可讓您將 API 管理服務放在可控制存取權的非網際網路可路由網路中。 這些網路接著可以使用各種 VPN 技術連線到您的內部部署網路,以存取網路和/或內部部署內的後端服務。 開發人員入口網站和 API 閘道可以設定為可從網際網路存取,或只能在虛擬網路內存取。 | Audit, Deny, Disabled | 1.0.2 |
APIM 應停用服務組態端點的公用網路存取 | 若要改善 APIM 服務的安全性,請限制服務組態端點 (例如直接存取管理 API)、Git 組態管理端點或自我裝載閘道組態端點的連線能力。 | AuditIfNotExists, Disabled | 1.0.1 |
NS-6:部署 Web 應用程式防火牆
適用於 NS-6 的其他指導:若要保護重要的 Web/HTTP API,請在內部模式中設定虛擬網路 (VNET) 內的 APIM,並設定 Azure 應用程式閘道。 應用程式閘道是 PaaS 服務。 其可作為反向 Proxy,並提供 L7 負載平衡、路由、Web 應用程式防火牆 (WAF) 和其他服務。 深入了解。
將內部 VNET 中佈建的 APIM 與應用程式閘道前端結合,可啟用下列案例:
- 使用單一 APIM 資源,將所有 API 公開給內部取用者和外部取用者。
- 使用單一 APIM 資源,將 API 子集公開給外部取用者。
- 提供切換開啟和關閉從公用網際網路存取 APIM 的方式。
身分識別管理
IM-1:使用集中式身分識別和驗證系統
功能:資料平面存取所需的 Azure AD 驗證
說明:服務支援使用 Azure AD 驗證進行資料平面存取。
設定指導:盡可能使用 Azure Active Directory (Azure AD) 作為 APIM 的預設驗證方法。
- 設定 Azure APIM 開發人員入口網站,以使用 Azure AD 來驗證開發人員帳戶。
- 設定 Azure APIM 執行個體,以使用 OAuth 2.0 通訊協定搭配 Azure AD 來保護 API。
功能:資料平面存取的本機驗證方法
說明:支援資料平面存取的本機驗證方法,例如本機使用者名稱和密碼。
功能附註:避免使用本機驗證方法或帳戶,請盡可能停用這些功能。 請盡可能改為使用 Azure AD 進行驗證。
設定指導:限制使用本機驗證方法來存取資料平面、維護 APIM 使用者帳戶的詳細目錄,並視需要協調存取權。 在 API 管理中,開發人員是由 API 管理公開的 API 取用者。 根據預設,新建立的開發人員帳戶為 [使用中],且與開發人員群組相關聯。 處於「作用中」 狀態的開發人員帳戶可用來存取擁有訂用帳戶的所有 API。
此外,Azure APIM 訂用帳戶是保護 API 存取的其中一種方法,並隨附一組支援輪替的已產生訂用帳戶金鑰。
您可以盡可能改用 Azure Active Directory (Azure AD) 作為預設驗證方法來控制資料平面存取,而不是使用其他驗證方法。
IM-3:安全且自動地管理應用程式身分識別
功能:受控識別
說明:資料平面動作支援使用受控識別進行驗證。
設定指導:使用 Azure Active Directory (Azure AD) 所產生的受控服務識別,可讓您的 APIM 執行個體輕鬆且安全地存取其他受 Azure AD 保護的資源 (例如 Azure Key Vault),而不是使用服務主體。 受控識別認證完全受平台管理、輪替和保護,且避開原始程式碼或組態檔中的硬式編碼認證。
功能:服務主體
說明:資料平面支援使用服務主體進行驗證。
設定指導:這項功能設定目前沒有 Microsoft 指導方針。 請檢閱並判斷您的組織是否想要設定這項安全性功能。
IM-5::對應用程式存取使用單一登入 (SSO)
適用於 IM-5 的其他指導:Azure APIM 可以設定為利用 Azure Active Directory (Azure AD) 作為識別提供者,在開發人員入口網站上驗證使用者,以受益於 Azure AD 所提供的 SSO 功能。 設定之後,新的開發人員入口網站使用者可以選擇遵循現成的註冊程序,方法是先透過 Azure AD 進行驗證,然後一旦通過驗證,在入口網站上完成註冊程序。
或者,您可以透過委派進一步自訂登入/註冊程序。 委派可讓您使用現有的網站來處理開發人員登入/註冊以及訂閱產品,而不是在開發人員入口網站中使用內建功能。 它可讓您的網站擁有使用者資料,並以自訂方式執行這些步驟的驗證。
IM-7:根據條件限制資源存取
功能:資料平面的條件式存取
說明:您可以使用 Azure AD 條件式存取原則來控制資料平面存取。
設定指導:不支援使用此功能來保護此服務。
IM-8:限制認證和祕密的公開
功能:Azure Key Vault 中服務認證和秘密支援整合和儲存
說明:資料平面針對認證和祕密存放區支援原生使用 Azure Key Vault。
設定指導:設定 APIM 與 Azure Key Vault 的整合。 請確定 API 管理的秘密 (具名值) 會儲存在 Azure Key Vault 中,以便安全地存取和更新這些值。
特殊權限存取
PA-1:劃分和限制高度權限/系統管理使用者
功能:本機系統管理員帳戶
說明:服務具有本機系統管理帳戶的概念。
功能附註:避免使用本機驗證方法或帳戶,請盡可能停用這些功能。 請盡可能改為使用 Azure AD 進行驗證。
設定指導:如果例行管理作業不需要,請停用或限制任何本機系統管理員帳戶,僅供緊急使用。
注意
APIM 允許建立本機使用者帳戶。 不建立這些本機帳戶,而是只啟用 Azure Active Directory (Azure AD) 驗證,並將權限指派給這些 Azure AD 帳戶。
PA-7:受保護的系統管理員
功能:適用於資料平面的 Azure RBAC
說明:Azure 角色型存取控制 (Azure RBAC) 可用來管理對服務資料平面動作的存取。
設定指導:使用 Azure 角色型存取控制 (Azure RBAC) 來控制 Azure APIM 的存取。 Azure API 管理需要 Azure 角色型存取控制,才能針對 API 管理服務及實體 (例如 API 和原則) 啟用更細緻的存取管理。
PA-8:判斷雲端提供者支援的存取程序
功能:客戶加密箱
說明:客戶加密箱可用於 Microsoft 支援存取。
設定指導:在 Microsoft 需要存取您的資料的支援案例中,使用客戶加密箱來檢閱,然後核准或拒絕 Microsoft 的每個資料存取要求。
資料保護
DP-1:探索、分類及標記敏感性資料
功能:敏感性資料探索和分類
說明:工具 (例如 Azure Purview 或 Azure 資訊保護) 可用於服務中的資料探索和分類。
設定指導:不支援使用此功能來保護此服務。
DP-2:監視以敏感性資料為目標的異常和威脅
功能:資料洩漏/外洩防護
說明:服務支援 DLP 解決方案來監視敏感性資料移動 (在客戶的內容中)。
設定指導:不支援使用此功能來保護此服務。
DP-3:加密傳輸中的敏感性資料
功能:傳輸中資料加密
說明:服務支援資料平面的傳輸中資料加密。
設定指導:預設部署已啟用此設定,不需要其他設定。
適用於 DP-3 的其他指導:管理平面呼叫是透過 TLS 以透過 Azure Resource Manager 來進行。 需要有效的 JSON Web 權杖 (JWT)。 資料平面呼叫可以使用 TLS 和其中一個支援的驗證機制來保護 (例如,用戶端憑證或 JWT)。
DP-6:使用安全金鑰管理流程
功能:Azure Key Vault 中的金鑰管理
說明:此服務支援任何客戶金鑰、祕密或憑證的 Azure Key Vault 整合。
設定指導:設定 APIM 與 Azure Key Vault 的整合。 請確定 API 管理所使用的金鑰會儲存在 Azure Key Vault 中,以便安全地存取和更新這些值。
DP-7:使用安全憑證管理流程
功能:Azure Key Vault 中的憑證管理
說明:此服務支援任何客戶憑證的 Azure Key Vault 整合。
設定指導:設定 APIM 與 Azure Key Vault 的整合。 請確定 API 管理的秘密 (具名值) 會儲存在 Azure Key Vault 中,以便安全地存取和更新這些值。
使用 Azure Key Vault 來建立及控制憑證生命週期,包括建立、匯入、輪替、撤銷、儲存和清除憑證。 請確定憑證產生遵循已定義的標準,而不使用任何不安全的屬性,例如:金鑰大小不足、有效期間過長、不安全的密碼編譯。 根據定義的排程或憑證到期時間,在 Azure Key Vault 和 Azure 服務中設定憑證的自動輪替。 如果應用程式中不支援自動輪替,請確定它們仍會使用 Azure Key Vault 和應用程式中的手動方法進行輪替。
資產管理
AM-2:僅使用核准的服務
功能:Azure 原則支援
說明:服務組態可以透過 Azure 原則進行監視和強制執行。
設定指導:使用內建 Azure 原則來監視及強制執行跨 APIM 資源的安全設定。 在「Microsoft.ApiManagement」命名空間中使用 Azure 原則別名,視需要建立自訂 Azure 原則定義。
記錄和威脅偵測
LT-1:啟用威脅偵測功能
功能:適用於服務/產品供應項目的 Microsoft Defender
說明:服務具有供應項目特定的 Microsoft Defender 解決方案,可監視及警示安全性問題。
設定指導:不支援使用此功能來保護此服務。
LT-4:啟用安全性調查的記錄
功能:Azure 資源記錄
說明:服務會產生資源記錄,以提供增強的服務特定計量和記錄。 客戶可以設定這些資源記錄,並將其傳送至自己的資料接收器,例如儲存體帳戶或記錄分析工作區。
設定指導:為 APIM 啟用資源記錄,資源記錄提供有關作業和錯誤的豐富資訊,這些資訊對於稽核和疑難排解用途非常重要。 APIM 的資源記錄類別包括:
- GatewayLogs
- WebSocketConnectionLogs
備份及復原
BR-1:確保定期自動備份
功能:Azure 備份
說明:服務可由 Azure 備份服務進行備份。
設定指導:不支援使用此功能來保護此服務。
功能:服務原生備份功能
說明:服務支援自己的原生備份功能 (如果未使用 Azure 備份)。
其他指導:利用 Azure APIM 服務中的備份和還原功能。 利用備份功能時,Azure APIM 會將備份寫入客戶擁有的 Azure 儲存體帳戶。 Azure APIM 會提供備份和還原作業,以執行完整的系統備份和還原。