promptgarten 🌱
🌍 DE
指南●○○4 分钟 · +20 XP

安全地管理 API key

API key 应该放在环境变量或 secret manager 里——绝不能放进代码、仓库或 prompt。一旦泄露,唯一重要的事就是立刻吊销。

为什么这很重要

一个 API key 就像一张信用卡:谁拿到它,谁就能拿着你的账单发请求。公开仓库会被自动扫描,找这类 key——攻击者和防护系统都会这么做。

规则一:绝不能放进代码、仓库或 prompt

key 不应该出现在源代码里,不应该进 git 仓库,也不应该出现在 chat prompt 里。本地的标准做法是:把 key 放进一个 .env 文件——再在 .gitignore 里加一条记录,确保它永远不会被提交。Anthropic 明确推荐的正是这套做法。

规则二:环境变量和 secret manager

在本地,你的程序应该从环境变量里读取 key。在生产环境,Anthropic 建议使用加密的 secret 存储(各云厂商提供的 secret manager),而不是 dotenv 文件。

规则三:定期轮换,限制权限

定期轮换 key(Anthropic 举的例子是每 90 天一次),为开发、测试、生产环境分别使用不同的 key,并且只给每个 key 完成任务所需的最小权限——这就是 OWASP 指南里的最小权限原则。

一旦泄露

立刻吊销并更换。只删除那个 commit 是不够的:GitHub 明确指出,泄露的 secret 必须先被吊销或轮换——因为 git 历史记录可能早就已经被克隆或缓存了。

示例

与其在代码里写 `apiKey = "sk-ant-..."`:把 key 放进 .env(.env 已经在 .gitignore 里),代码里读取 `process.env.ANTHROPIC_API_KEY`——生产环境则使用云厂商的 secret manager。

🛠️ 练习——自己动手试试

在一个练习项目里搭建 .env 模式,并确认没有 key 会进入仓库。

  1. 创建一个带有占位变量的 .env(不要放真实 key),并把 .env 加进 .gitignore。
  2. 创建一个只有变量名、没有值的 .env.example,只提交这一个文件。
  3. 用 `git status` 检查 .env 有没有作为新文件出现——并在代码里通过环境变量读取这个值。

自查清单

  • `git status` 里出现 .env 了吗?(如果出现了:检查一下 .gitignore 里的记录)
  • 代码或 prompt 里有没有哪个地方把 key 写成了明文字符串?
  • 你知道该去哪里立刻吊销你的真实 key 吗(厂商的 console/dashboard)?

小测验

你的 API key 不小心出现在了一个公开仓库里。正确的第一步是什么?

来源

相关主题

什么是 API?(说人话版) ●○○Vibe coding 中的安全问题 ●●○写给 vibe coder 的 Git 与 GitHub 入门 ●○○在实践中保护 agent 安全 ●●○