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 提供支持
在本页
  • 基础教程
  • 身份验证
  • 获取机密
  • 注入机密
  • 高级教程
  • 设置你的 Dockerfile
  • 构建镜像
  • 运行容器
  1. Secrets Manager
  2. 入门

开发人员快速入门

上一页Secrets Manager 快速入门下一页登录 Secrets Manager

最后更新于1个月前

对应的

Bitwarden Secrets Manager 使开发人员、DevOps 和网络安全团队能够大规模集中存储、管理和部署机密。 是您通过经身份验证的将注入应用程序和基础设施的主要工具。

在本文中,我们将通过查看几种检索存储在密码库中的数据库凭据以在容器运行时注入 Docker 镜像的方式来演示 Secrets Manager CLI 的使用。

如果您要查找 SDK 信息和 Secrets Manager 功能的语言封装,请参阅。

如果您还没有阅读 文章,建议您在继续之前先阅读。

基础教程

在这个最简单的示例中,您将获取存储在密码库中的数据库凭据,并将它们作为临时环境变量存储在 Linux 系统上。存储后,您将在运行时将它们注入 docker run 命令中。为此,您需要安装:

  • Bitwarden

身份验证

可以使用为特定生成的登录 Secrets Manager CLI。这意味着只有机器账户具有访问权限的机密和工程可以使用 CLI 进行交互。有多种方法可以验证 CLI 会话,但最简单的方法是将环境变量 BWS_ACCESS_TOKEN 与您的访问令牌的值一起保存,例如:

export BWS_ACCESS_TOKEN=0.48c78342-1635-48a6-accd-afbe01336365.C0tMmQqHnAp1h0gL8bngprlPOYutt0:B3h5D+YgLvFiQhWkIq6Bow==

获取机密

接下来,使用以下命令获取您的数据库用户名并将其存储为临时环境变量。在此示例中,fc3a93f4-2a16-445b-b0c4-aeaf0102f0ff 表示数据库用户名机密的唯一标识符:

export SECRET_1=$(bws get secret fc3a93f4-2a16-445b-b0c4-aeaf0102f0ff | jq '.value')

此命令会将您的机密的 value 保存到一个临时环境变量中,该变量将在系统重启、用户注销或任何新 shell 中被清除。现在,对数据库密码运行相同的命令:

export SECRET_2=$(bws get secret 80b55c29-5cc8-42eb-a898-acfd01232bbb | jq '.value')

注入机密

docker run -d --name bitwarden .... -env BW_DB_USERNAME=$SECRET_1 BW_BD_PASSWORD=$SECRET_2 .... bitwarden/self-host:beta

运行此命令时,您的 Docker 容器将启动并从临时存储的环境变量中注入您的数据库凭据,从而使您能够安全地启动 Bitwarden Unified,而无需将敏感值作为明文传递。

高级教程

在此示例中,您将使用 Docker 映像中的 Secrets Manager CLI 在运行时注入存储在密码库中的数据库凭证。您将通过操作 Dockerfile 将 CLI 安装在映像上而不是主机上,并在容器运行时获取数据库凭据来完成此操作。然后,您将准备用于注入的环境变量文件,并通过运行容器将它们串在一起。

设置你的 Dockerfile

要在您的 Docker 映像中安装 Secrets Manager CLI,您需要将以下内容添加到您的 Dockerfile:

# Install dependencies
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && \
  apt-get install -y \
  ca-certificates \
  curl \
  jq \
  unzip && \
  rm -rf /var/lib/apt/lists/*

# Download bws
RUN curl -LO https://github.com/bitwarden/sdk/releases/download/bws-v1.0.0/bws-x86_64-unknown-linux-gnu-1.0.0.zip && \
  unzip bws-x86_64-unknown-linux-gnu-1.0.0.zip -d /usr/local/bin/ && \
  rm -f bws-x86_64-unknown-linux-gnu-1.0.0.zip

# Add anything else you will need to your image

# Entrypoint script will retrieve secrets at runtime
COPY ./entrypoint.sh /
ENTRYPOINT ["/entrypoint.sh"]

接下来,使用 entrypoint.sh 文件在运行时注入机密。一种方法是在 entrypoint.sh 文件中构建 RUN 语句,用于检索每个凭据。不过,这并不是你能实现的唯一方法:

#!/usr/bin/env bash
# One way to retrieve individual secrets is to use the `get` command and extract the value:
SECRET_1=$(bws secret get fc3a93f4-2a16-445b-b0c4-aeaf0102f0ff | jq '.value')

# Another option., this method is sensitive to spaces in the secret name. See the `run` command documentation for more options
bws run -- 'echo $SECRET_NAME'

# Run your project

这些 RUN 语句将提示您的 Dockerfile 获取指示的机密,其中 fc3a93f4-2a16-445b-b0c4-aeaf0102f0ff 代表机密的唯一标识符。代码示例中的另一个选项代表机密名称,即 "echo $SECRET_NAME"。

构建镜像

要构建 docker 镜像,首先要使 entrypoint.sh 可执行:

chmod +x ./entrypoint.sh

构建镜像:

docker build -t image-name

运行容器

现在您的数据库凭据已准备好并准备好注入,启动您的容器并指定访问令牌以作为环境变量与 bws login 一起使用:

docker run --rm -it -e BWS_ACCESS_TOKEN=<your-access-token> image-name

运行此命令时,您的 Docker 容器将启动并从容器获取到的值中注入您的数据库凭据,从而使您能够安全地启动 Bitwarden Unified,而无需将敏感值作为明文传递。

现在您的数据库凭据已保存为临时环境变量,可以将它们注入到 docker run 命令中。在此示例中,我们省略了 强调注入机密所需的许多变量:

官方文档地址
Secrets Manager CLI
机器账户
机密
Bitwarden Unified
本文
Secrets Manager 快速入门
Secrets Manager CLI
Docker
像 jq 这样的命令行 JSON 处理器
服务账户
访问令牌
Bitwarden Unified