共用方式為


Azure Spring Apps 登陸區域加速器的安全性考慮

本文說明 Azure Spring Apps 中裝載之工作負載的安全性考慮和建議。 本指南可協助您建立能夠偵測、防止及回應安全性弱點的工作負載。

受保護的應用程式無法保證整個工作負載的安全性。 身為工作負載擁有者,評估人為錯誤,並評估受攻擊面,例如應用程式與應用程式互動的基礎結構服務。

Azure 提供網路、身分識別和資料的安全性控制,以支援深度防禦策略。 許多控制項都內建于 Azure Spring Apps 中。 本指南是以 衍生自 Azure 安全性基準 2.0 版的 Azure Spring Apps 的 Azure 安全性基準為基礎。 基準測試提供如何在 Azure Spring Apps 雲端上執行之工作負載的建議。

集中式小組在平臺中提供網路和身分識別控制。 它們提供護欄,以維護 Azure 中平臺、應用程式和資源的控制權。 為工作負載提供的應用程式登陸區域訂用帳戶會預先布建原則,這些原則繼承自管理群組。

當您設計工作負載時,請確定您擁有的安全性控制項與中央控制項一致。 此設計受限於集中式安全性小組進行的定期檢閱。 定期檢閱與中央小組的安全性控制與平臺原則,以確定工作負載需求已容納。

如需平臺設計的相關資訊,請參閱:

設計考量

  • 內部流量 。 限制或允許內部資源之間的流量遵循符合商務風險的企業分割原則。 如有必要,請透過虛擬網路和子網建立隔離界限。 實作規則來限制網路之間的流量。

  • 外部流量 。 使用 Azure 原生資源來保護您的工作負載資源免受外部網路的攻擊,包括:

    • 分散式阻斷服務 (DDoS) 攻擊。
    • 應用程式特定的攻擊。
    • 未經請求且潛在的惡意網際網路流量。
  • 身分識別管理。 使用 Microsoft Entra 功能,例如受控識別、單一登入、增強式驗證、受控識別,以及條件式存取,透過 Microsoft Entra ID 提供驗證和授權。

  • 安全性監視。 系統應該有監視工具來偵測威脅,並使用組織目標和 Azure 安全性基準測試控制項來測量合規性。 這些工具應與中央安全性資訊和事件管理 (SIEM) 系統整合,以全面檢視安全性狀態。

  • 傳輸中的資料。 元件、位置或 API 呼叫之間傳輸的資料必須加密。

  • 待用 資料。 所有保存的資料,包括組態,都必須加密。

  • 治理原則 。 您應該偵測與組織所設定的合規性標準差。 Azure 原則提供應套用的內建定義來偵測偏差。 當您套用原則時,它不會確保您完全符合控制項的所有需求。 內建定義中可能有不符合規範的標準。

  • 認證暴露 。 您可以使用身分識別或秘密來部署和執行程式碼、組態和保存的資料。 當您存取資產時,請確定已檢查認證。

  • 憑證管理。 憑證必須根據永遠不信任的零信任原則載入,且必須無認證。 只有在授與憑證存取權之前先驗證身分識別,才信任共用憑證。

  • 一致的部署 。 使用基礎結構即程式碼 (IaC) 將所有 Azure 資源的布建和設定自動化,並強化安全性狀態。

設計建議

網路作為周邊

這些網路控制會建立隔離界限,並限制進出應用程式的流程。

網路分割

當您部署 Azure Spring Cloud 服務資源時,請建立或使用現有的虛擬網路。

透過子網在虛擬網路內建立隔離。 使用 NSG 規則 來限制或允許內部資源之間的流量。 使用 適用於雲端的 Microsoft Defender 的自適性網路強化 功能,進一步強化限制埠和來源 IP 的 NSG 組態。 根據外部網路流量規則的組態。

當您建立安全性規則時,請使用 Azure 服務標籤 來定義網路存取控制,而不是特定的 IP 位址。 當您在適當規則的來源或目的地欄位中指定服務標籤名稱時,請允許或拒絕對應服務的流量。 Microsoft 會管理服務標籤所涵蓋的位址首碼。 它會在位址變更時自動更新服務標籤。

AzureSpringCloud在網路安全性群組或Azure 防火牆上使用服務標籤,以允許流量流向 Azure Spring Apps 中的應用程式。

如需詳細資訊,請參閱 在虛擬網路 中執行 Azure Spring Cloud 的客戶責任。

使用私人網路進行連線

在共置的環境中,使用 Azure ExpressRoute 或 Azure 虛擬私人網路 (VPN) 在 Azure 資料中心與內部部署基礎結構之間建立私人連線。 ExpressRoute 連線 不會透過公用網際網路,其可靠性、更快速的速度和較低的延遲。

針對 點對站 VPN 和站對站 VPN ,請將內部部署裝置或網路連線到虛擬網路。 使用這些 VPN 選項和 Azure ExpressRoute 的任何組合。

若要在 Azure 中連線兩個或多個虛擬網路,請使用 虛擬網路對等互連 。 對等互連虛擬網路之間的網路流量是私人的。 這種類型的流量會保留在 Azure 骨幹網路上。

來自外部網路的攻擊

使用整合式 Web 應用程式防火牆 (WAF) Azure 應用程式閘道 ,對輸入流量進行控制,並封鎖應用層攻擊。

使用 Azure 防火牆 來限制來自應用程式的輸出流量。 您可以使用Azure 防火牆來保護應用程式和服務,以防止來自網際網路和其他外部位置的潛在惡意流量。

Azure 防火牆威脅情報型篩選可以傳送警示或封鎖來自已知惡意 IP 位址和網域的流量。 IP 位址和網域來自 Microsoft 威脅情報摘要。 需要承載檢查時,請從 Azure Marketplace 部署具有承載檢查功能的協力廠商 入侵偵測/入侵預防系統(IDS/IPS)。 或者,您可以使用主機型 IDS/IPS 或主機型 端點偵測 和回應 (EDR) 解決方案,搭配或取代網路型 IDS/IPS。

若要保護工作負載資源免受 DDoS 攻擊,請在 Azure 虛擬網路上啟用 DDoS 標準保護 。 使用 適用於雲端的 Microsoft Defender 來偵測網路相關資源的設定錯誤風險。

保護功能變數名稱服務 (DNS)

使用 Azure DNS 來裝載 DNS 網域。 保護 DNS 區域和記錄免于不良動作專案。 基於該目的,建議使用 Azure 角色型存取控制 (Azure RBAC) 和資源鎖定。 如需詳細資訊,請參閱 防止懸置 DNS 專案並避免子域接管

以身分識別作為周邊

Azure 會透過 Microsoft Entra ID 提供身分識別控制項。 應用程式有許多功能,例如單一登入、增強式驗證、受控識別和條件式存取。 如需架構設計選項的相關資訊,請參閱 Azure Spring Apps 登陸區域加速器 的身分識別考慮。

下一節說明這些選項的安全性層面。

與集中式身分識別系統整合

Azure 登陸區域會使用 Microsoft Entra ID 作為預設身分識別和存取管理服務。 若要控管工作負載服務,建議使用集中式 Microsoft Entra 識別碼。 集中式 Microsoft Entra 識別碼包括存取組織的網路資源、Azure 儲存體、金鑰保存庫,以及應用程式相依的其他服務。

如果您想要授與 Azure Spring Apps 資料平面的存取權,請使用 Azure Spring Cloud Data Reader 內建角色。 此角色提供唯讀許可權。

建議使用下列 Microsoft Entra 功能:

  • 應用程式身分識別 。 應用程式可能需要存取其他 Azure 服務。 例如,如果想要從 Azure 金鑰保存庫擷取秘密,

    搭配 Azure Spring Apps 使用 受控識別 ,讓應用程式可以使用 Microsoft Entra ID 向其他服務驗證自己。 請避免針對此目的使用服務主體。 受控識別驗證程式不會使用原始程式碼或組態檔中硬式編碼的認證。

    如果您需要搭配憑證認證使用服務主體並回復至用戶端密碼,建議您使用 Microsoft Entra ID 來建立 具有資源層級限制許可權的服務主體

    在這兩種情況下,金鑰保存庫可以搭配 Azure 受控識別使用。 執行時間元件,例如 Azure 函式,可用來從金鑰保存庫擷取秘密。 如需詳細資訊,請參閱 Azure 金鑰保存庫 中的驗證。

  • Microsoft Entra 單一登入 (SSO) 建議使用 Microsoft Entra SSO ,從雲端或內部部署中執行的其他應用程式或裝置驗證應用程式的存取權。 SSO 為內部和外部使用者提供身分識別管理,例如合作夥伴或廠商。

  • 增強式驗證控制項 。 Microsoft Entra ID 透過多重要素驗證 (MFA) 和強式密碼無密碼方法支援增強式驗證控制項。 對於系統管理員和特殊許可權使用者,請使用最高層級的強式驗證方法,以在發生缺口時減少爆炸半徑。 然後將適當的增強式驗證原則推出給其他使用者。 如需詳細資訊,請參閱 在 Azure 中啟用 MFA 和 Microsoft Entra ID 的無密碼驗證選項。

  • 資源 的條件式存取。 Azure Spring Apps 支援 Microsoft Entra 條件式存取 ,以取得更細微的存取控制,以根據使用者定義的條件。 您可以設定條件,以包含特定 IP 範圍需要使用 MFA 登入的使用者登入。 這些 條件式存取原則 僅適用于向 Microsoft Entra 識別碼驗證以存取和管理應用程式的使用者帳戶。 這些原則不適用於用來連線至工作負載資源的服務主體、金鑰或權杖。

  • 特殊許可權存取 。 實 作 Microsoft Entra Privileged Identity Management ,以確保整個 Azure 環境中的最低許可權存取和深層報告。 Teams 應該開始週期性存取權檢閱,以確保正確的人員和服務原則具有目前且正確的授權等級。

資料控制項

網路和身分識別控制會限制對應用程式的存取,但資料必須受到保護。 加密可確保資料完整性,而且是必須套用以減輕威脅的重要安全性功能。

傳輸中的資料

傳輸的資料容易受到頻外攻擊,例如流量擷取。 使用加密來確保攻擊者無法輕易讀取或修改該資料。 Azure 提供 Azure 資料中心之間傳輸資料的加密。

Azure Spring Apps 支援使用傳輸層安全性 (TLS) v1.2 或更高版本進行加密。 TLS 透過身分識別和信任提供安全通訊,並加密所有類型的通訊。 您可以使用任何類型的 TLS 憑證。 例如,憑證授權單位單位所發行的憑證、延伸驗證憑證、支援任意數目子域的萬用字元憑證,或開發及測試環境的自我簽署憑證。

加密對於外部和公用網路上的流量而言非常重要。 根據預設,所有公用端點都必須針對輸入流量使用 HTTPS。 透過 Azure Resource Manager API 呼叫設定 Azure Spring Apps 服務的管理呼叫必須透過 HTTPS。

針對 HTTP 流量,請確定連線到 Azure 資源的用戶端可以交涉 TLS v1.2 或更新版本。 請勿使用過時的版本或通訊協定。 停用弱式加密。

針對遠端系統管理,而不是使用未加密的通訊協定,請使用適用于 Linux 的安全殼層 (SSH) 或適用于 Windows 的遠端桌面通訊協定 (RDP) 和 TLS。

待用資料

工作負載需要來源和成品、組態伺服器設定、應用程式設定和儲存體的存放區狀態。 待用伺服器端資料會受到 加密Azure 儲存體 保護。 儲存體使用 Microsoft 管理的金鑰自動加密內容。

設定伺服器快取、從上傳的來源建置的執行時間二進位檔,以及應用程式存留期期間的應用程式記錄會儲存至 Azure 受控磁片。 此資料 會自動加密 。 從使用者上傳的來源建置的容器映射會加密並儲存在 Azure Container Registry 中

針對支援案例,當 Microsoft 需要存取相關客戶資料時,請使用 Microsoft Azure 的客戶加密箱,因為您的小組或組織必須核准存取權。

監視和警示帳戶異常

建議適用於雲端的 Microsoft Defender接收可疑活動的警示,例如訂用帳戶中過多失敗的驗證嘗試或已淘汰的帳戶。

Azure Spring Apps 與 Microsoft Entra ID 整合,可追蹤登入活動,包括有風險的登入。您可以使用稽核記錄來偵測對 Microsoft Entra 識別碼內任何資源所做的變更。 資料會與 Azure 監視器整合,並可匯出至 Azure Sentinel。

如需詳細資訊,請參閱

治理原則

名為 Azure Spring Cloud 的 Azure 內建定義應該使用網路插入 ,讓您強制執行 網路控制

  1. 從網際網路偵測應用程式的隔離界限實作。
  2. 讓 Azure Spring Apps 能夠與其他虛擬網路中的內部部署資料中心或 Azure 服務中的私人網路通訊。
  3. 控制 Azure Spring Apps 虛擬網路的輸入和輸出網路通訊。

憑證管理

與後端服務或內部部署系統通訊時,應用程式可能需要公用 TLS 憑證。 您可以在 金鑰保存庫 中上傳憑證。

若要從金鑰保存庫安全地載入憑證,Spring Boot 應用程式會使用受控識別和 Azure 角色型存取控制 (RBAC)。 Azure Spring Apps 使用提供者服務主體和 Azure 角色型存取控制。 此安全載入是使用 Azure 金鑰保存庫 JAVA 密碼編譯架構 (JCA) 提供者所提供。 如需詳細資訊,請參閱 適用于 JAVA 的 Azure 金鑰保存庫 JCA 用戶端程式庫。

如果您的 Spring 程式碼、JAVA 程式碼或開放原始碼程式庫,例如 OpenSSL,依賴 JVM 預設 JCA 鏈結將憑證隱含載入 JVM 的信任存放區,您可以將 TLS 憑證從 金鑰保存庫 匯入 Azure Spring Apps。 在應用程式中使用這些憑證。 如需詳細資訊,請參閱 在 Azure Spring Apps 中使用應用程式中的 TLS/SSL 憑證。

認證掃描

實作認證掃描器,以識別可存取程式碼、組態和保存資料的認證。 認證掃描器鼓勵您將探索到的認證移至更安全的位置,例如金鑰保存庫。

針對 GitHub,您可以使用原生秘密掃描功能來識別程式碼中的認證或其他形式的秘密。

如需詳細資訊,請參閱

下一步

監視作業