使用 Vault 与消息拓扑 Kubernetes 运算符
如果由消息拓扑运算符管理的 RabbitmqClusters 被配置为将其默认用户凭据存储在 Vault 中,则可能需要使用一些额外的与 Vault 相关的设置来配置拓扑运算符。
先决条件
本指南假设您具有以下内容:
- 在 Kubernetes 集群中安装了 RabbitMQ 集群运算符 和 消息拓扑运算符
- 在 Kubernetes 集群中安装了 Vault 服务器
- 必须在 Vault 中声明一个 *Vault 角色* 以供拓扑运算符使用。默认情况下,拓扑运算符将使用名为
messaging-topology-operator
的 Vault 角色。如果我们声明了一个具有不同名称的 *Vault 角色*,则必须通过覆盖环境变量OPERATOR_VAULT_ROLE
来配置运算符 - RabbitMQ 的 Vault 中的密钥仅使用 KV 密钥引擎版本 2
其他配置
为了使 RabbitMQ 消息拓扑运算符能够对 Vault 服务器进行身份验证并访问 RabbitMQ 集群默认用户凭据,必须在运算符容器中将 VAULT_ADDR
环境变量设置为 Vault 服务器 API 的 URL。
如果默认值不适用,则可以选择设置以下环境变量。
OPERATOR_VAULT_ROLE
用于访问凭据的 Vault 角色的名称。默认为messaging-topology-operator
OPERATOR_VAULT_NAMESPACE
消息拓扑运算符进行身份验证时要使用的 Vault 命名空间。如果未设置,则假定为默认 Vault 命名空间。Vault 命名空间 是一组 Vault Enterprise 中的功能,允许 Vault 环境在一个 Vault 基础设施中支持安全的多分租(或 SMT)。拓扑运算符假设所有其默认用户凭据存储在 Vault 中的 RabbitmqClusters 都属于同一个Vault 命名空间 或租户。默认命名空间 是空命名空间。OPERATOR_VAULT_AUTH_PATH
运算符在对 Vault 进行身份验证时应该使用的身份验证路径。默认行为是使用auth/kubernetes
路径
查看消息拓扑运算符的示例 vault-support,其中包含两个方便的脚本,可以帮助您完成所需的配置。
限制
- 消息拓扑运算符将无法管理其默认用户凭据位于不同 Vault
命名空间
中的 RabbitmqClusters