Bitwarden 帮助中心中文版
⮐ Bitwarden Help Center个人主页联系我
  • 关于
  • 首页
  • 发布记录
  • 账户
    • 创建 Bitwarden 账户
    • 登录 & 解锁
      • 主密码
      • 忘记主密码
      • 新设备登录保护
      • 使用 SSO 登录
      • 使用设备登录
      • 使用通行密钥登录 (Beta)
      • 账户切换
      • 使用 PIN 码解锁
      • 使用生物识别解锁
      • 密码库超时选项
    • 两步登录
      • 两步登录现场指南
      • 两步登录方式
      • 设置指南
        • 两步登录 - 验证器
        • 两步登录 - 电子邮箱
        • 两步登录 - Duo
        • 两步登录 - YubiKey
        • 两步登录 - 通行密钥
      • 恢复代码
      • 丢失了辅助设备
      • 两步登录 FAQ
    • 更多
      • 紧急访问
      • 本地化
      • *异常流量错误
  • Password Manager
    • Password Manager 概述
    • 入门
      • Password Manager 网页 App
      • Password Manager 浏览器扩展
      • Password Manager 移动 App
      • Password Manager 桌面 App
    • 密码库基础
      • 密码库项目
      • 用户名 & 密码生成器
      • 自定义字段
      • 集成的验证器
      • 文件附件
      • 共享
      • 集合
      • 存储通行密钥
      • *通行密钥 FAQ
    • 密码库管理
      • 文件夹
      • 收藏
      • 同步密码库
      • 检索密码库
      • 密码库健康报告
    • 导入 & 导出
      • 导入数据到密码库
      • 导入指南
        • 从 LastPass 导入
        • 从 1Password 导入
        • 从 Keeper 导入
        • 从 Dashlane 导入
        • 从 Google Chrome 导入
        • 从 macOS & Safari 导入
        • 从 Firefox 导入
        • 从 Password Safe 导入
        • 从 Myki 导入
      • 导出密码库数据
      • 加密导出
      • 调整 Bitwarden .csv 或 .json
      • *Bitwarden 导入器工具
      • 导入 & 导出 FAQ
    • 自动填充
      • 自动填充基础
        • 在浏览器扩展中自动填充登录
        • 在 Android 上自动填充登录
        • 在 iOS 上自动填充登录
        • 自动填充支付卡和身份
        • 自动填充自定义字段
      • 使用 URI
      • 屏蔽自动填充
      • 基本验证提示
      • 键盘快捷键
      • 禁用浏览器的内置密码管理器
      • Android 自动填充故障排除
      • 自动填充 FAQ
    • Bitwarden Send
      • 关于 Send
      • 创建 Send
      • 接收 Send
      • Send 生命周期
      • Send 隐私
      • CLI 上的 Send
      • Send 加密
      • Send FAQ
    • 开发者工具
      • Password Manager API
      • Password Manager CLI
      • CLI 身份验证挑战
      • 用于 CLI 验证的个人 API 密钥
      • SSH 代理
    • 更多
      • Password Manager FAQ
      • 更改 App 主题
      • DuckDuckGo macOS 浏览器集成
      • Apple Watch 上的 Bitwarden
      • 在 Firefox 隐私窗口中使用 Bitwarden
      • 离线使用 Bitwarden
      • 排除域名
      • Safari 网页扩展
      • uMatrix 和 NoScript 访问规则
      • 与 Bitwarden 支持排除移动端故障
  • Bitwarden Authenticator
    • Bitwarden Authenticator
    • 导入 & 导出
    • FAQ
  • Secrets Manager
    • Secrets Manager 概述
    • 入门
      • Secrets Manager 快速入门
      • 开发人员快速入门
      • 登录 Secrets Manager
      • 管理您的组织
    • 您的机密
      • 工程
      • 机密
      • 机器账户
      • 访问令牌
      • 机密解密
    • 导入 & 导出
      • 导入数据
      • 导出数据
    • 开发人员工具
      • Secrets Manager CLI
      • Secrets Manager SDK
    • 集成
      • Ansible
      • GitHub Actions
      • GitLab CI/CD
      • Secrets Manager Kubernetes Operator
    • 更多
      • Secrets Manager FAQ
  • 管理控制台
    • 组织快速入门
    • 组织基础
      • 组织
      • 集合
      • 群组
      • 企业策略
      • 集合管理
    • 用户管理
      • 用户管理
      • 成员角色和权限
      • 声明域名
      • 声明账户
      • 账户恢复
      • SCIM
        • 关于 SCIM
        • JumpCloud SCIM 集成
        • Microsoft Entra ID SCIM 集成
        • Okta SCIM 集成
        • OneLogin SCIM 集成
        • Ping Identity SCIM 集成
      • 目录连接器
        • 关于目录连接器
        • 目录连接器桌面 App
        • 目录连接器 CLI
        • 目录连接器文件存储
        • 同步选项和筛选器
        • 清除同步缓存
        • 调度同步
        • 使用 AD 或 LDAP 同步
        • 使用 Microsoft Entra ID 同步
        • 使用 Google Workspace 同步
        • 使用 Okta 同步
        • 使用 OneLogin 同步
      • 入职和继任概述
    • 导入 & 导出
      • 导入数据到组织
      • 导出密码库数据
      • 调整 Bitwarden .csv 或 .json
    • SSO 登录
      • 关于 SSO 登录
      • SAML 2.0 配置
      • OIDC 配置
      • 成员解密选项
      • 声明域名
      • 实施指南
        • ADFS SAML 实施
        • Auth0 SAML 实施
        • AWS SAML 实施
        • Duo SAML 实施
        • Google SAML 实施
        • JumpCloud SAML 实施
        • Keycloak SAML 实施
        • Microsoft Entra ID SAML 实施
        • Okta SAML 实施
        • OneLogin SAML 实施
        • Ping Identity SAML 实施
        • ADFS OIDC 实施
        • Microsoft Entra ID OIDC 实施
        • Okta OIDC 实施
        • Ping Identity OIDC 实施
        • Cloudflare Zero Trust SSO 实施
      • 受信任设备
        • 关于受信任设备
        • 设置受信任设备 SSO
        • 添加受信任设备
        • 批准受信任设备
      • Key Connector
        • 关于 Key Connector
        • 部署 Key Connector
      • *在您的 IdP 上配置 Bitwarden(SAML 2.0)
      • SSO 登录 FAQ
    • 报告
      • 密码库健康报告
      • 事件日志
      • Elastic SIEM
      • Microsoft Sentinel SIEM
      • Panther SIEM
      • Rapid7 SIEM
      • Splunk SIEM
    • 最终用户入职
      • 关于本章节
      • 欢迎电子邮件模板
      • 管理团队入职电子邮件
      • 最终用户采用电子邮件
      • 客户激活套件
      • 入职流程
    • 部署客户端 App
      • 部署浏览器扩展
        • 使用 GPO、Linux 策略和 .plist 文件部署浏览器扩展
        • 使用 Intune 部署浏览器扩展
      • 部署桌面端 App
        • 使用 Intune 部署桌面端 App
      • 部署移动端 App
        • 使用 Intune 部署移动端 App
      • 为您的服务器配置客户端
      • 使用设备管理停用浏览器密码管理器
    • Bitwarden 公共 API
    • 更多
      • 组织 FAQ
      • 链接到项目
      • 企业版 Bitwarden 功能数据表
      • 团队版和企业版迁移指南
      • LastPass 企业版迁移指南
      • 组织所有者离职时的访问权限管理
      • PoC 项目清单
      • 为生产准备试用组织
      • *团队版 Bitwarden 对比指南
  • 提供商门户
    • 提供商门户概览
    • 提供商门户快速入门
    • 提供商用户
    • 添加客户组织
    • *添加现有组织
    • 持续管理
    • 取消链接客户组织
    • 提供商事件日志
    • 提供商计费
    • 提供商 FAQ
    • 业务单元门户
      • 业务单元门户
      • 业务单元门户快速入门
  • 自托管
    • 安装 & 部署指南
      • Docker
        • Linux 标准部署
        • Linux 手动部署
        • Linux 离线部署
        • Windows 标准部署
        • Windows 离线部署
        • Unified 部署 (Beta)
      • Helm
        • 使用 Helm 自托管
        • Azure AKS 部署
        • OpenShift 部署
        • AWS EKS 部署
        • 添加 rawManifest 文件
    • 自托管组织
    • 迁移步骤
    • 证书选项
    • 配置环境变量
    • 数据库选项
    • 连接到外部 MSSQL 数据库
    • Kerberos 集成
    • 更新实例
    • 备份托管数据
    • 付费功能许可证
    • 系统管理员门户
    • 为服务器配置客户端
    • 连接客户端到实例
    • 自托管 SCIM
    • 自托管家庭赞助
    • 自托管 Send
    • 配置推送中继
    • *作为 MSP 部署 Bitwarden
    • 托管 FAQ
  • 安全
    • Bitwarden 安全白皮书
    • 密码库数据
    • 管理数据
    • 加密方式
    • KDF 算法
    • 账户加密密钥
    • 账户指纹短语
    • 数据存储
    • 合规、审计和认证
    • 服务器地理位置
    • 版本控制
    • 使用网站图标时的隐私
    • Bitwarden 软件发布支持
    • Bitwarden 的分包商
    • 来自 Bitwarden 的电子邮件
    • Bitwarden 地址
    • 安全 FAQ
  • 计划和定价
    • Password Manager
      • Password Manager 计划
      • 从个人升级到组织
      • 兑换家庭赞助
      • 高级会员续费
    • Secrets Manager
      • Secrets Manager 计划
      • 注册 Secrets Manager
    • Bitwarden 经销商
    • 开始企业版试用
    • 组织续费
    • 更新计费信息
    • 税费计算
    • 删除账户或组织
    • 取消订阅
    • 计费 FAQ
    • *更新 Bitwarden 计划 (2019-2020)
    • *更新 Password Manager 计划 & 订阅
    • *哪种计划适合我?
  • 学习中心
    • 关于学习中心
    • 使用 Bitwarden 的第一步
    • 了解 Password Manager
    • Password Manager
      • Bitwarden 入门:个人用户
      • Bitwarden 入门:管理员
      • Bitwarden 入门:成员
      • Bitwarden 入门:经销商或 MSP
    • Bitwarden 高级用户
    • 面向企业管理员的 Bitwarden
    • 了解 Secrets Manager
    • 面向 MSP 的 Bitwarden
    • 了解 Passwordless.dev
  • *杂项
    • 11 月弃用通知
    • Bitwarden 术语表
    • 迁移脚本
    • Bitwarden 101 视频系列-入门
    • Secrets Manager Beta 版注册
    • 未分配的密码库项目已移至管理控制台
    • 原生移动 App
  • 附录
    • 翻译约定
    • 资源
由 GitBook 提供支持
在本页
  • 要求
  • 准备图表
  • 将存储库添加到 Helm
  • 创建命名空间
  • 创建配置
  • 创建机密对象
  • 证书设置示例
  • 添加 rawManifest 文件
  • 安装图表
  • 下一步
  • 数据库备份与恢复
  1. 自托管
  2. 安装 & 部署指南
  3. Helm

使用 Helm 自托管

上一页Helm下一页Azure AKS 部署

最后更新于2个月前

对应的

本文将指导您使用 Helm 图表在不同的 Kubernetes 部署中安装和部署 Bitwarden。

本文将描述在 Kubernetes 上托管 Bitwarden 的通用步骤。提供了特定于提供商的指南,可帮助您深入了解如何根据每个提供商的特定产品来更改部署:

要求

在继续安装之前,请确保满足以下要求:

  • 已安装 。

  • 已安装 。

  • 您拥有 SSL 证书和密钥,或者可以通过证书提供商创建 SSL 证书和密钥。

  • 您拥有 SMTP 服务器或可以访问云 SMTP 提供商。

  • 一个支持 ReadWriteMany 的。

  • 您有一个从 获取到的安装 ID 和密钥。

准备图表

将存储库添加到 Helm

使用以下命令将存储库添加到 Helm:

helm repo add bitwarden https://charts.bitwarden.com/
helm repo update

创建命名空间

创建一个命名空间来部署 Bitwarden。我们的文档假定名称空间名为 bitwarden,因此如果您选择不同的名称,请务必修改相应的命令。

kubectl create namespace bitwarden

创建配置

使用以下命令创建一个 my-values.yaml 配置文件,您将使用该文件来自定义部署:

helm show values bitwarden/self-host --devel > my-values.yaml

您必须在 my-values.yaml 文件中至少配置以下值:

值
描述

general.domain:

指向您群集的公共 IP 地址的域名。

general.ingress.enabled:

general.ingress.className:

general.ingress.annotations:

添加到入口控制器的注释。如果您使用包含的 nginx 控制器,则提供了默认值,您必须取消注释并可以根据需要进行自定义。

general.ingress.paths:

如果您使用默认的 nginx 控制器,则提供了默认值,您可以根据需要进行自定义。

general.ingress.cert.tls.name:

general.ingress.cert.tls.clusterIssuer:

general.email.replyToEmail:

用于邀请的电子邮件地址,通常为 no_reply@smtp_host。

general.email.smtpHost:

您的 SMTP 服务器主机名或 IP 地址。

general.email.smtpPort:

SMTP 服务器使用的 SMTP 端口。

general.email.smtpSsl:

您的 SMTP 服务器是否使用加密协议(true = SSL、false = TLS)。

enableCloudCommunication:

cloudRegion:

sharedStorageClassName:

secrets.secretName:

database.enabled:

是否使用图表中包含的 SQL pod。如果使用外部 SQL 服务器,则只需设置为 false 。

component.scim.enabled

SCIM Pod 默认是禁用的。要启用 SCIM Pod,请设置值 = true 。

component.volume.logs.enabled:

虽然不是必需的,但我们建议出于故障排除的目的将其设置为 true 。

创建机密对象

值
描述

globalSettings__installation__id

globalSettings__installation__key

globalSettings__mail__smtp__username

您的 SMTP 服务器的有效用户名。

globalSettings__mail__smtp__password

输入的 SMTP 服务器用户名的有效密码。

globalSettings__yubico__clientId

globalSettings__yubico__key

globalSettings__hibpApiKey

如果您使用的是 Bitwarden SQL pod,SA_PASSWORD

如果您使用自己的 SQL 服务器,globalSettings__sqlServer__connectionString

连接到 Bitwarden 实例的数据库的凭据。所需内容取决于您使用的是附带的 SQL pod 还是外部 SQL 服务器。

使用 kubectl create secret 命令设置这些值的示例将如下所示:

此示例将命令记录到您的 shell 历史记录中。可以考虑使用其他方法来安全地设置机密。

kubectl create secret generic custom-secret -n bitwarden \
    --from-literal=globalSettings__installation__id="REPLACE" \
    --from-literal=globalSettings__installation__key="REPLACE" \
    --from-literal=globalSettings__mail__smtp__username="REPLACE" \
    --from-literal=globalSettings__mail__smtp__password="REPLACE" \
    --from-literal=globalSettings__yubico__clientId="REPLACE" \
    --from-literal=globalSettings__yubico__key="REPLACE" \
    --from-literal=globalSettings__hibpApiKey="REPLACE" \
    --from-literal=SA_PASSWORD="REPLACE"

不要忘记将 secrets.secretName: 中的值设置为 my-values.yaml 中创建的机密的名称,在本例中为 custom-secret。

证书设置示例

1、使用以下命令在集群上安装 cert-manager:

kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.11.0/cert-manager.yaml

2、定义证书颁发者。在您的 DNS 记录指向您的集群之前,Bitwarden 建议在此示例中使用暂存配置。请务必将占位符 email: 替换为有效值:

cat <<EOF | kubectl apply -n bitwarden -f -
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  name: letsencrypt-staging
spec:
  acme:
    server: https://acme-staging-v02.api.letsencrypt.org/directory
    email: me@example.com
    privateKeySecretRef:
      name: tls-secret
    solvers:
      - http01:
          ingress:
            class: nginx #use "azure/application-gateway" for Application Gateway ingress
EOF
cat <<EOF | kubectl apply -n bitwarden -f -
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  name: letsencrypt-production
spec:
  acme:
    server: https://acme-v02.api.letsencrypt.org/directory
    email: me@example.com
    privateKeySecretRef:
      name: tls-secret
    solvers:
      - http01:
          ingress:
            class: nginx #use "azure/application-gateway" for Application Gateway ingress
EOF

3、如果还没有的话,请确保在 my-values.yaml 中设置 general.ingress.cert.tls.name: 和 general.ingress.cert.tls.clusterIssuer: 的值。在这个例子中,您需要设置为:

  • general.ingress.cert.tls.name: tls-secret

  • general.ingress.cert.tls.clusterIssuer: letsencrypt-staging

添加 rawManifest 文件

安装图表

要使用 my-values.yaml 中的配置安装 Bitwarden,请运行以下命令:

helm upgrade bitwarden bitwarden/self-host --install --namespace bitwarden --values my-values.yaml

恭喜!Bitwarden 现已移动并在 https://your.domain.com 正常运行了,正如在 my-values.yaml 中所定义的那样。请在浏览器中访问网页密码库以确认其正在运行。您现在可以注册一个新账户然后登录。

您需要设置 SMTP 配置和相关的机密信息,以便验证您的新账户的电子邮件。

下一步

数据库备份与恢复

数据库备份和备份策略最终由实施者决定。备份可以在集群之外按照一定的时间间隔进行调度,也可以修改为在 Kubernetes 中创建 CronJob 对象进行调度。

备份工作将为以前的备份创建带有时间戳的版本。当前备份简单地称为 vault.bak 。这些文件放在 MS SQL 备份持久卷中。还原任务将在同一持久卷中查找 vault.bak 。

是否使用图表中定义的 nginx 入口控制器()。

例如,"nginx" 或 "azure-application-gateway"()。设置为 general.ingress.enabled: false 以使用其他入口控制器。

您的 TLS 证书的名称。我们将通过进行演示,如果您已经有,请现在输入,或者稍后再回来修改。

您的 TLS 证书颁发者的名称。稍后我们将通过进行演示,如果您已经有,请现在输入,或者稍后再回来修改。

设置为 true 以允许您的服务器与我们的云系统进行通信。这样做可以。

默认为 US 。如果您的组织是通过启动的,请设置为 EU 。

您需要提供的共享存储类的名称,并且必须支持 (),除非它是单节点集群。

您的 的名称。您将在下一步创建此对象,因此现在确定一个名称,或者稍后再回来修改这个值。

创建一个 ,至少设置以下值:

从 获取到的有效安装 ID 。有关更多信息,请参阅

从 获取到的有效安装密钥 。有关更多信息,请参阅

YubiCloud 验证服务或自托管 Yubico 验证服务器的客户端 ID。如果是 YubiCloud,请在获取您的客户端 ID 和密钥。

YubiCloud 验证服务或自托管 Yubico 验证服务器的密钥。如果是 YubiCloud,请在获取您的客户端 ID 和密钥。

的 HaveIBeenPwned (HIBP) API 密钥,可获取。此密钥允许用户在创账户时运行并检查其主密码是否存在泄露。

部署需要 TLS 证书和密钥,或者通过证书提供商创建一个。以下示例将引导您使用 生成一个由 Let's Encrypt 签发的证书:

Bitwarden 自托管 Helm 图表允许您在安装之前或之后包含其他 Kubernetes 清单文件。为此,请更新图表的 rawManifests 部分()。例如,在您想使用除默认定义的 nginx 控制器以外的其他入口控制器的情况下,这非常有用。

在中,我们提供了两个示例作业,用于在 Bitwarden 数据库 Pod 中备份和恢复数据库。如果您正在使用的是未作为此 Helm 图表的一部分部署的自己的 SQL Server 实例,请遵循您公司的备份和恢复策略。

官方文档地址
Azure AKS 部署
OpenShift 部署
AWS EKS 部署
kubectl
Helm 3
存储类
https://bitwarden.com/host
Kubernetes 机密对象
cert-manager
了解更多
此仓库
欧盟云服务器
Kubernetes 机密对象
这里
这里
请参阅使用未包含的入口控制器的示例
一个示例
一个示例
ReadWriteMany
https://bitwarden.com/host
https://bitwarden.com/host
在此处
我的安装 ID 和安装密钥是用来干什么的?
我的安装 ID 和安装密钥是用来干什么的?
启用计费和许可证同步
数据泄露报告
示例
请参阅使用 Azure 文件存储的示例