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