Skip to content

安全矩阵

本页结论:四个产品都支持 TLS 传输加密与用户名/凭证级认证授权,但粒度与形态不同——RabbitMQ 按 vhost 内资源正则授权,Kafka 用 ACL 到 topic/group,RocketMQ 提供 ACL 访问控制,Pulsar 在 Tenant/Namespace 层级做多租户授权;静态加密与审计能力普遍需要额外组件或平台配合。

覆盖 spec §8.2「运维矩阵」中安全能力部分(工具/指标/Schema 部分见运维观测)。版本基线与标记规则见矩阵总览(checkedAt: 2026-08-19)。安全基线的完整要求见 spec §12.3(TLS、最小授权、秘密管理、端口分离、Payload 脱敏)。

加密

能力RabbitMQKafkaRocketMQPulsar
传输加密(TLS)✅ AMQPS/STOMP over TLS 等,支持服务端证书校验与双向 TLS(operations✅ 客户端与 Broker、Broker 间均可 TLS/SASL_SSL(operations✅ 客户端与 Broker 间 TLS(operations✅ 客户端、Broker 间、Broker 与 BookKeeper 间均可 TLS(operations
静态加密(存储层)➖ 无内置:依赖磁盘/文件系统层加密(pitfalls➖ 无内置:依赖存储层加密方案(pitfalls➖ 无内置:依赖磁盘层加密(pitfalls➖ Broker 侧无内置静态加密:依赖 BookKeeper 存储层/磁盘加密;内容保护可改用消息级端到端加密(storage-ha
消息级端到端加密➖ 无内置➖ 无内置(可在应用层字段加密)➖ 无内置✅ 客户端级消息加密(producer 加密 / consumer 解密,Broker 不见明文),需配置加密密钥(reliability

「传输加密、静态加密、应用层字段加密」是三个不同边界:TLS 只保护链路,磁盘加密只保护介质,字段加密才保护消息内容本身。三者不可互相替代。

认证与授权

能力RabbitMQKafkaRocketMQPulsar
认证机制✅ 内置用户名/密码(SASL PLAIN)、客户端证书(EXTERNAL)等(operations✅ SASL 多机制(PLAIN/SCRAM/KERBEROS/OAUTHBEARER)(operations✅ ACL 账号体系(AccessKey/SecretKey)(operations✅ 可插拔认证:JWT token、TLS 证书、OIDC 等(operations
授权粒度✅ vhost 内按 exchange/queue 资源配置读写权限(正则匹配)(operations✅ ACL:topic/group/cluster 级,按 principal 配置读写权限(operations✅ ACL:Topic 级 pub/sub 权限控制(operations✅ tenant/namespace/topic 多级权限,策略按命名空间管理(operations
多租户隔离🔧 vhost 隔离资源与权限,但无原生配额/流控体系(concepts➖ 无租户层级:命名约定 + ACL + Quota 组合(operations➖ 无租户层级:ACL + 实例/部署隔离(operations✅ Tenant/Namespace 原生隔离:权限、配额、保留策略一体化(concepts
审计🔧 内置审计日志记录管理与连接事件(3.9+),需开启与采集(operations🔧 社区版无统一审计服务:依赖 Authorizer 日志接入审计系统(operations🔧 以操作日志为主,需自行接入审计管道(operations🔧 管理操作日志 + 事件审计能力,需配置采集(operations

生产安全基线(四产品通用)

  • 生产启用 TLS 并校验服务端身份;双向 TLS 作为可选强化。
  • 每个服务独立身份,按 Topic/Queue/命名空间最小授权;禁止共享超级账号。
  • Demo 默认账号(如 guest/guest)禁止用于生产——见各产品陷阱与检查表
  • 管理端口与数据端口分离,管理界面只绑定内网/localhost。
  • 消息 Payload 中的个人信息、凭证、支付数据需分类脱敏;必要时用应用层字段加密或 Pulsar 消息级加密。
  • 秘密不进仓库、URL、日志与实验快照;证书/密钥建立轮换流程。

脚注:同名异义

  • 「ACL」:Kafka ACL 是绑定 principal 的资源级规则;RocketMQ ACL 是账号 + Topic pub/sub 权限;Pulsar 的策略体系按 tenant/namespace 分层。三者的配置位置、生效粒度与更新方式不同,不能套用同一条规则模板。
  • 「vhost vs tenant」:RabbitMQ vhost 是资源与权限的轻量隔离边界;Pulsar tenant 是带配额、策略与层级命名空间的租户单元。前者偏「逻辑分区」,后者偏「平台多租户」。

相关页面

以统一实验验证消息系统语义边界