搜索

第 22 章 消息队列

download PDF

消息队列服务有助于在 OpenStack 中进行进程间通信。这使用这些消息排队服务后端完成:

  • RabbitMQ - Red Hat OpenStack Platform 默认使用 RabbitMQ。
  • qpid

RabbitMQ 和 Qpid 都是高级消息队列协议(AMQP)框架,它为对等通信提供消息队列。队列实施通常部署为集中或分散的队列服务器池。

消息队列有效地促进 OpenStack 部署之间的命令和控制功能。允许访问队列后,不会执行进一步的授权检查。通过队列访问的服务会验证实际消息有效负载内的上下文和令牌。但是,您必须注意令牌的过期日期,因为令牌可能会重新显示,并可授权基础架构中的其他服务。

OpenStack 不支持消息级信任,如消息签名。因此,您必须保护并验证消息传输本身。对于高可用性(HA)配置,您必须执行队列到队列身份验证和加密。

22.1. 消息传递传输安全性

基于 AMQP 的解决方案(Qpid 和 RabbitMQ)支持使用 TLS 的传输级安全性。

考虑为您的消息队列启用传输级别加密。使用 TLS 进行消息传递客户端连接,可以保护通信免受篡改,并窃取传输至消息传递服务器的通信。以下指导通常如何为两个流行消息传递服务器配置 TLS: Qpid 和 RabbitMQ。当您配置消息传递服务器用来验证客户端连接的可信证书颁发机构(CA)捆绑包时,建议只限于用于节点的 CA,最好是内部管理的 CA。可信 CA 的捆绑包将决定哪些客户端证书被授权,并传递设置 TLS 连接的 client-server 验证步骤。

注意

安装证书和密钥文件时,请确保对文件权限进行限制,例如使用 chmod 0600,并且所有权仅限于消息传递服务器守护进程用户,以防止由其他进程和消息传递服务器上的用户进行未授权访问。

22.1.1. RabbitMQ 服务器 SSL 配置

以下行应添加到系统范围的 RabbitMQ 配置文件中,通常为 /etc/rabbitmq/rabbitmq.config

[
  {rabbit, [
     {tcp_listeners, [] },
     {ssl_listeners, [{"<IP address or hostname of management network interface>", 5671}] },
     {ssl_options, [{cacertfile,"/etc/ssl/cacert.pem"},
                    {certfile,"/etc/ssl/rabbit-server-cert.pem"},
                    {keyfile,"/etc/ssl/rabbit-server-key.pem"},
                    {verify,verify_peer},
                    {fail_if_no_peer_cert,true}]}
   ]}
].
注意

tcp_listeners 选项被设置为 [],以防止它侦听非 SSL 端口。ssl_listeners 选项应限制为仅侦听服务的管理网络。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.