在Ubuntu上设置Kafka的安全策略,通常涉及配置SSL/TLS加密、SASL认证以及访问控制列表(ACL)。以下是详细的步骤指南:
首先,确保你已经在Ubuntu上安装了Kafka。你可以从Apache Kafka官方网站下载并按照安装指南进行安装。
SSL/TLS用于加密Kafka集群中的数据传输。
你可以使用OpenSSL生成自签名证书和密钥。
# 生成CA证书
openssl req -new -x509 -days 365 -keyout ca-key.pem -out ca-cert.pem -subj "/CN=kafka-ca"
# 生成服务器证书和密钥
openssl req -newkey rsa:2048 -days 365 -nodes -keyout server-key.pem -out server-cert.pem -subj "/CN=kafka"
# 生成客户端证书和密钥
openssl req -newkey rsa:2048 -days 365 -nodes -keyout client-key.pem -out client-cert.pem -subj "/CN=kafka-client"
编辑server.properties
文件,添加以下配置:
listeners=SSL://:9093
ssl.keystore.location=/path/to/server-keystore.jks
ssl.keystore.password=your_keystore_password
ssl.key.password=your_key_password
ssl.truststore.location=/path/to/server-truststore.jks
ssl.truststore.password=your_truststore_password
ssl.enabled.protocols=TLSv1.2
ssl.protocol=TLSv1.2
ssl.cipher.suites=TLS_AES_128_GCM_SHA256,TLS_AES_256_GCM_SHA384
将生成的证书和密钥导入到keystore和truststore中:
# 创建keystore
keytool -importkeystore -srckeystore server-cert.pem -srcstoretype PEM -destkeystore server-keystore.jks -deststoretype JKS
# 创建truststore
keytool -importkeystore -srckeystore ca-cert.pem -srcstoretype PEM -destkeystore server-truststore.jks -deststoretype JKS
编辑客户端的client.properties
文件,添加以下配置:
security.protocol=SSL
ssl.truststore.location=/path/to/client-truststore.jks
ssl.truststore.password=your_truststore_password
ssl.keystore.location=/path/to/client-keystore.jks
ssl.keystore.password=your_keystore_password
ssl.key.password=your_key_password
SASL用于身份验证。
编辑server.properties
文件,添加以下配置:
sasl.enabled.mechanisms=PLAIN
sasl.mechanism.inter.broker.protocol=PLAIN
authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer
allow.everyone.if.no.acl.found=false
super.users=User:admin
创建一个JAAS配置文件(例如kafka_server_jaas.conf
),内容如下:
KafkaServer {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin-secret"
user_admin="admin-secret";
};
使用JAAS配置文件启动Kafka服务器:
bin/kafka-server-start.sh config/server.properties --override java.security.auth.login.config=/path/to/kafka_server_jaas.conf
ACL用于控制对Kafka资源的访问。
使用Kafka的kafka-acls.sh
脚本创建ACL:
bin/kafka-acls.sh --authorizer-properties zookeeper.connect=localhost:2181 \
--add --allow-principal User:admin --operation Read --topic test-topic
确保所有配置都正确无误后,启动Kafka服务器和客户端,并验证SSL/TLS和SASL认证是否正常工作。
通过以上步骤,你可以在Ubuntu上为Kafka设置安全策略,确保数据传输的安全性和身份验证的可靠性。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读:Ubuntu Kafka配置安全策略