我有一个服务负责将消息写入Kafka队列主题。
我想将该队列主题暴露给另一个服务,因此它可能会使用这些消息,但我想限制该服务只能从主题中读取,永远不能写入它。
关于这是否可能(或者我在谷歌搜索错误的地方),文档似乎很模糊。
关于如何做到这一点的任何建议或指示都会很棒。
谢谢, 雷蒙德。
答案 0 :(得分:1)
这很可能是很晚的答案,但也许会在将来对某人有所帮助。
Kafka目前支持各种身份验证和授权方法。您可以通过将环境连接到您的公司的kerberos或Active Directory来保护环境,或者换句话说,启用身份验证。 (https://docs.confluent.io/current/kafka/authentication_sasl/index.html)
第二步可以启用授权:https://docs.confluent.io/current/kafka/authorization.html。
您甚至可以查看来自Open Policy Agent的漂亮项目:https://docs.confluent.io/current/kafka/authentication_sasl/index.html
简而言之:即使使用Kafka项目中提供的现成的SimpleAuthorisation方法,您也可以“捍卫”主题。您可以轻松地说出哪个用户可以执行主题操作。
要考虑的想法->
来自流思想的人创建了一个不错的项目kafka-specs。您可以在yamls中轻松管理git上的主题和ACL。您甚至可以使用简单的命名约定“设想”名称空间,并允许某些团队通过git上的 他们的 yaml仅处理其主题和ACL。您可以是批准执行请求(或Jenkins)脚本以应用更改的脚本,它们只涉及其“名称空间”:)
希望我能帮上忙!
答案 1 :(得分:0)
简短回答:你不能
更长的答案:
Kafka主要是为高性能而设计的,它没有许可机制,例如您无法将经纪人配置为允许生产但不会为某些客户消费。任何有权访问代理的客户都可以生成/使用所有主题的数据。主要思想是客户端本身负责管理权限。