15.3. 队列身份验证和访问控制
RabbitMQ 和 Qpid 提供身份验证和访问控制机制,用于控制对队列的访问。
简单身份验证和安全层(SASL)是 Internet 协议中身份验证和数据安全性的框架。除简单的用户名和密码外,RabbitMQ 和 Qpid 均提供 SASL 和其他可插入身份验证机制,从而提高安全性。虽然 RabbitMQ 支持 SASL,但 OpenStack 中的支持目前不允许请求特定的 SASL 身份验证机制。OpenStack 中的 RabbitMQ 支持通过未加密的连接或用户名和密码加 X.509 客户端证书进行用户名和密码身份验证,以建立安全的 TLS 连接。
考虑在所有 OpenStack 服务节点上为与消息传递队列的客户端连接配置 X.509 客户端证书,并在可能的情况下(目前只是 Qpid)通过 X.509 客户端证书进行身份验证。在使用用户名和密码时,应为每个服务和节点创建帐户,以便精细审核对队列的访问。
在部署前,请考虑排队服务器使用的 TLS 库。Qpid 使用 Mozilla 的 NSS 库,而 RabbitMQ 使用 Erlang 的 TLS 模块(使用 OpenSSL)。
15.3.1. RabbitMQ 的 OpenStack 服务配置 复制链接链接已复制到粘贴板!
本节介绍 OpenStack 服务的典型 RabbitMQ 配置:
将 RABBIT_PASS 替换为合适的密码。
15.3.2. Qpid 的 OpenStack 服务配置 复制链接链接已复制到粘贴板!
本节介绍 OpenStack 服务的典型 Qpid 配置:
将 QPID_PASS 替换为合适的密码。
另外,如果将 SASL 与 Qpid 搭配使用,则通过添加来指定 SASL 机制:
qpid_sasl_mechanisms = <space separated list of SASL mechanisms to use for auth>
qpid_sasl_mechanisms = <space separated list of SASL mechanisms to use for auth>