在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 认证。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 系统的安全性,保护数据不被未授权访问和篡改。