为 Spring Boot 应用提供端到端的安全通信 - 在零信任环境中

工程 | Josh Long | 2021年12月8日 | ...

为 Spring Boot 应用提供端到端的安全通信 - 在零信任环境中

嗨,Spring 粉丝们!今天,我们很高兴地宣布所有功能已正式可用,可以为 Spring Boot 应用在零信任环境中提供端到端的安全通信。你可以为 Spring Boot 应用提供端到端的安全通信,或者在任何通信点终止传输层安全。你还可以自动化所有 Azure 资源的安全通信所需的配置和供应。

在解决方案架构中实现安全通信可能会面临挑战。许多客户会手动轮换证书或创建自己的解决方案来自动化预配和配置。即使这样,仍然存在数据泄露的风险——例如,未经授权从服务器系统复制或传输数据。借助 Azure Spring Cloud,所有这些都将为您处理;您无需费心解决复杂的细节。Azure Spring Cloud 抽象了大部分复杂性,将安全通信作为服务中可配置和可自动化的选项。

“在我们的新 API 平台中,实现端到端加密和零信任一直是安全要求列表的重中之重。在我们的旧平台上,这两个要求都无法实现。Azure Spring Cloud 及其与 Azure Key Vault 和托管标识等服务的内置集成,最终将帮助我们以易于自动化的方式满足这些要求。” – Claus Lund,基础设施工程负责人,National Life Group

“对于 Liantis 而言,在处理非常敏感的金融、医疗和薪资数据时,安全的端到端通信是我们业务中不可或缺的一部分。同样,Azure Spring Cloud 也兑现了其承诺,通过与 Azure Key Vault 的简单直接的集成,以无缝的方式抽象了大部分复杂性,并减少了与证书预配、配置和证书轮换相关的运营开销。” - Kurt Roggen,基础设施和安全架构师,Liantis

安全 Internet 通信

TLS/SSL 协议建立身份和信任,并加密所有类型的通信,从而实现安全通信——特别是承载商业数据和个人身份信息的 Web 流量。

您可以使用任何类型的 SSL 证书——由证书颁发机构颁发的证书、扩展验证证书、支持任意数量子域的通配符证书,或用于开发和测试环境的自签名证书。

零信任——安全加载证书

基于“永不信任,始终验证,无需凭证”的原则,零信任通过消除未知和未托管的证书来帮助保护所有通信,并且只信任通过在授予对这些证书的访问权限之前验证身份来共享的证书。

为了安全地从Azure Key Vault加载证书,Spring Boot 应用程序使用托管标识Azure 基于角色的访问控制,而 Azure Spring Cloud 则使用提供程序服务主体和 Azure 基于角色的访问控制。这种安全加载是通过 Azure Key Vault JCA(Java Cryptography Architecture)提供程序实现的。

通过 Azure Key Vault

  • 您可以控制证书的存储和分发,以减少意外泄露。
  • 应用程序和服务可以安全地访问证书。Key Vault 使用 Azure 基于角色的访问控制来限制访问,仅限于需要访问的实体,例如管理员,但也包括使用最小权限原则的应用程序。应用程序和服务通过 Azure Active Directory 和 Azure 基于角色的访问控制进行身份验证和授权,以访问证书。
  • 您可以通过 Key Vault 的完整审核跟踪来监视 Key Vault 中证书的访问和使用情况。

端到端安全通信或在任何点终止 TLS

如下面的图所示,通信通过多个段进行:

  • 网络接入点,例如 Azure Front Door、Azure App Gateway、F5 BIG-IP Local Traffic Manager、Azure API Management 和 Apigee API Management
  • Spring Boot 应用程序和
  • 后端系统,例如数据库、消息和事件系统以及应用程序缓存。

您可以选择对 Spring Boot 应用程序进行端到端安全通信,或在任何通信点终止传输层安全性。

将通信安全地引入 Azure Spring Cloud

第一段表示保护来自消费者的通信——例如浏览器、手机、桌面、自助服务终端,或 Azure Front Door、Azure App Gateway、F5 BIG-IP Local Traffic Manager、Azure API Management 和 Apigee API Management 等网络接入点——到 Azure Spring Cloud 中的入口控制器。

默认情况下,第一段使用 Microsoft 提供的 *.azuremicroservices.io 域的 SSL 证书进行保护。您可以通过在 Azure Spring Cloud 中将自定义域名绑定到您的应用程序来应用您自己的 Azure Key Vault 中的 SSL 证书。无需编写代码。

保护从入口控制器到应用程序的通信

第二段表示保护从 Azure Spring Cloud 的入口控制器到 Azure Spring Cloud 上任何应用程序的通信。您可以启用TLS/SSL 来保护从入口控制器到支持 HTTPS 的应用程序的流量

Spring Boot 应用程序可以使用 Spring 的方法来启用 HTTPS 或通过使用Azure Key Vault Certificates Spring Boot Starter 来实现安全通信——通过三个配置步骤,使用来自 Azure Key Vault 的 SSL 证书来保护通信。无需编写代码。

步骤 1 – 包含 Azure Key Vault Certificates Spring Boot Starter

步骤 2 – 配置应用程序以从 Azure Key Vault 加载 SSL 证书,方法是指定 Azure Key Vault 的 URI 和证书名称

步骤 3 – 启用应用程序的托管标识,并授予托管标识对 Azure Key Vault 的“获取”和“列出”访问权限

保护应用程序到托管中间件的通信

第三段表示从 Azure Spring Cloud 中的任何应用程序到托管的 Spring Cloud Config Server 和 Spring Cloud Service Registry 的通信。默认情况下,第三段使用 Microsoft 提供的 SSL 证书进行保护。

保护应用程序到应用程序的通信

第四段表示 Azure Spring Cloud 中一个应用程序到另一个应用程序之间的通信。

您可以使用 Azure Key Vault Certificates Spring Boot Starter 来配置调用方应用程序,使其信任由启用了 HTTPS 的被调用应用程序提供的 SSL 证书。

接收方 Spring Boot 应用程序可以使用 Spring 的方法来启用 HTTPS 或通过使用 Azure Key Vault Certificates Spring Boot Starter 来实现安全通信。

保护应用程序到外部系统的通信

第五段表示运行在 Azure Spring Cloud 中的应用程序与外部系统之间的通信。您可以使用Azure Key Vault Certificates Spring Boot Starter 来配置运行在 Azure Spring Cloud 中的应用程序,使其信任任何外部系统提供的 SSL 证书。

自动从 Key Vault 加载 SSL 证书到应用程序

如果您的 Spring 代码、Java 代码或开源库(如 openssl)依赖于 JVM 默认的 JCA 链将证书隐式加载到 JVM 的信任存储中,那么您可以将您的 SSL 证书从 Key Vault 导入到 Azure Spring Cloud 中,并在应用程序中使用这些证书。

为后端系统上传知名公共 SSL 证书

为了让应用程序能够与云端或本地系统中的后端服务进行通信,可能需要使用公共 SSL 证书来保护通信。您可以上传这些 SSL 证书来保护出站通信。

为安全通信自动化预配和配置

使用 ARM 模板、Bicep 或 Terraform,您可以自动化上述所有用于安全通信的 Azure 资源的预配和配置。

立即构建您的解决方案并实现安全通信!

Azure Spring Cloud 是一个完全托管的 Spring Boot 应用程序服务。它为用户抽象了基础设施和 Spring Cloud 中间件管理的复杂性。因此,您可以专注于构建业务逻辑,让 Azure 负责动态扩展、补丁、安全、合规性和高可用性。只需几个步骤,您就可以在几分钟内预配 Azure Spring Cloud,创建应用程序,部署和扩展 Spring Boot 应用程序,并开始实现安全通信。

Azure Spring Cloud 由 Microsoft 和 VMware 共同构建、运营和支持。我们将继续为 Azure Spring Cloud 带来更多对开发人员友好且面向企业的就绪功能。我们很乐意听取您如何使用 Azure Spring Cloud 构建有影响力的解决方案……

将 Spring Boot 应用程序部署到 Azure Spring Cloud 并实现端到端安全通信!

立即开始

为 Spring Boot 应用程序实现端到端安全通信

其他资源

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

VMware 提供培训和认证,助您加速进步。

了解更多

获得支持

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件,只需一份简单的订阅。

了解更多

即将举行的活动

查看 Spring 社区所有即将举行的活动。

查看所有