本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。
所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。

vault-csi-provider Docker 镜像下载 - 轩辕镜像

vault-csi-provider 镜像详细信息和使用指南

vault-csi-provider 镜像标签列表和版本信息

vault-csi-provider 镜像拉取命令和加速下载

vault-csi-provider 镜像使用说明和配置指南

Docker 镜像加速服务 - 轩辕镜像平台

国内开发者首选的 Docker 镜像加速平台

极速拉取 Docker 镜像服务

相关 Docker 镜像推荐

热门 Docker 镜像下载

vault-csi-provider
hashicorp/vault-csi-provider

vault-csi-provider 镜像详细信息

vault-csi-provider 镜像标签列表

vault-csi-provider 镜像使用说明

vault-csi-provider 镜像拉取命令

Docker 镜像加速服务

轩辕镜像平台优势

镜像下载指南

相关 Docker 镜像推荐

Vault CSI提供商允许Kubernetes用户检索并挂载Vault密钥到Kubernetes Pod。
4 收藏0 次下载activehashicorp镜像

vault-csi-provider 镜像详细说明

vault-csi-provider 使用指南

vault-csi-provider 配置说明

vault-csi-provider 官方文档

Vault CSI Provider 技术文档

镜像概述和主要用途

Vault CSI Provider 是 HashiCorp Vault 与 Kubernetes CSI Secret Store Driver 的原生集成组件。其核心功能是为 Kubernetes 用户提供安全、便捷的方式,实现从 Vault 检索敏感 secrets 并将其挂载到 Pod 中的能力,避免 secrets 以明文形式存储在 Kubernetes Secrets 中,增强敏感信息的生命周期管理和访问控制。

核心功能和特性

  • 卷挂载方式挂载 Secrets:通过 CSI 卷挂载将 Vault 中的 secrets 直接挂载到 Pod 文件系统,无需暴露于 Kubernetes API。
  • Vault Secrets 同步至 Kubernetes Secrets:支持将 Vault 中的 secrets 同步为 Kubernetes Secrets,满足依赖原生 K8s Secrets 的应用场景。
  • 基于 Kubernetes 服务账户认证:使用请求资源的 Pod 所属服务账户(Service Account)向 Vault 发起认证请求,实现最小权限访问控制。
  • 多值提取支持:可从单个 Vault Secret 中提取一个或多个键值对,灵活满足应用对多密钥的需求。
  • TLS/mTLS 加密通信:与 Vault 服务之间通过 TLS 或 mTLS 加密通信,确保 secrets 在传输过程中的安全性。

使用场景和适用范围

使用场景

  • 敏感信息安全挂载:应用需访问数据库密码、API 密钥、证书等敏感信息时,通过 Vault 管理并经 CSI 驱动安全挂载至 Pod。
  • ** secrets 自动轮换**:结合 Vault 的动态 secrets 功能,实现密钥自动轮换后,通过 CSI 驱动实时更新挂载内容,无需重启 Pod。
  • 最小权限访问控制:基于 Pod 服务账户粒度控制 Vault 访问权限,避免过度授权。
  • 规避明文存储风险:替代传统 Kubernetes Secrets 明文存储(etcd 中加密仍存在风险),实现 secrets "使用时才解密" 的安全模型。

适用范围

  • 运行 Kubernetes 1.16+ 且已部署 CSI Secret Store Driver 的集群。
  • 使用 HashiCorp Vault 作为 secrets 管理平台的环境。
  • 对敏感信息生命周期管理(创建、分发、轮换、销毁)有严格安全要求的应用。

安装与部署

推荐安装方式

***推荐通过 Vault Helm Chart 安装,该 Chart 已集成 Vault CSI Provider 组件。

安装步骤

  1. 添加 Helm 仓库

    bash
    helm repo add hashicorp [***]
    helm repo update
    
  2. 安装 Vault Helm Chart
    启用 CSI Provider 组件(默认已启用,可通过参数确认):

    bash
    helm install vault hashicorp/vault \
      --namespace vault \
      --create-namespace \
      --set "server.enabled=false" \  # 若已独立部署 Vault 服务,可禁用内置 Vault Server
      --set "injector.enabled=false" \  # 若无需 Sidecar 注入,可禁用
      --set "csi.enabled=true"  # 确保 CSI Provider 启用
    
  3. 验证安装
    确认 CSI Provider DaemonSet 正常运行:

    bash
    kubectl get daemonset -n vault vault-csi-provider
    

部署示例(Kubernetes)

Vault CSI Provider 以 DaemonSet 形式运行在每个节点,以下为核心部署片段(由 Helm Chart 自动生成,供参考):

yaml
# DaemonSet 示例(精简版)
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: vault-csi-provider
  namespace: vault
spec:
  selector:
    matchLabels:
      app.kubernetes.io/name: vault-csi-provider
  template:
    metadata:
      labels:
        app.kubernetes.io/name: vault-csi-provider
    spec:
      containers:
      - name: vault-csi-provider
        image: hashicorp/vault-csi-provider:latest  # 建议指定具体版本号
        args:
          - --endpoint=unix:///csi/csi.sock
          - --log-level=info
        volumeMounts:
          - name: socket-dir
            mountPath: /csi
      volumes:
        - name: socket-dir
          hostPath:
            path: /var/lib/kubelet/plugins/csi-vault
            type: DirectoryOrCreate

配置说明

核心配置参数(Helm Chart 安装时可自定义)

参数描述默认值
csi.enabled是否启用 Vault CSI Provider 组件true
csi.image.repository镜像仓库地址hashicorp/vault-csi-provider
csi.image.tag镜像标签(版本号)latest(建议指定具体版本,如 1.4.1
csi.logLevel日志级别(trace/debug/info/warn/errorinfo
csi.vaultAddressVault 服务地址(若未指定,需在 SecretProviderClass 中配置)未设置
csi.tls.enabled是否启用与 Vault 的 TLS 通信true
csi.tls.caCert用于验证 Vault 服务端证书的 CA 证书(Base64 编码)未设置(默认使用系统 CA)

使用方法

前提条件

  1. Kubernetes 集群已部署 CSI Secret Store Driver。
  2. Vault 服务已部署并配置 Kubernetes 认证(参考 Vault Kubernetes Auth)。

步骤 1:创建 SecretProviderClass

定义从 Vault 检索 secrets 的规则,示例:

yaml
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
  name: vault-db-creds  # 自定义名称,供 Pod 引用
spec:
  provider: vault  # 固定为 "vault"
  parameters:
    vaultAddress: "[***]"  # Vault 服务地址
    vaultKubernetesMountPath: "kubernetes"  # Vault Kubernetes 认证挂载路径
    roleName: "db-app"  # Vault 中定义的角色(需绑定 Pod 服务账户)
    objects: |
      - objectName: "db-password"  # 挂载到 Pod 中的文件名
        objectType: "secret"  # Vault 秘密类型(secret/kv/transit 等)
        objectPath: "database/creds/my-app"  # Vault 秘密路径
        objectField: "password"  # 提取的字段名(若不指定则获取整个秘密)

步骤 2:在 Pod 中挂载 secrets

在 Pod 定义中引用 SecretProviderClass,通过 CSI 卷挂载 secrets:

yaml
apiVersion: v1
kind: Pod
metadata:
  name: app-with-vault-secret
spec:
  serviceAccountName: db-app-sa  # 需与 Vault 角色绑定的服务账户
  containers:
  - name: app
    image: nginx:alpine
    volumeMounts:
    - name: vault-secrets  # 卷名称,需与 volumes 中一致
      mountPath: "/mnt/secrets"  # 挂载路径
      readOnly: true  # 只读挂载,防止篡改
  volumes:
  - name: vault-secrets
    csi:
      driver: secrets-store.csi.k8s.io  # CSI Secret Store Driver 驱动名
      readOnly: true
      volumeAttributes:
        secretProviderClass: "vault-db-creds"  # 引用步骤 1 创建的 SecretProviderClass

验证挂载

进入 Pod 后,检查挂载路径下的 secrets 文件:

bash
kubectl exec -it app-with-vault-secret -- cat /mnt/secrets/db-password

输出应为 Vault 中 database/creds/my-app 路径下的 password 字段值。

参考文档

  • *** Vault CSI Provider 文档
  • Vault Helm Chart 配置说明
  • CSI Secret Store Driver 文档

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

oldzhang的头像

oldzhang

运维工程师

Linux服务器

5

"Docker加速体验非常流畅,大镜像也能快速完成下载。"