13.3. 队列身份验证和访问控制
RabbitMQ 和 Qpid 为控制对队列的访问提供了身份验证和访问控制机制。
简单身份验证和安全层(SASL)是 Internet 协议中身份验证和数据安全性的框架。RabbitMQ 和 Qpid 均提供 SASL 以及除简单用户名和密码之外的其他可插入验证机制,从而增强身份验证安全性。虽然 RabbitMQ 支持 SASL,但 OpenStack 目前不允许请求特定的 SASL 身份验证机制。OpenStack 中的 RabbitMQ 支持通过未加密的连接或用户名以及 X.509 客户端证书进行用户名和密码的身份验证,从而建立安全的 TLS 连接。
考虑在所有 OpenStack 服务节点上配置 X.509 客户端证书,以便客户端连接消息传递队列,并在可能的情况下使用 X.509 客户端证书执行身份验证。在使用用户名和密码时,应为每个服务和节点创建帐户,以便精细的可审核访问队列。
在部署前,请考虑排队服务器使用的 TLS 库。Qpid 使用 Mozilla 的 NSS 库,而 RabbitMQ 使用 Erlang 的 TLS 模块,它们使用 OpenSSL。
13.3.1. RabbitMQ 的 OpenStack 服务配置
本节介绍了 OpenStack 服务的典型 RabbitMQ 配置:
[DEFAULT] rpc_backend = nova.openstack.common.rpc.impl_kombu rabbit_use_ssl = True rabbit_host = RABBIT_HOST rabbit_port = 5671 rabbit_user = compute01 rabbit_password = RABBIT_PASS kombu_ssl_keyfile = /etc/ssl/node-key.pem kombu_ssl_certfile = /etc/ssl/node-cert.pem kombu_ssl_ca_certs = /etc/ssl/cacert.pem
注意
将 RABBIT_PASS
替换为适当的密码。