Cloudflare Workers Secrets:通过安全审计的安全存储方案

Cloudflare Workers 生产环境机密管理策略指南。了解我们的系统如何依靠 Wrangler secrets、Vault 高级集成与定期的密钥轮换策略,成功通过严苛的 SOC2 安全审计;并全面掌握从本地开发到生产部署的密钥全生命周期管理规范,彻底保障云端应用数据安全。

Alex Chen
Alex Chen
June 1, 20268 min read
其他语言:Deutsch · English

TL;DR: Workers 中的机密管理遵循分层方法:用于开发环境的本地 .dev.vars,用于生产环境的 wrangler secret,以及用于访问的类型化环境变量。本指南涵盖了机密生命周期、轮换策略和安全最佳实践。

简介

每个 SaaS 应用程序都会使用机密信息:API 密钥、数据库凭据、加密密钥。泄露机密是最常见的安全漏洞之一。Workers 提供了一个简明直接的机密管理系统。有关保障 SaaS 安全的全面概述,请参阅我们的 SaaS 安全最佳实践 指南。

机密管理分层

层级本地开发预发环境生产环境
存储.dev.varswrangler secret putCloudflare Dashboard
访问文件系统CLIDashboard UI
轮换手动wrangler secret putDashboard
审计无CLI 历史记录Dashboard 审计日志

设置机密

bash
# 本地开发
echo "STRIPE_SECRET_KEY=sk_test_xxx" >> .dev.vars

# 生产环境
wrangler secret put STRIPE_SECRET_KEY
# 命令行将安全地提示输入值

# 从 .env 批量导入机密
wrangler secret bulk .env.production

类型安全的机密访问

tsx
export const processPaymentFn = createServerFn({ method: 'POST' })
  .handler(async ({ context }) => {
    const stripeKey = context.env.STRIPE_SECRET_KEY as string
    const stripe = new Stripe(stripeKey)
    // 处理支付...
  })

最佳实践

  • 永远不要在源代码中硬编码机密
  • 在本地开发中使用 .dev.vars(已加入 gitignore)
  • 每 90 天轮换一次机密
  • 为不同环境使用不同的机密
  • 定期审计机密访问记录
  • 永远不要在日志中输出机密值

结论

Workers 的机密管理系统简单却非常有效。在生产环境中使用 wrangler secret,在开发环境中使用 .dev.vars,并将所有机密视为服务端函数(server functions)中的类型化环境变量。要深入了解 TanStack Start 中的环境变量配置,请查看我们的环境变量指南。对于企业级高级机密管理,请参阅 使用 Vault 进行机密管理。