背景
我们的Kafka一直是没有安全机制地裸奔,最近需要给它升个级,加上认证和授权机制,认证机制是SASL/PLAIN,授权是Kafka自带的ACL授权。
SASL/PLAIN认证机制开启方法:
- 修改Kafka配置文件
server.properties
或者其它名字(CDH和Ambari的发行版可能文件名有所差异)
sasl.enabled.mechanisms = PLAIN
sasl.mechanism.inter.broker.protocol = PLAIN
security.inter.broker.protocol = SASL_PLAINTEXT
listeners = SASL_PLAINTEXT://localhost:9092
- 编辑
kafka_jaas.conf
:
KafkaServer {
org.apache.kafka.common.security.plain.PlainLoginModule required
# broker之间互相认证的凭据
username="admin"
password="admin-secret"
# 以下是用户信息
user_admin="admin-secret" # 用户admin的密码是admin-secret
user_alice="alice-secret"; # 用户alice的密码是alice-secret
};
启动kafka的时候把 kafka_jaas.conf
的路径当作命令行参数传入:
-Djava.security.auth.login.config=/path/to/kafka_jaas.conf
ACL授权机制开启方法:
编辑Kafka配置文件,添加如下内容: