Шифрование сообщений в потоковой кафке - PullRequest
0 голосов
/ 14 января 2020

Я недавно пытаюсь поиграть с потоковой передачей кафки для обработки некоторых конфиденциальных данных. Цель, которую я хочу достичь sh, заключается в том, чтобы в то время как конфиденциальные данные были зашифрованы, мощь микросервисной архитектуры не подвергается опасности, т. Е. Сервисы со слабой связью и потоковая обработка данных.

Мой вопрос в потоковой передаче kafka Возможно ли, чтобы я расшифровал входящее сообщение одним ключом и снова зашифровал его другим ключом? У меня вроде есть план, но, поскольку я не знаком с потоковой передачей kafka, я не могу доказать, что потоковая передача kafka способна обрабатывать эту функцию, используя Streams DSL. Может ли кто-нибудь помочь мне с этим вопросом, и, предпочтительно, скажите, какая функция в Streams DSL может с этим справиться?

Обновление: В основном, я спрашиваю: я пытаюсь дважды использовать шифрование ключа publi c для одного сообщения в потоковом конвейере. Один раз на входящей топике c и один раз на исходящей топи c. Просто не уверен, что DSL может расшифровать и зашифровать, и где следует хранить ключи.

Спасибо!

1 Ответ

2 голосов
/ 14 января 2020

Если вы просто хотите запретить другим лицам проверять ваши данные, Kafka предоставляет SSL-соединение для шифрования между клиентами и брокерами, хотя данные в состоянии покоя все еще остаются незашифрованными. Вы можете добавить SASL для дополнительной авторизации, чтобы ограничить доступ к кластеру. Ограничение доступа S SH для доступа к файлам посредника также поможет

Для того, что вы запрашиваете, требуется пользовательская комбинация сериализатора и десериализатора , которая используется всеми API-интерфейсами Kafka.

При использовании API Kafka Streams вы должны обернуть их в класс Serde и передать их в свойства ваших потоков перед его запуском или между двумя методами DSL с помощью Produced.with или Consumed.with

...