Kafka 安全模式SASL/GSSAPI配置示例
一、SASL_GSSAPI
连接到 SASL/GSSAPI 模式的 kafka
1. 配置示例
- 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. 组件中引用
四、流程模板
参见:模板文件