HashiCorp Vault Secrets Operator for Kubernetes 正式发布
HashiCorp 宣布其 Kubernetes 的 Vault Secrets Operator 正式进入通用可用性(GA)阶段。该操作符将 Vault 的密钥管理工具与 Kubernetes Secrets 缓存结合,提供了密钥轮换功能,并支持多种密钥相关的自定义资源控制器。
主要功能
密钥同步:
- 操作符通过监听自定义资源定义(CRD)的变化,将 Vault 中的密钥同步到 Kubernetes Secrets 中。
- 操作符直接将源 Vault 密钥写入目标 Kubernetes Secret,确保所有更改都能正确复制,并使用 Kubernetes 自定义资源来管理服务所使用的密钥。
支持的自定义资源:
- 包括
VaultConnection、VaultAuth、VaultDynamicSecret和VaultPKISecret等。 示例:使用
VaultConnectionCR 连接到 Vault 服务器:apiVersion: secrets.hashicorp.com/v1beta1 kind: VaultConnection metadata: namespace: vso-example name: example spec: address: http://vault.vault.svc.cluster.local:8200
- 包括
动态密钥生成:
示例:使用
VaultDynamicSecretCR 通过数据库密钥引擎生成新凭证:apiVersion: secrets.hashicorp.com/v1beta1 kind: VaultDynamicSecret metadata: namespace: vso-example name: example spec: vaultAuthRef: example mount: db path: creds/my-postgresql-role destination: create: true name: dynamic1
新特性
新增认证方法:
- 除了 Kubernetes 认证方法外,GA 版本新增了 JWT、AppRole 和 AWS 认证方法。
云服务验证:
- 支持对 AKS、GKE、EKS 和 OpenShift 等常见 Kubernetes 云服务的验证。
密钥轮换:
- 支持 Kubernetes 的
Deployment、ReplicaSet和StatefulSet资源类型的密钥轮换。 示例:轮换静态密钥:
vault kv put kvv2/webapp/config username="static-user2" password="static-password2"
- 支持 Kubernetes 的
部署与权限
部署方式:
- 支持通过 Helm 和 Kustomize 部署。
所需权限:
- 操作符需要
Secret、ServiceAccount和Deployment对象的权限。 - 访问可以限制在指定的命名空间内。
- 操作符需要
密钥存储安全建议
- Kubernetes Secrets API 中的密钥以未加密形式存储在 API 服务器的底层数据存储中。
- 建议启用静态加密、设置 RBAC 规则、限制对密钥的访问,或使用外部密钥存储提供者。
- Secrets Store CSI Driver 支持 Vault、AWS、Azure 和 GCP 提供者。
版本历史
- Beta 版本:首次在 HashiCorp Vault 1.13 版本中引入。
- GA 版本:与 Vault 1.14 版本同步发布。
更多详细信息可参考 HashiCorp 博客 或 GitHub 仓库。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。