Ranger-kafka-plugin

    • ranger如何对在非安全模式下的kafka进行授权操作
      • 我可以通过ranger对非安全模式下的kafka进行访问控制
      • 我可以通过ranger的用户用户组来对非安全模式下的kafka进行访问控制
      • 当用ranger对非安全模式下的kafka进行控制有没有推荐的policy设置方法
        • 确保信息发布者具有合适的权限
      • 为什么我们需要将非安全模式下的所有的policy的user group都指定为public
      • 在使用Ranger对非安全模式下的kafka进行授权时有什么需要特别注意的么
      • 我已经按照上面的设置了相应的policy然而在kafka的非安全模式下使用binkafka-console-consumersh还是不能进行消费consumer暂停并且给出错误信息No brokers found in ZK该如何做呢
      • 在非安全模式下我不能编辑etckafkaconfkafka_client_jaasconf file那么我如何才能让consumer进行消费
      • 为什么我需要编辑etckafkaconfkafka_client_jaasconf file
    • kafka授权
      • 我可以通过Ranger授权创建topic么
      • 什么是推荐的policy设置对于消费者或者发布者自动创建的topic

ranger如何对在非安全模式下的kafka进行授权操作


这部分主要是关于ranger如何对非安全模式下的kafka进行授权操作。

1. 我可以通过ranger对非安全模式下的kafka进行访问控制?

可以通过指定Ip地址对访问进行控制。

2. 我可以通过ranger的用户/用户组来对非安全模式下的kafka进行访问控制?

不能通过基于用户/用户组的条件来对非安全模式下的kafka进行控制,因为在非安全模式下,kafka不能判断识别出客户端用户的身份。

3. 当用ranger对非安全模式下的kafka进行控制,有没有推荐的policy设置方法?

首先最主要的也是必要的步骤:就是让broker都具有kafka admin的权限。如果不这样设置的话,那么kafka集群就不能正常的工作。

  • 3.1确认broker所在的节点正在运行。
  • 3.2创建一个policy:topics(*) user group(public),在ip-range condition指定所有的brokers的ip地址。(如下图)
    Ranger-kafka-plugin_第1张图片

确保信息发布者具有合适的权限:

  • 3.1明确所有发布者及其相关的topic的ip地址
  • 3.2创建policy,指定要进行控制的topic以及赋予Publish权限和user group是public,指定发布者的ip地址(publish在这个ip地址的机器上运行)
  • 3.3可以指定单个topic或者多个ip甚至是符合正则表达式的topic name
    确保信息消费者具有合适的权限:
  • 3.1确保消费者具有合适的权限,和publish具有相同的参数,除了将Publish权限改为Consume权限。

4. 为什么我们需要将非安全模式下的所有的policy的user group都指定为public?

  • 4.1非安全模式的kafka不能够识别客户端的身份,因此kefka对待所有的操作用户都作为ANONYMOUS。
  • 4.2Ranger的Public user group意味着允许所有的用户,自然而然包含匿名ANONYMOUS用户。

5. 在使用Ranger对非安全模式下的kafka进行授权时,有什么需要特别注意的么?

  • 5.1确保所有的broker的ip对所有的topic(*)具有kafka admin权限。
  • 5.2确保在所有的broker上不运行进行权限控制的publish或者consume,上面一点可以看出,在所有的broker上不适合进行权限控制。(所以需要另建客户端,可以对客户端的IP进行控制)

6. 我已经按照上面的设置了相应的policy,然而,在kafka的非安全模式下使用bin/kafka-console-consumer.sh还是不能进行消费,consumer暂停,并且给出错误信息“No brokers found in ZK.”该如何做呢?

  • 6.1确保/etc/kafka/conf/kafka_client_jaas.conf 中没有指定serviceName=”zookeeper”,这是特别重要的。
  • 6.2确保consumer没有指定–security-protocol PLAINTEXTSASL, 指定–security-protocol PLAINTEXT ,或者在它的默认值中指定PLAINTEXT。

7. 在非安全模式下,我不能编辑/etc/kafka/conf/kafka_client_jaas.conf file,那么我如何才能让consumer进行消费?

  • 7.1用户需要使用kerbers证书来通过初试认证,获取授权令牌
  • 7.2这个授权令牌可以授权连到zookeeper,这样就可以在非安全模式下消费信息,用户应该是ANONYMOUS。

8. 为什么我需要编辑/etc/kafka/conf/kafka_client_jaas.conf file?

需要编辑这个文件链接到安全模式下的zookeeper,如果没有的话,就不能连接到zookeeper。

kafka授权


这一部分描述在使用Ranger授权kafka创建topic可能遇见的一些问题。

我可以通过Ranger授权创建topic么?

可以,但是仅仅是被消费者或者发布者自动经创建。

什么是推荐的policy设置对于消费者或者发布者自动创建的topic?

  • 创建一个Policy,包括所有的Topic(*)
  • 对于发布者来讲,创建一个policy(授予Produce和Configure权限给相应的用户/用户组)
  • 对于消费者来讲,创建一个policy(授予Consume和Configure权限给相应的用户/用户组)

原文网址

你可能感兴趣的:(Kafka入门)