Безопасность Kafka: разрешить только определенным пользователям читать определенные сообщения в рамках одной темы - PullRequest
2 голосов
/ 30 июня 2019

У меня есть требование, когда мы будем «разжигать» кучу финансовых потоков разных поставщиков в единую тему «рыночных данных» в Kafka.Дело в том, что некоторые из этих провайдеров имеют мелкозернистые разрешения, вплоть до отдельных ценных бумаг.Не создавая разные темы для каждого отдельного зерна разрешения, есть ли способ запретить клиентам Kafka получать информацию, основанную на том, что находится внутри сообщения?IE может Кафка делать мелкозернистые внутри-тематические разрешения?

Если нет, каково каноническое решение этого вопроса?

1 Ответ

1 голос
/ 30 июня 2019

Нет.Из коробки Apache Kafka не может делать «детальные внутритемные разрешения».

Вам придется написать собственную библиотеку Kafka Serializer / Deserializer (SerDes) или внедрить собственный сервер Entitlements в середине для обеспечения управления доступом на основе ролей (RBAC) и фильтрации на основе содержимого.

Если вы разбиваете данные на разные темы, то да, базовый ACL Kafka может контролировать доступ к этой теме, но это не был первоначальный вопрос, и вы не собираетесь создавать 6 миллионов тем в kafka.

Первоначальный вопрос был о том, чтобы иметь одну тему, которая смешивает разные типы данных.Для этого вам нужно иметь десериализатор на стороне клиента, который считывает все данные, а затем отфильтровывает определенные сообщения на основе того, что сервер разрешений говорит, что им разрешено видеть.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...