Skip to content

Security Overview

RobustMQ AMQP currently implements only authentication, not authorization/ACL, and does not support TLS. Keep this boundary in mind when planning a security posture.

Current Capabilities

CapabilityStatusNotes
SASL authenticationOnly the PLAIN mechanism is supported — see Authentication (SASL)
Username/password verificationReuses RobustMQ's unified user store, shared with MQTT/Kafka
vhost as tenant🟡virtual_host is used as a tenant identifier during login, but there's no vhost-scoped resource isolation or permission control beyond that
ACL / operation authorizationOnce logged in, there's no permission check on declaring/binding exchanges or queues, publishing, or consuming
TLS/SSLThe AMQP port (default 5672) only accepts plaintext TCP — no encrypted transport option

Know the Authentication Boundary

A successful login only means "the username/password was correct and this connection is accepted" — it does NOT mean this user has fine-grained permission on any specific exchange or queue, because that authorization layer isn't implemented yet. In practice, any authenticated client can declare, bind, publish to, and consume from any queue or exchange in the cluster. If you're running this in production, you need to close this gap at the network layer instead (security groups, firewalls, only exposing the port to trusted clients).

Transport Security

Without TLS, AMQP traffic — including the plaintext username/password carried in SASL PLAIN authentication — is unencrypted on the wire. If you need encrypted transport today, the only options are external: deploy within a trusted private network, or add a layer like stunnel or a service-mesh mTLS sidecar between clients and the broker. RobustMQ itself doesn't yet have built-in TLS termination.

Further Reading

🎉 既然都登录了 GitHub,不如顺手给我们点个 Star 吧!⭐ 你的支持是我们最大的动力 🚀