【kafka系列教程46】kafka SASL验证

本文档详细介绍了如何在Kafka中配置SASL认证,包括JAAS配置、SASL配置和使用SASL/Kerberos认证的步骤。内容涵盖了Kafka broker和客户端的SASL设置,以及GSSAPI、PLAIN、SCRAM-SHA-256和SCRAM-SHA-512等SASL机制的使用方法。
摘要由CSDN通过智能技术生成

使用SASL认证

1. JAAS配置

Kafka使用Java认证和授权服务(JAAS)进行SASL配置。

  1. 为broker配置JAAS

    KafkaServer是每个KafkaServer/Broker使用JAAS文件中的部分名称。本节为broker提供了SASL配置选项,包括进行broker之间通信所需的任何SASL客户端连接。

    客户端部分用于验证与zookeeper的SASL连接。它还允许broker在zookeeper节点上设置SASL ACL。并锁定这些节点,以便只有broker可以修改它。所有的broker必须有相同的principal名称。如果要使用客户端以外的名称,设置zookeeper.sasl.client(例如,-Dzookeeper.sasl.client = ZkClient)。

    默认情况下,Zookeeper使用“zookeeper”作为服务名称。如果你需要修改,设置zookeeper.sasl.client.user(例如,-Dzookeeper.sasl.client.username=zk)

  2. Kafka客户端的JAAS配置

    客户端可以使用客户端配置属性sasl.jaas.config或使用broker类似的静态JAAS配置文件配置JAAS。

    1. JAAS配置使用客户端配置属性

      客户端可以将JAAS配置指定为生产者或消费者属性,而不创建物理配置文件。 此模式还使同一个JVM中的不同生产者和消费者通过为每个客户端指定不同的属性来使用不同的凭据。 如果指定了静态JAAS配置系统属性java.security.auth.login.config和客户端属性sasl.jaas.config,将使用客户端属性。

      请参阅GSSAPI(Kerberos),PLAIN或SCRAM的配置例子。

    2. 使用静态配置文件的JAAS配置

      使用静态JAAS配置文件来配置客户端上的SASL认证。

      1. 添加一个名为KafkaClient的客户端登录部分的JAAS配置文件。 在KafkaClient中为所选机制配置登录模块,如设置GSSAPI(Kerberos),PLAIN或SCRAM的示例中所述。 例如,GSSAPI凭据可以配置为:
           KafkaClient {
           com.sun.security.auth.module.Krb5LoginModule required
           useKeyTab=true
           storeKey=true
           keyTab="/etc/security/keytabs/kafka_client.keytab"
           principal="kafka-client-1@EXAMPLE.COM";
           };
        
      2. 将JAAS配置文件位置作为JVM参数传递给每个客户端JVM。 例如:
        -Djava.security.auth.login.config=/etc/kafka/kafka_client_jaas.conf
        

2. SASL配置

SASL可以使用PLAINTEXT或SSL作为传输层,分别使用安全协议SASL_PLAINTEXT或SASL_SSL。 如果使用SASL_SSL,则还必须配置SSL。

  1. SASL机制

    Kafka支持一下的SASL机制:

    • GSSAPI (Kerberos)
    • PLAIN
    • SCRAM-SHA-256
    • SCRAM-SHA-512
  2. 为Kafka broker配置SASL

    1. 在server.properteis配置一个SASL端口,SASL_PLAINTEXT或SASL_SSL至少增加一个到listeners,用逗号分隔:

       listeners=SASL_PLAINTEXT://host.name:port
      

      如果你只配置一个SASL端口(如果你需要broker使用SASL互相验证),那么需要确保broker之间设置相同的SASL协议:

        security.inter.broker.protocol=SASL_PLAINTEXT (or SASL_SSL)
      
    2. 选择一个或多个支持的机制,并通过以下的步骤为机器配置SASL。在broker之间启用多个机制:

  3. 为Kafka客户端配置SASL

    SASL仅支持新的java生产者和消费者,不支持老的API。

    要在客户端上配置SASL验证,选择在broker中启用的客户端身份验证的SASL机制,并按照以下步骤配置所选机制的SASL。

3. 使用SASL/Kerberos认证

  1. 预备知识

    1. Kerberos

      如果你已在使用Kerberos(如,使用Active Directory),则无需安装重新安装。否则,你将需要安装一个,Linux供应商有Kerberos安装和配置的简短说明(UbuntuRadhat)。请注意,如果你使用的是Oracle Java,你需要下载java版本的JCE策略文件,将它们复制到 $JAVA_HOME/jre/lib/security中(注意:必须替换!!).

    2. 创建Kerberos Principals

      如果你使

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值