搜索

第 1 章 Apache Kafka 代理流概述

download PDF

Apache Kafka 代理的流是一个 Apache Kafka 协议感知代理,旨在增强基于 Kafka 的系统。通过它的过滤器机制,它允许在基于 Kafka 的系统中引入额外的行为,而无需更改您的应用程序或 Kafka 集群本身。

作为中间的,Apache Kafka Proxy 代理的流会促进 Kafka 集群及其客户端之间的通信。它负责接收、过滤和转发信息。

1.1. 记录加密过滤器

Apache Kafka Proxy 的 Record Encryption 过滤器的 Streams 增强了 Kafka 信息的安全性。过滤器使用行业标准的加密技术将加密应用到 Kafka 信息,确保 Kafka 集群中存储的数据的机密性。Apache Kafka 代理的流集中了主题级加密,以确保在 Kafka 集群间简化加密。

过滤器使用 envelope 加密,以使用对称加密密钥加密记录。

信封加密
envelope 加密是一种行业标准技术,可用于以高效的方式加密大量数据。数据使用数据加密密钥(DEK)进行加密。DEK 使用密钥加密密钥(KEK)进行加密。KEK 安全地存储在密钥管理系统(KMS)中。
对称加密密钥
AES (GCM) 256 位加密对称加密密钥用于加密和解密记录数据。

此过程如下:

  1. 过滤器截获从生成应用程序生成请求并加密记录。
  2. 生成请求转发到代理。
  3. 过滤器截获从消耗应用程序获取响应并解密记录。
  4. 获取响应转发到消耗应用程序。

过滤器仅加密记录值。记录键、标头和时间戳没有加密。

整个过程对于 Kafka 客户端和 Kafka 代理的视角是透明的。不明显是加密的记录,也没有对加密密钥的任何访问权限,或者对加密进程有任何影响来保护记录。

过滤器与密钥管理服务(KMS)集成,它负责安全存储关键资料。目前,如果进一步支持的 KMS 集成,过滤器会与 HashiCorp Vault 集成作为其 KMS。

1.1.1. 过滤器如何加密记录

过滤器加密来自生成请求的记录,如下所示:

  1. 过滤器选择要应用的 KEK。
  2. 请求 KMS 为 KEK 生成 DEK。
  3. 使用加密的 DEK (使用 KEK 加密的DEK)加密记录。
  4. 将原始记录替换为密码记录(加密记录、加密 DEK 和元数据)。

过滤器使用 DEK 重复利用策略。加密记录使用相同的 DEK 发送到同一主题,直到达到超时或加密限制为止。

1.1.2. 过滤器如何解密记录

过滤器从获取响应中解密记录,如下所示:

  1. 过滤器从 Kafka 代理接收密码记录。
  2. 反向构建密码记录的进程。
  3. 使用 KMS 解密 DEK。
  4. 使用解密的 DEK 来解密加密的记录。
  5. 使用解密的记录替换密码记录。

过滤器使用 LRU (最近使用的)策略来解密记录。解密的 DEK 保存在内存中,以减少与 KMS 的交互。

1.1.3. 过滤器如何使用 KMS

为了支持过滤器,KMS 提供以下内容:

  • 用于存储密钥加密密钥的安全存储库(KEK)
  • 用于生成和解密数据加密密钥的服务(DEK)

KEK 保留在 KMS 中。KMS 为给定 KEK 生成 DEK (安全生成的随机数据),然后返回 DEK 和加密的 DEK。加密的 DEK 具有相同的数据,但使用 KEK 加密。KMS 不存储 DEK;它们作为密码记录的一部分存储在代理中。

警告

KMS 必须在运行时可用。如果 KMS 不可用,则通过过滤器进行生产和消耗将变得不可能,直到 KMS 服务被恢复为止。建议您在高可用性(HA)配置中使用 KMS。

1.1.4. 记录的哪个部分被加密?

record encryption 过滤器仅加密记录的值,保留记录键、标头和时间戳不动。null 记录值(可能代表压缩主题中的删除)被传送到代理未加密。此方法可确保压缩的主题可以正常工作。

1.1.5. 未加密的主题

您可以配置系统,以便一些主题加密,其他主题没有加密。这意味着带有机密信息的主题是加密的,带有非敏感信息的 Kafka 主题可以保留未加密的。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.