kafka在正在运行的集群中整合安全功能

半兽人 发表于: 2016-07-29   最后更新时间: 2016-08-01  
  •   80 订阅,1357 游览

你可以为正在运行的集群增加1个或多个我们前面讨论的安全协议,这是分阶段完成的:

  • 以增量替换的方式添加安全端口(s)。

  • 重启需要安全连接的clien,而不是PLAINTEXT端口的(假设你是安全连接的客户端)。

  • 再次增量的方式逐步启动集群(如果需要)

  • 最后关闭PLAINTEXT端口.

配置SSL和SASL的具体步骤在7.2节和7.3节有描述,按照这些步骤来启用安全所需要的协议(s)。

配置不同的安全协议用于broker-client和broker-broker通讯。这些都必须新增启用,PLAINTEXT端口必须保留,是为了broker或客户端可以继续通讯。

当执行增量替换,通过SIGTERM干净的停止broker。这也是很好的做法,重新启动等待副本移动到下一个节点之前返回到ISR列表。

举个例子,假设我们希望在broker-client和broker-broker通讯用SSL进行加密,在这第一个增量中,SSL端口在每个节点上打开:

listeners=PLAINTEXT://broker1:9091,SSL://broker1:9092

然后,我们重新启动client,改变指向新的安全端口:

        bootstrap.servers = [broker1:9092,...]
        security.protocol = SSL
        ...etc

设置broker-broker协议(使用相同的SSL端口):

    listeners=PLAINTEXT://broker1:9091,SSL://broker1:9092
        security.inter.broker.protocol=SSL

最后,我们关闭PLAINTEXT端口:

        listeners=SSL://broker1:9092
        security.inter.broker.protocol=SSL

另外,我们也可以打开多个端口,以便使用不同协议用于broker-broker和broker-client通讯。假设我们希望都使用SSL加密(即,broker-broker和broker-client通讯),但是我们也想对broker-client连接增加SASL认证,我们通过打开2个额外的端口来实现这一点:

listeners=PLAINTEXT://broker1:9091,SSL://broker1:9092,SASL_SSL://broker1:9093

然后,重新启动客户端,改变他们的配置指向新的SASL&SSL安全端口:

        bootstrap.servers = [broker1:9093,...]
        security.protocol = SASL_SSL
        ...etc

第二,服务器将逐步切换集群,使用broker-broker的加密通讯,通过SSL端口9092:

        security.inter.broker.protocol=SSL

最后,关闭PLAINTEXT端口.

      listeners=SSL://broker1:9092,SASL_SSL://broker1:9093
       security.inter.broker.protocol=SSL

ZooKeeper can be secured independently of the Kafka cluster. The steps for doing this are covered in section 7.6.2.







发表于: 10月前   最后更新时间: 9月前   游览量:1357
上一条: kafka认证和acl
下一条: ZooKeeper认证【kafka】
评论…

  • 评论…
    • in this conversation
      提问