Skip to main content
AutoMQ 支持使用 Kafka ACL 用户进行 SASL 身份验证。仅在可信私有网络中使用 SASL_PLAINTEXT;使用 SASL_SSL 可通过 TLS 加密客户端流量。

开启 SASL_PLAINTEXT

服务端配置

创建实例时启用 SASL 身份验证和 SASL_PLAINTEXT Listener。创建 ACL 用户,并仅授予应用所需的 Topic 和 Consumer Group 权限。

客户端配置

使用 AutoMQ 中创建的凭证配置 Kafka 客户端。以下示例使用 SASL/PLAIN:

开启 SASL_SSL

SASL_SSL 同时提供 SASL 客户端身份验证、TLS 服务端身份验证和传输加密。服务端证书责任取决于创建实例时选择的 DNS Zone 模式。
创建实例时需要选择 DNS Zone 模式并启用 SASL_SSL。现有实例不能从未加密 Listener 变更为 SASL_SSL

使用 AutoMQ Managed Public DNS Zone

  1. 创建实例时选择 Public DNS Zone 和 AutoMQ Managed 模式。
  2. 启用 SASL_SSL Listener 并配置 SASL 身份验证。
  3. 不要上传用户管理的服务端证书文件。AutoMQ 会签发并续期 Server Certificate。
  4. 创建 ACL 用户并授予所需资源权限。
Server Certificate 由公共 CA 签发,因此 Kafka 客户端通常使用操作系统或 Java 运行时提供的信任锚。除非组织安全策略另有要求,否则无需配置自定义 Truststore。

使用用户管理的 Private DNS Zone

使用用户管理的 Private DNS Zone 时,用户必须提供 CA Certificate、Server Certificate 和 Server Private Key。优先使用组织证书颁发机构签发的证书。如果需要自行创建和维护私有 CA,可参考以下步骤。
以下命令会创建私有 CA。请按照组织的密钥管理要求保护 ca.keyserver.key。不要将 CA Private Key 上传到 AutoMQ,也不要将任何私钥分发给 Kafka 客户端。

1. 创建私有 CA

创建 ca.cnf,执行命令前替换证书主题信息。
生成 CA Private Key 和 CA Certificate:

2. 签发 Server Certificate

创建 server.cnf。Subject Alternative Name(SAN)必须覆盖与 Private DNS Zone 关联的 AutoMQ 私有接入域名。请根据实例接入地址使用准确域名或所需的通配符域名,不要依赖 Common Name 完成主机名验证。
生成 Server Private Key 和证书签名请求(CSR),然后使用私有 CA 签发 Server Certificate:
上传前检查证书的 SAN 和有效期:

3. 配置 AutoMQ

  1. 创建实例时选择用户管理的 Private DNS Zone,并启用 SASL_SSL Listener。
  2. ca.crt 作为 Server CA Certificate、server.crt 作为 Server Certificate、server.key 作为 Private Key 上传。
  3. 创建 ACL 用户,并仅授予应用所需的 Topic 和 Consumer Group 权限。

4. 配置 Kafka 客户端

如果客户端运行时默认不信任该私有 CA,将 ca.crt 导入客户端 Truststore:

证书过期责任

  • AutoMQ Managed Public DNS Zone: AutoMQ 监控并续期 Server Certificate,用户无需轮转服务端证书。
  • 用户管理的 Private DNS Zone: 用户负责在 Server CA 和 Server Certificate 过期前完成监控和轮转。可使用 kafka_stream_cert_expiry_timestamp_millisecondskafka_stream_cert_days_remaining 监控已安装的服务端证书。采集方法请参见 Prometheus 监控与告警