将 Vault 与消息拓扑 Kubernetes Operator 一起使用
如果由消息拓扑 Operator 管理的 RabbitmqClusters 配置为将其默认用户凭据存储在 Vault 中,则可能需要为拓扑 Operator 配置一些额外的 Vault 相关设置。
先决条件
本指南假定您具备以下条件
- RabbitMQ 集群 Operator 和消息拓扑 Operator 已安装在 Kubernetes 集群上
- Vault 服务器已安装在 Kubernetes 集群上
- 必须在 Vault 中为拓扑 operator 声明一个 Vault 角色供其使用。默认情况下,拓扑 operator 将使用名为
messaging-topology-operator
的 vault 角色。如果我们声明了具有不同名称的 Vault 角色,我们必须通过覆盖环境变量OPERATOR_VAULT_ROLE
来配置 operator - RabbitMQ 在 Vault 中的密钥仅使用 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 Namespaces 是 Vault Enterprise 中的一组功能,允许 Vault 环境在单个 Vault 基础设施中支持安全多租户 (SMT)。拓扑 operator 假定所有默认用户凭据存储在 Vault 中的 RabbitmqClusters 都属于同一 Vault 命名空间或租户。默认命名空间为空白命名空间。OPERATOR_VAULT_AUTH_PATH
operator 在向 Vault 进行身份验证时应使用的身份验证路径。默认行为是使用auth/kubernetes
路径
查看消息拓扑 Operator 的 vault-support 示例,您可以在其中找到两个方便的脚本,引导您完成所需的配置。
局限性
- 消息拓扑 Operator 将无法管理默认用户凭据位于不同 Vault
Namespaces
中的 RabbitmqClusters