HashiCorp Vault Secrets Operator for Kubernetes 正式发布

HashiCorp Vault Secrets Operator for Kubernetes 正式发布

HashiCorp 宣布其 Kubernetes 的 Vault Secrets Operator 正式进入通用可用性(GA)阶段。该操作符将 Vault 的密钥管理工具与 Kubernetes Secrets 缓存结合,提供了密钥轮换功能,并支持多种密钥相关的自定义资源控制器。

主要功能

  1. 密钥同步

    • 操作符通过监听自定义资源定义(CRD)的变化,将 Vault 中的密钥同步到 Kubernetes Secrets 中。
    • 操作符直接将源 Vault 密钥写入目标 Kubernetes Secret,确保所有更改都能正确复制,并使用 Kubernetes 自定义资源来管理服务所使用的密钥。
  2. 支持的自定义资源

    • 包括 VaultConnectionVaultAuthVaultDynamicSecretVaultPKISecret 等。
    • 示例:使用 VaultConnection CR 连接到 Vault 服务器:

      apiVersion: secrets.hashicorp.com/v1beta1
      kind: VaultConnection
      metadata:
        namespace: vso-example
        name: example
      spec:
        address: http://vault.vault.svc.cluster.local:8200
  3. 动态密钥生成

    • 示例:使用 VaultDynamicSecret CR 通过数据库密钥引擎生成新凭证:

      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

新特性

  1. 新增认证方法

    • 除了 Kubernetes 认证方法外,GA 版本新增了 JWT、AppRole 和 AWS 认证方法。
  2. 云服务验证

    • 支持对 AKS、GKE、EKS 和 OpenShift 等常见 Kubernetes 云服务的验证。
  3. 密钥轮换

    • 支持 Kubernetes 的 DeploymentReplicaSetStatefulSet 资源类型的密钥轮换。
    • 示例:轮换静态密钥:

      vault kv put kvv2/webapp/config username="static-user2" password="static-password2"

部署与权限

  1. 部署方式

    • 支持通过 Helm 和 Kustomize 部署。
  2. 所需权限

    • 操作符需要 SecretServiceAccountDeployment 对象的权限。
    • 访问可以限制在指定的命名空间内。

密钥存储安全建议

  • Kubernetes Secrets API 中的密钥以未加密形式存储在 API 服务器的底层数据存储中。
  • 建议启用静态加密、设置 RBAC 规则、限制对密钥的访问,或使用外部密钥存储提供者。
  • Secrets Store CSI Driver 支持 Vault、AWS、Azure 和 GCP 提供者。

版本历史

  • Beta 版本:首次在 HashiCorp Vault 1.13 版本中引入。
  • GA 版本:与 Vault 1.14 版本同步发布。

更多详细信息可参考 HashiCorp 博客GitHub 仓库

阅读 22
0 条评论