共用方式為


在 零信任 環境中保護 Spring Boot 應用程式的端對端通訊

注意

基本標準和企業方案將從 2025 年 3 月中旬開始淘汰,並停用 3 年。 建議您轉換至 Azure Container Apps。 如需詳細資訊,請參閱 Azure Spring Apps 淘汰公告

標準 耗用量和專用 方案將從 2024 年 9 月 30 日起淘汰,並在六個月後完成關閉。 建議您轉換至 Azure Container Apps。 如需詳細資訊,請參閱 將 Azure Spring Apps 標準取用和專用方案遷移至 Azure Container Apps

本文說明如何在 零信任 環境中保護 Spring Boot 應用程式的端對端通訊。 您可以在 Spring Boot 應用程式的任何通訊點,保護通訊端對端或終止傳輸層級安全性。 您也可以針對保護通訊所需的所有 Azure 資源,將布建和設定自動化。

實作安全通訊作為解決方案架構的一部分可能會很困難。 許多客戶會手動輪替其憑證,或建立自己的解決方案,以自動布建和設定。 即便如此,仍有數據外泄風險,例如未經授權的從伺服器系統複製或傳輸數據。 使用 Azure Spring Apps 時,系統會為您處理這些詳細數據。 Azure Spring Apps 會將大部分的複雜性抽象化,讓安全通訊在服務中保持可設定且可自動化的選項。

保護因特網通訊

TLS/SSL 通訊協定會建立身分識別和信任,並加密所有類型的通訊。 TLS/SSL 可讓安全通訊,特別是傳輸商務和客戶數據的 Web 流量。

您可以使用任何類型的 TLS/SSL 憑證。 例如,您可以使用證書頒發機構單位所發行的憑證、擴充驗證憑證、支援任意數目子域的通配符憑證,或開發及測試環境的自我簽署憑證。

使用 零信任 載入憑證安全性

零信任 是以「永不信任、永遠驗證和無認證」的原則為基礎。 零信任 藉由消除未知和非受控憑證,協助保護所有通訊。 零信任 牽涉到只信任透過驗證身分識別來共用的憑證,再授與這些憑證的存取權。 如需詳細資訊,請參閱 零信任 指引中心

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

使用 Azure 金鑰保存庫,您可以控制憑證的儲存和散發,以減少意外外洩。 應用程式和服務可以安全地存取憑證。 金鑰保存庫 使用 Azure 角色型訪問控制來鎖定只有需要存取權的人員,例如系統管理員,但也使用最低許可權原則的應用程式。 應用程式和服務會使用 Microsoft Entra ID 和 Azure 角色型存取控制來驗證和授權,以存取憑證。 您可以透過完整的稽核記錄,監視 金鑰保存庫 中憑證的存取和使用。

安全通訊端對端或終止 TLS 在任何時間點

如下圖所示,透過下列元件進行數個通訊區段:

  • 網路存取點,例如 Azure Front Door
  • Azure 應用程式閘道
  • F5 BIG-IP 本機 流量管理員
  • Azure API 管理
  • Apigee API 管理 Spring Boot 應用程式和後端系統,例如資料庫、傳訊和事件系統,以及應用程式快取。

您可以在 Spring Boot 應用程式的任何通訊點,保護通訊端對端或終止傳輸層級安全性。

此圖顯示 Spring Boot 應用程式的端對端安全通訊架構。

下列各節將更詳細地描述此架構。

區段 1:保護 Azure Spring Apps 的通訊

圖表中的第一個區段 (區段 1) 代表從取用者到 Azure Spring Apps 中的輸入控制器的通訊。 這些取用者包括瀏覽器、行動電話、桌面電腦、kiosk 或網路存取點,例如 Azure Front Door、Azure 應用程式閘道、F5 BIG-IP 本機 流量管理員、Azure API 管理 和 Apigee API 管理。

根據預設,此區段會使用網域Microsoft提供的 TLS/SSL 憑證 *.azuremicroservices.io 來保護。 您可以將自定義網域系結至 Azure Spring Apps 中的應用程式,以在 Azure 金鑰保存庫 中套用自己的 TLS/SSL 憑證。 不需要任何程序代碼。 如需詳細資訊,請參閱教學課程:將現有的自訂網域對應至 Azure Spring Apps

區段 2:保護從輸入控制器到應用程式的通訊

下一個區段 (圖表中的區段 2) 代表從 Azure Spring Apps 輸入控制器到 Azure Spring Apps 上任何應用程式的通訊。 您可以啟用 TLS/SSL 來保護從輸入控制器到支援 HTTPS 的應用程式流量。 如需詳細資訊,請參閱 為應用程式啟用輸入對應用程式 TLS。

Spring Boot 應用程式可以使用 Spring 的方法來啟用 HTTPS,或者應用程式可以使用 Azure 金鑰保存庫 Certificates Spring Boot Starter 來保護通訊。 如需詳細資訊,請參閱教學課程:使用 Azure 金鑰保存庫 憑證保護 Spring Boot 應用程式。

您需要下列三個設定步驟,才能使用來自 Azure 金鑰保存庫 的 TLS/SSL 憑證來保護通訊的安全。 不需要任何程序代碼。

  1. 在您的 pom.xml 檔案中包含下列 Azure 金鑰保存庫 憑證 Spring Boot Starter 相依性:

    <dependency>
        <groupId>com.azure.spring</groupId>
        <artifactId>azure-spring-boot-starter-keyvault-certificates</artifactId>
    </dependency>
    
  2. 新增下列屬性,以設定應用程式以從 Azure 金鑰保存庫 載入 TLS/SSL 憑證。 請務必指定 Azure 金鑰保存庫 的 URI 和憑證名稱。

    azure:
      keyvault:
        uri: ${KEY_VAULT_URI}
    
    server:
      ssl:
        key-alias: ${SERVER_SSL_CERTIFICATE_NAME}
        key-store-type: AzureKeyVault
    
  3. 啟用應用程式的受控識別,然後將 Azure 金鑰保存庫 的「取得」和「清單」存取權授與受控識別。 如需詳細資訊,請參閱在 Azure Spring Apps憑證 存取控制 中為應用程式啟用系統指派的受控識別。

區段 3:保護從應用程式到受控中間件的通訊

下圖中的下一個區段(區段 3)代表從任何應用程式到 Azure Spring Apps 中受控 Spring Cloud Config Server 和 Spring Cloud Service Registry 的通訊。 根據預設,此區段會使用Microsoft提供的 TLS/SSL 憑證來保護。

區段 4:保護應用程式與應用程式通訊的安全

下一個區段 (圖表中的區段 4) 代表應用程式與 Azure Spring Apps 中另一個應用程式之間的通訊。 您可以使用 Azure 金鑰保存庫 憑證 Spring Boot Starter 來設定呼叫端應用程式,以信任已啟用 HTTPS 的呼叫應用程式所提供的 TLS/SSL 憑證。 接收者 Spring Boot 應用程式可以使用 Spring 的方法來啟用 HTTPS,或者應用程式可以使用 Azure 金鑰保存庫 Certificates Spring Boot Starter 來保護通訊。 如需詳細資訊,請參閱教學課程:使用 Azure 金鑰保存庫 憑證保護 Spring Boot 應用程式。

區段 5:保護應用程式與外部系統通訊的安全

下一個區段 (圖表中的區段 5) 代表在 Azure Spring Apps 中執行的應用程式與外部系統之間的通訊。 您可以使用 Azure 金鑰保存庫 憑證 Spring Boot Starter 來設定在 Azure Spring Apps 中執行的應用程式,以信任任何外部系統所提供的 TLS/SSL 憑證。 如需詳細資訊,請參閱教學課程:使用 Azure 金鑰保存庫 憑證保護 Spring Boot 應用程式。

將 TLS/SSL 憑證從 金鑰保存庫 隱含載入至應用程式

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

上傳後端系統的已知公用 TLS/SSL 憑證

若要讓應用程式與雲端或內部部署系統中的後端服務通訊,可能需要使用公用 TLS/SSL 憑證來保護通訊。 您可以上傳這些 TLS/SSL 憑證來保護輸出通訊。 如需詳細資訊,請參閱 在 Azure Spring Apps 中使用應用程式中的 TLS/SSL 憑證。

自動布建和設定以保護通訊

使用 ARM 範本、Bicep 或 Terraform,您可以將上述所有 Azure 資源的佈建和設定自動化,以保護通訊。

建置您的解決方案並保護通訊

Azure Spring Apps 是完全受控的服務,適用於 Spring Boot 應用程式。 Azure Spring Apps 會從使用者擷取基礎結構和 Spring Cloud 中間件管理的複雜性。 您可以專注於建置商業規則,並讓 Azure 負責動態調整、修補程式、安全性、合規性和高可用性。 透過幾個步驟,您可以布建 Azure Spring Apps、建立應用程式、部署和調整 Spring Boot 應用程式,並在幾分鐘內開始保護通訊。

Azure Spring Apps 是由 Microsoft 和 VMware 共同建置、操作和支援。

下一步