Appearance
安全矩阵
本页结论:四个产品都支持 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 脱敏)。
加密
| 能力 | RabbitMQ | Kafka | RocketMQ | Pulsar |
|---|---|---|---|---|
| 传输加密(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 只保护链路,磁盘加密只保护介质,字段加密才保护消息内容本身。三者不可互相替代。
认证与授权
| 能力 | RabbitMQ | Kafka | RocketMQ | Pulsar |
|---|---|---|---|---|
| 认证机制 | ✅ 内置用户名/密码(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 是带配额、策略与层级命名空间的租户单元。前者偏「逻辑分区」,后者偏「平台多租户」。