【微服务安全】使用 Spring Boot、Kafka、Vault 和 Kubernetes 保护微服务间通信——第 1 部分:简介和架构

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 【微服务安全】使用 Spring Boot、Kafka、Vault 和 Kubernetes 保护微服务间通信——第 1 部分:简介和架构

链接

  • 第 1 部分:简介和架构 <--本文
  • 第 2 部分:设置 Kubernetes 和 Kafka
  • 第 3 部分:设置保险柜
  • 第 4 部分:构建微服务
  • 第 5 部分:部署和测试

介绍

微服务是一种设计模式,其中大型单体应用程序被分离成更小、更易于管理的组件。这些组件可以协同工作来解决特定的业务问题。

为此,组件需要相互通信。组件之间的通信可以通过多种方式实现:RESTful Web 服务、SOAP Web 服务、RPC、消息传递等。消息传递(发布/订阅)的一种流行实现是 Kafka。

与大多数消息传递系统相比,Kafka 具有更好的吞吐量、内置的分区、复制和容错能力,这使其成为大规模消息处理应用程序的良好解决方案。

https://kafka.apache.org/

发布订阅

Kafka 遵循发布订阅模式。这种模式就像一个公告板。例如,如果爱丽丝在公告板上发布公告。鲍勃和查尔斯都能读懂它们。他们可以同时阅读,也可以一个接一个地阅读。 Bob 今天可以阅读黑板,Charles 可以在明天阅读。爱丽丝的公告将保留在公告板上,直到它的到期日期过去为止。

在消息传递系统中,我们会有发布者(Alice)和订阅者(Bob 和 Charles)。公告板称为主题,公告称为事件或消息。

如您所见,主题需要在规定的时间段内保留数据。因此,需要保护主题中的数据。不幸的是,Kafka(在撰写本文时)不处理端到端的数据加密。

这就是 Vault 的用武之地。

保险库

Vault 为我们提供加密服务。这使我们能够为我们的消息拥有和端到端的加密方案。

但为什么是保险柜?我们真的需要它吗?现在,当然,我们需要加密从发布者到订阅者的消息是私钥/公钥基础设施。创建这些密钥并将它们嵌入到发布者和订阅者服务中非常容易,如下所示:

问题是当我们有多个订阅者时,每个订阅者都有自己的一组私钥/公钥。当我们需要管理密钥的生命周期时,问题就会出现。例如,在到期时,两个密钥都需要更换。如果密钥是嵌入的,则可能需要重新部署。

另一个问题是何时需要临时撤销和替换密钥。使用嵌入式键没有简单的方法来做到这一点。

在不同服务具有不同密钥集的微服务环境中,这个问题变得更加夸张——例如下面的服务网格:

试图在仅有 4 个服务网格中管理或撤销密钥几乎是不可能的。

Vault 允许我们集中管理所有这些密钥:

此外,Vault 允许我们动态分配哪个服务可以访问哪个密钥。如果某项服务遭到破坏,一旦系统再次受到保护,密钥就很容易被撤销和恢复。

架构

我们的应用程序的架构如下所示。它支持使用 Vault 和 Kafka 的安全端到端通信(消息传递):

申请流程:

  1. 交易服务将启动从一个存款账户到另一个存款账户的资金转移。
  2. Transaction Message 由 Transaction 微服务创建并由 Vault 加密。
  3. 将加密的交易消息传递给请求主题
  4. 订阅者将消费消息并执行交易——将资金从一个账户转移到另一个账户。
  5. 然后,订阅者将通过响应主题将结果余额回复给事务服务

Tags

本文:https://architect.pub/secure-inter-micro-service-communication-spring-boot-kafka-vault-and-kubernetes-part-1-introduction

相关文章
|
21天前
|
设计模式 Java API
微服务架构演变与架构设计深度解析
【11月更文挑战第14天】在当今的IT行业中,微服务架构已经成为构建大型、复杂系统的重要范式。本文将从微服务架构的背景、业务场景、功能点、底层原理、实战、设计模式等多个方面进行深度解析,并结合京东电商的案例,探讨微服务架构在实际应用中的实施与效果。
79 6
|
21天前
|
设计模式 Java API
微服务架构演变与架构设计深度解析
【11月更文挑战第14天】在当今的IT行业中,微服务架构已经成为构建大型、复杂系统的重要范式。本文将从微服务架构的背景、业务场景、功能点、底层原理、实战、设计模式等多个方面进行深度解析,并结合京东电商的案例,探讨微服务架构在实际应用中的实施与效果。
32 1
|
3月前
|
安全 应用服务中间件 API
微服务分布式系统架构之zookeeper与dubbo-2
微服务分布式系统架构之zookeeper与dubbo-2
|
3月前
|
负载均衡 Java 应用服务中间件
微服务分布式系统架构之zookeeper与dubbor-1
微服务分布式系统架构之zookeeper与dubbor-1
|
16天前
|
消息中间件 缓存 架构师
关于 Kafka 高性能架构,这篇说得最全面,建议收藏!
Kafka 是一个高吞吐量、高性能的消息中间件,关于 Kafka 高性能背后的实现,是大厂面试高频问题。本篇全面详解 Kafka 高性能背后的实现。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
关于 Kafka 高性能架构,这篇说得最全面,建议收藏!
|
20天前
|
消息中间件 供应链 架构师
微服务如何实现低耦合高内聚?架构师都在用的技巧!
本文介绍了微服务的拆分方法,重点讲解了“高内聚”和“低耦合”两个核心设计原则。高内聚强调每个微服务应专注于单一职责,减少代码修改范围,提高系统稳定性。低耦合则通过接口和消息队列实现服务间的解耦,确保各服务独立运作,提升系统的灵活性和可维护性。通过领域建模和事件通知机制,可以有效实现微服务的高效拆分和管理。
44 7
|
2月前
|
Kubernetes 调度 算法框架/工具
NVIDIA Triton系列02-功能与架构简介
本文介绍了NVIDIA Triton推理服务器的功能与架构,强调其不仅适用于大型服务类应用,还能广泛应用于各类推理场景。Triton支持多种模型格式、查询类型和部署方式,具备高效的模型管理和优化能力,确保高性能和系统稳定性。文章详细解析了Triton的主从架构,包括模型仓库、客户端应用、通信协议和推理服务器的核心功能模块。
81 1
NVIDIA Triton系列02-功能与架构简介
|
29天前
|
监控 安全 Cloud Native
云原生安全:Istio在微服务架构中的安全策略与实践
【10月更文挑战第26天】随着云计算的发展,云原生架构成为企业数字化转型的关键。微服务作为其核心组件,虽具备灵活性和可扩展性,但也带来安全挑战。Istio作为开源服务网格,通过双向TLS加密、细粒度访问控制和强大的审计监控功能,有效保障微服务间的通信安全,成为云原生安全的重要工具。
41 2
|
20天前
|
消息中间件 存储 负载均衡
【赵渝强老师】Kafka的体系架构
Kafka消息系统是一个分布式系统,包含生产者、消费者、Broker和ZooKeeper。生产者将消息发送到Broker,消费者从Broker中拉取消息并处理。主题按分区存储,每个分区有唯一的偏移量地址,确保消息顺序。Kafka支持负载均衡和容错。视频讲解和术语表进一步帮助理解。
|
2月前
|
Kubernetes 安全 微服务
使用 Istio 缓解电信 5G IoT 微服务 Pod 架构的安全挑战
使用 Istio 缓解电信 5G IoT 微服务 Pod 架构的安全挑战
58 8