SuperAPI AI 工具集

doppler

安全与审计

查看项目

更新于 10-16 02:48

技能介绍

用途

Doppler 是一个密钥(secrets)管理平台。本技能为使用 Doppler 提供全面辅助,涵盖 CLI 操作、项目与配置管理、密钥注入、集成同步以及安全最佳实践。

当用户提及以下关键词时触发:"doppler"、"secrets management"、"doppler cli"、"doppler secrets"、"doppler run"、"doppler setup"、"doppler configs"、"doppler projects"、"secret injection"、"doppler environments"、"service tokens"。

主要能力

安装 CLI

macOS:

brew install gnupg && brew install dopplerhq/cli/doppler

Linux(Debian/Ubuntu):

apt-get update && apt-get install -y apt-transport-https ca-certificates curl gnupg
curl -sLf --retry 3 --tlsv1.2 --proto "=https" 'https://packages.doppler.com/public/cli/gpg.DE2A7741A397C129.key' | gpg --dearmor -o /usr/share/keyrings/doppler-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/doppler-archive-keyring.gpg] https://packages.doppler.com/public/cli/deb/debian any-version main" | tee /etc/apt/sources.list.d/doppler-cli.list
apt-get update && apt-get install doppler

Shell 脚本(任意操作系统):

curl -sLf --retry 3 --tlsv1.2 --proto "=https" https://get.doppler.com | sh

认证与设置

# 登录(打开浏览器进行认证)
doppler login

# 在当前目录设置项目(交互式)
doppler setup

# 非交互式设置
doppler setup --project my-app --config dev --no-interactive

常见任务

开发者想要… 操作
列出所有密钥 doppler secrets -p <project> -c <config>
获取单个密钥 doppler secrets get SECRET_NAME -p <project> -c <config>
设置密钥 doppler secrets set KEY=value -p <project> -c <config>
设置多个密钥 doppler secrets set KEY1=val1 KEY2=val2
删除密钥 doppler secrets delete SECRET_NAME
带密钥运行命令 doppler run -- your-command --flags
指定配置运行 doppler run -p backend -c dev -- npm start
下载密钥为文件 doppler secrets download --format env --no-file
列出项目 doppler projects
列出配置 doppler configs -p <project>
列出环境 doppler environments -p <project>
克隆配置 doppler configs clone -p <project> -c <source> --name <new>
查看活动日志 doppler activity
检查当前设置 doppler configure debug
打开仪表盘 doppler open
查看当前认证身份 doppler me

密钥注入模式

环境变量注入:

# 将密钥作为环境变量注入任意命令
doppler run -- node server.js
doppler run -- docker compose up
doppler run -- terraform apply

# 运行 shell 命令字符串
doppler run --command "echo $DATABASE_URL && npm start"

# 仅注入指定密钥
doppler run --only-secrets DATABASE_URL,API_KEY -- node server.js

挂载密钥为文件:

# 挂载为 JSON 文件(临时,进程退出后清理)
doppler run --mount secrets.json -- cat secrets.json

# 挂载为 .env 文件
doppler run --mount .env --mount-format env -- your-command

# 使用模板挂载
doppler run --mount config.yaml --mount-template template.yaml -- your-command

模板替换:

# 将密钥替换进模板文件
doppler secrets substitute template.env.tpl > .env

离线/容错回退:

# 使用回退文件运行(成功时写入加密密钥,失败时读取)
doppler run --fallback ./fallback.encrypted -- npm start

# 只读回退(从不更新回退文件)
doppler run --fallback ./fallback.encrypted --fallback-readonly -- npm start

# 离线模式(直接从回退文件读取,不联系 API)
doppler run --fallback-only --fallback ./fallback.encrypted -- npm start

项目与配置层级

Doppler 按层级组织密钥:

Workplace
 └── Project(如 "backend"、"frontend")
      └── Environment(如 "development"、"staging"、"production")
           └── Config(如 "dev"、"stg"、"prd")
                └── Branch Config(如 "dev_feature-x")

配置继承:

  • 根配置(dev、stg、prd)继承自其环境
  • 分支配置继承自其父配置
  • 覆盖级联:Environment → Config → Branch Config
  • 个人配置允许单个开发者覆盖而不影响团队

集成同步

Doppler 可自动将密钥同步到外部平台:

平台 使用场景
AWS Secrets Manager / SSM ECS、Lambda、EC2 部署
GCP Secret Manager GKE、Cloud Run、Cloud Functions
Azure Key Vault AKS、App Service、Functions
Cloudflare Pages / Workers 边缘与 Jamstack 部署
Vercel 前端/全栈部署
Firebase Functions / Hosting Functions 配置与构建时密钥
Serverless Framework Lambda/无服务器函数密钥
GitHub Actions CI/CD 密钥
Docker / Docker Compose 容器环境注入
Kubernetes 通过 Doppler Operator 生成 Secret 对象
Terraform 基础设施即代码
Webapp.io CI/CD Layerfile 密钥
Heroku PaaS 部署

服务令牌

对于 CI/CD 和生产环境,使用服务令牌(只读,限定到单个配置):

# 通过仪表盘或 API 生成服务令牌
# 在 CI/CD 中使用:
DOPPLER_TOKEN=dp.st.xxx doppler run -- your-command

# 或设置为环境变量
export DOPPLER_TOKEN=dp.st.xxx
doppler secrets

安全最佳实践

  • 切勿将密钥提交到版本控制——使用 Doppler 作为唯一可信来源
  • 在生产环境使用服务令牌(只读、限定配置)
  • 本地开发覆盖使用个人配置
  • 为生产配置启用变更请求(变更前需审批)
  • 定期轮换密钥——使用 Doppler 的轮换提醒
  • 尽可能使用 OIDC 认证以获取短期令牌
  • 通过 doppler activity 和仪表盘审计日志审计访问
  • 使用分支配置隔离功能分支密钥
  • 生产环境切勿使用 --no-verify-tls

参考文档

参考 内容
CLI.md 完整 CLI 命令参考,包含所有子命令与标志
INTEGRATIONS.md CI/CD、Docker、Kubernetes、云平台集成模式

故障排查

认证问题:

  • 运行 doppler me 检查当前认证状态
  • 运行 doppler configure debug 查看活动配置
  • 使用 doppler login 重新认证
  • 检查作用域:doppler configure get token --scope /path/to/project

加载了错误的密钥:

  • 检查当前活动的项目/配置:doppler configure debug
  • 验证作用域:在项目目录中运行 doppler setup
  • 使用显式标志:doppler secrets -p project -c config
  • 检查环境变量覆盖:doppler run --preserve-env=false

回退文件问题:

  • 确保回退路径可写
  • 检查口令是否已更改(默认依赖配置)
  • 使用 doppler run clean 移除旧回退文件
  • 用 doppler run --fallback ./path -- echo ok 重新生成

服务令牌不工作:

  • 验证令牌对应正确的项目与配置
  • 服务令牌为只读——无法设置/删除密钥
  • 检查令牌是否已在仪表盘中撤销
  • 确保 DOPPLER_TOKEN 环境变量设置正确

工作流程

协助使用 Doppler 时:

  1. 识别任务:设置、密钥管理、注入、集成或调试
  2. 检查前置条件:doppler CLI 是否已安装?用户是否已认证?
  3. 确定作用域:正在使用哪个项目与配置?
  4. 查阅参考:使用参考文档获取详细 CLI 标志与集成模式
  5. 安全优先:切勿在日志中输出密钥值;列出时使用 --only-names