Skip to main content

Kafka 安全模式SASL/GSSAPI配置示例

一、SASL_GSSAPI

连接到 SASL/GSSAPI 模式的 kafka

1. 配置示例

image-20220615184348863

  • Kafka Brokers ,集群模式下,Kafka Brokers 设置为以逗号分割的多个 IP 加端口
  • kerberos相关配置:
    • 配置 kerberos 服务名
    • 提供 JAAS 配置
  • kerberos证书服务:可以通过 KeytabCredentialsService 控制器服务进行提供,也可以直接在属性中进行指定

二、JAAS 配置

JAAS 提供 kerberos 认证相关信息,支持 2 种方式来提供 JAAS 配置

1. JAAS 配置方式(一)

这种方式密码会以明文方式保存到 flow.xml.gz 文件中,存在泄漏的风险

  • 增加动态属性sasl.jaas.config配置登录用户名和密码

    com.sun.security.auth.module.Krb5LoginModule required
    useKeyTab=true
    storeKey=true
    keyTab="/path/to/user.keytab"
    serviceName="kafka"
    principal="admin@ORCHSYM.COM";
  • 新增动态属性sasl.mechanism,配置值为GSSAPI

2. JAAS 配置方式(二)

这种方式限制了在整个 runtime 集群中只能使用一个用户进行认证

  • 在配置文件 bootstrap.conf 中增加新的 jvm 参数。

    java.arg.20=-Dkerberos.domain.name=admin.orchsym.com
    java.arg.21=-Djava.security.krb5.conf=/opt/orchsym/runtime/conf/krb5.conf

    注意:java.arg.x中的数字 ,需要根据配置文件进行相修改,避免配置被覆盖

  • kafka_client_jaas.conf文件配置内容

    KafkaClient {
    com.sun.security.auth.module.Krb5LoginModule required
    useKeyTab=true
    principal="admin@ORHCSYM.COM"
    keyTab="/path/to/user.keytab"
    useTicketCache=false
    serviceName="kafka"
    storeKey=true
    debug=true;
    };

三、Runtime 配置Kerberos认证

配置并保存Kerberos认证信息,供以后使用

1. 修改配置文件

$ vi /opt/orchsym/runtime/conf/orchsym.properties
具体配置:
orchsym.kerberos.krb5.file=/opt/developuser/krb5.conf
orchsym.kerberos.service.principal=developuser
orchsym.kerberos.service.keytab.location=/opt/developuser/user.keytab

2. 重启Runtime

3. 配置KeytabCredentialsService

4. 组件中引用

四、流程模板

参见:模板文件