在CentOS上安全配置Apache Kafka涉及多個步驟,包括認證、授權、加密、網絡隔離等。以下是一些關鍵的安全配置措施:
認證配置:
security.protocol
為 sasl_plaintext
或 sasl_ssl
。設置 sasl.mechanism
為 PLAIN
、SCRAM-SHA-256
、SCRAM-SHA-512
或 GSSAPI
(Kerberos)。創建并配置 JAAS 文件(如 kafka_server_jaas.conf
和 kafka_client_jaas.conf
)以啟用 SASL 認證。SSL配置:
security.protocol
為 ssl
。設置 ssl.truststore.location
和 ssl.truststore.password
指定信任庫文件。配置 ssl.keystore.location
、ssl.keystore.password
和 ssl.key.password
指定密鑰庫文件。權限管理與訪問控制列表(ACLs):
kafka-acls.sh
工具設置 ACL,定義用戶或用戶組對特定主題的訪問權限。配置 authorizer.class.name
為 kafka.security.auth.SimpleAclAuthorizer
。網絡隔離與防火墻配置:
firewall-cmd
命令開放 Kafka 服務使用的端口(默認 9092)??紤]將 Kafka 部署在 VPC 或專用子網中,以增強網絡隔離。審計日志:
Kerberos集成(可選):
數據加密:
安全配置最佳實踐:
以下是一個簡單的示例,展示如何在 Kafka 配置文件中啟用 SASL 和 SSL:
# server.properties
security.protocol = sasl_ssl
sasl.mechanism.inter.broker.protocol = PLAIN
ssl.truststore.location = /path/to/truststore.jks
ssl.truststore.password = truststore-password
ssl.keystore.location = /path/to/keystore.jks
ssl.keystore.password = keystore-password
ssl.key.password = key-password
通過上述措施,可以有效地提高 Kafka 系統的安全性,保護數據不被未授權訪問和篡改。