technine.io
一只穿着白袖的手拿着小型黑色 USB 硬件安全密钥,上面有白色钥匙图标和金色触点,背景为浅灰色。

指南

什么是密钥管理?安全地存储 API 密钥和服务凭证

密钥管理用于存储并控制应用程序和系统使用的凭证,例如 API 密钥、数据库密码、令牌和证书,与供人员使用的密码管理器不同。本文说明明文密钥的风险、保险库如何运作,以及中小企业可遵循的实用清单。

更新于

密钥管理(secrets management)是指存储并控制应用程序和系统使用的凭证——例如 API 密钥、数据库密码、访问令牌、证书等机器凭证——避免硬编码、在聊天中发送,或提交到 git。它与密码管理器不同:后者面向人员登录网站和应用程序。密钥管理处理的是软件和 CI/CD 流水线连接数据库、支付网关、云服务和其他 API 时所需的密钥。

对运营网站或云集成的中小企业来说,密钥往往一开始只是 .env 文件里的一行,或团队聊天里的一条消息。这样可以暂时运转,直到代码库变为公开、电脑丢失,或外包人员在项目结束后仍保留副本。

明文密钥有什么问题

当密钥存放在源代码、已提交到 git 的文件、共享网盘或聊天记录里,任何能访问这些位置的人都可以使用。常见风险包括:

  • 意外泄露:私有代码库变为公开、备份分享范围过大,或为排查问题而上传配置截图。
  • 长期不变的凭证:同一把 API 密钥或数据库密码沿用多年,一旦泄露,攻击者可长期使用。
  • 权责不清:没人知道谁手里仍有副本、哪些环境共用同一密钥,或如何迅速撤销。
  • 权限过大:一把具有管理员权限的密钥同时用于预发布和正式环境,低风险系统一旦出事,正式环境也会受影响。

密钥一旦写入 git 历史,之后在新提交中删除该行并不足够:旧提交仍然保存着数值。从一开始避免把密钥提交到版本库,要安全得多。

密钥管理如何运作

典型做法通常包括:

  • 保险库或存储库:以加密方式存放密钥,与应用代码分开,也与员工登录用的密码管理器分开。
  • 访问策略:规定哪些人员、服务或环境可读哪些密钥,通常配合基于角色的访问控制和最小权限原则。
  • 轮换(rotation):按计划或在怀疑泄露后更换密钥,并更新所有依赖该密钥的系统。
  • 审计日志:记录谁或哪个服务曾读取或修改密钥。
  • 注入应用程序和 CI:应用程序或流水线在运行时从保险库或安全的环境变量取得密钥,而不是从代码库里的文件读取。

云平台、托管控制台和专门的保险库产品,都提供部分上述功能。重点是为机器凭证设立一个受控的存放位置,而不是让副本散落在各人电脑和聊天记录里。

密钥管理、密码管理器、SSO 和 MFA

这些工具处理相关但不相同的问题:

  • 密钥管理负责机器和服务凭证:软件使用的 API 密钥、数据库密码、部署令牌和证书。
  • 密码管理器负责人员登录:邮箱、托管控制台、社交账户和共享业务平台。
  • 单点登录(SSO)让员工以一个公司身份使用多个应用程序,减少需要记住的密码。
  • 多重身份验证(MFA)加上第二重验证,使单靠被盗的人员密码不足以登录。

在零信任做法里,人员和业务都要证明身份,并只获得所需权限。密钥管理是服务侧的组成部分之一。

中小企业实用清单

  • 摸清密钥目前存放在哪里:源代码、.env 文件、CI 变量、托管控制台、聊天记录、共享网盘和员工备忘。
  • 停止把密钥提交到 git:开发可用本机且被忽略的文件;共享环境则用保险库或平台的密钥存储功能。
  • 隔离环境:开发、预发布和正式环境使用不同凭证。
  • 贯彻最小权限:每把密钥只授予应用所需权限;若服务商支持,优先使用短效令牌。
  • 泄露后和人员离职时轮换:凡可能已泄露,或曾与不再需要的人共享的密钥,都应更换。
  • 限制可查看正式环境密钥的人:保险库和 CI 访问权只授予负责部署或运维的人员,并定期复核名单。

常见问题

.env 文件是否足够?

从不提交的本地 .env 文件,对单个开发人员的电脑可以够用。对团队或正式环境并不足够:你仍需要受控的方式,在各环境之间存储、共享、轮换和撤销密钥。

是否一定要专门的保险库产品?

不一定。不少云和托管平台已为应用程序和流水线提供加密的密钥存储功能。当服务众多、审计要求较严,或凭证须跨平台共享时,专门的保险库会更有帮助。可先用现有工具,再补上不足之处。

如果密钥已推送到 git,怎么办?

应视为已经泄露:立即向服务商撤销或更换该密钥,在所有使用位置换上新值,并确保之后不再写入代码库。清理旧的 git 历史是另一项谨慎步骤,不能取代轮换凭证。

这和加密配置文件有什么区别?

加密文件有助于保护静态数据,但仍要处理谁持有解密密钥、应用程序在运行时如何取得数值,以及如何轮换。密钥管理工具正是围绕这些运维步骤而设计,而不仅是加密一个静态文件。

如果你希望检查应用程序和流水线如何存放服务凭证,可参阅我们的网络安全与合规服务。

咨询WhatsApp