kafka流中的消息加密

Message encryption in kafka streaming

我最近在尝试使用 kafka streaming 来处理一些敏感数据。我希望实现的目标是,在敏感数据被加密的同时,微服务架构的强大功能不会受到损害,即松散耦合的服务和流数据处理。

我的问题是,在 kafka 流式传输中,我是否可以使用一个密钥解密收到的消息并使用另一个密钥再次加密?我有一个计划,但由于我不熟悉 kafka streaming,我无法证明 kafka streaming 能够使用 Streams DSL 处理此功能。谁能帮我解决这个问题,最好能告诉我 Streams DSL 中的哪个函数可以处理这个问题?

更新:基本上,我要问的是:我正在尝试对流式管道中的单个消息使用 public 密钥加密两次。一次是入站主题,一次是出站主题。只是不确定 DSL 是否能够解密和加密,以及密钥应该存储在哪里。

谢谢!

如果您只是想防止其他人检查您的数据,Kafka 提供 SSL 连接以在客户端和代理之间进行加密,尽管静态数据仍未加密。您可以添加 SASL 来额外添加授权以限制谁可以访问集群。限制 SSH 访问代理文件也有帮助

您要求的内容需要 a custom Serializer and Deserializer combination,所有 Kafka API 都使用它。

使用 Kafka Streams API 时,您可以将它们包装在 Serde class 中,并在启动之前将其提供给您的流属性,或者通过 [=10= 在两个 DSL 方法之间提供] 或 Consumed.with