2026年最佳密钥管理工具

  • infisical
  • 发布于 2025-01-03 11:24
  • 阅读 98

文章系统对比了 2026 年常见的密钥管理方案,按跨云、云厂商专用、开源项目和自建四类展开,重点分析了 Infisical、HashiCorp Vault、Doppler、AWS Secrets Manager、GCP Secret Manager、Azure Key Vault、SOPS、Confidant 等工具的能力、优缺点与适用场景。

跨云 secrets managers

跨平台 secrets 管理软件从定义上来说不依赖于任何特定云。相反,这些解决方案和 Infisical、Vault 一样,可以在任何基础设施上自托管(或作为托管服务使用)。其中一些工具由于并非开源,例如 Doppler,因此只能提供托管服务。

1. Infisical

Infisical 是一个开源 secret management 平台。它提供了一套端到端工具,覆盖 secrets 管理的各个方面:从安全且可进行版本控制的 secret 存储,到 secret rotation,再到跨基础设施的集成,以及 secret 扫描和泄漏防护。

Infisical Dashboard

Infisical 的一些主要特性包括:

  • 跨基础设施工具的自动集成(例如,DockerKubernetesTerraform)以及第三方服务(例如,GitHub ActionsVercelCircleCI
  • Secret Workflows:一套用于促进开发者 onboarding/offboarding,以及在各种环境中对 secrets 进行合规变更的工具。
  • Dashboard UI 作为中心工具:开发者可以在一个地方访问/修改 secrets(取决于他们的权限),而他们的经理则能够设置特定角色、监控活动、分析审计日志等。
  • Infisical Radar:持续的 secret 扫描/监控以及对 git 的泄漏防护。
  • Infisical CLI 允许开发者非常轻松地将 secrets 作为环境变量注入应用进程(通过 API、SDK 等还支持更多方式)。

摘要

优点:

  • Infisical 提供了一个端到端的 secrets 管理平台,具备一系列 secret 管理功能。
  • Infisical 支持高度细粒度的 Access Controls、Audit Logs 和 Compliance Policies。
  • 自动集成和 secret referencing 功能有助于为应用 secrets 建立单一事实来源,并对抗 secret sprawl
  • Infisical 是一个基于 MIT 许可证提供的开源产品,这意味着组织可以在自己的基础设施上自托管它。同时,Infisical 也为不想自行运维软件的团队提供托管云产品。

缺点:

  • 对于本地部署,Infisical 后端数据库选项仅限于 Postgres 和 MongoDB。

2. HashiCorp Vault

HashiCorp Vault 是最早出现的 secret management 解决方案之一。它是一个全面的工具,用于安全地存储和访问 secrets 以及其他敏感数据(例如 access tokens、API keys、加密密钥、密码、证书)。

Vault Dashboard

Vault 访问 secrets 的主要方式是通过基于预先设置的 security policies 的 API。此外,它允许公司维持严格且非常细粒度的 access controls,并保留非常详尽的审计日志。

它提供了一个用于 secret management 的 Web 界面,但需要注意的是,Vault 的某些功能在其 Web UI 中不可用(例如,部分 dynamic secrets 功能)。

启动(或重启)HCP Vault 时,总是需要一个或多个 operator 来对其进行 unseal。HashiCorp Vault 主要使用 token system。每个 token 都对应一个 policy,该 policy 可能限制可用操作和路径。HCP Vault 的其他一些重要特性包括:

  • Vault 能够为某些操作(例如 PostgreSQL database)按需(动态地)生成 secrets。
  • HCP Vault 能够在多个 data centers 之间设置 replication。

摘要

优点:

  • Vault 拥有市面上最全面、功能最完整的 secret management 解决方案之一。
  • HCP Vault 能很好地与 HashiCorp 的产品生态集成。
  • HashiCorp Vault 是 source-available,采用 BSL license

缺点:

  • HashiCorp Vault 的定价非常复杂,并且高度面向大型企业。
  • HashiCorp Vault 完全围绕 platform engineering 团队设计。这使得它一开始相当难以理解,同时也让开发者远离 secret management 工作流。反过来,这可能导致未来不得不在 Vault 之上构建开发者工具。
  • HashiCorp Vault 不是开源的,一些公司的法务团队可能不会批准 HashiCorp 的 BSL license
  • Vault 的免费 source-available 版本带来了非常高的部署和维护成本(既包括 platform engineering 团队的时间,也包括计算资源)。

3. Doppler

与 Infisical 或 Vault 相比,Doppler 是一个完全闭源的 secrets 管理解决方案。与 Infisical 类似,Doppler 也以开发者为中心,并以友好的 UI dashboard 为核心。在 dashboard 中,开发者可以修改 secret 值、设置权限、监控访问日志等。

Doppler 通常支持 static secrets,但最近它也添加了一些 dynamic secrets 功能,目前仍处于 beta 测试阶段。

此外,Doppler 还提供了一个 secret sharing 产品,允许开发者只需点击几下,就能彼此之间安全地发送 secrets(例如密码或任何敏感信息)。

Doppler Dashboard

摘要

优点:

  • Doppler 提供了一个 CLI,非常容易设置并开始将 secrets 作为环境变量注入。
  • Doppler 提供了大量与第三方服务和基础设施工具的自动集成(例如 Docker、Kubernetes)。

缺点:

  • Doppler 只能作为托管服务使用;它没有开源或自托管选项,这可能无法满足许多工程团队的合规要求。
  • Doppler 完全专注于将 secrets 注入为环境变量,并且不为任何编程语言提供 SDK。
  • Doppler 的 secrets 组织结构非常扁平(只有 1 层),这使得它不适用于任何大规模软件。
  • Doppler 最近大幅缩减了免费套餐的容量,这使得该方案对中小型团队的吸引力下降。

云特定的 secret managers

云特定服务通常是非常基础的工具,主要只应在你的应用完全构建于其基础设施生态之上时才考虑使用。

1. AWS Secrets Manager

如果你的应用完全运行在 AWS 技术栈之上,那么 AWS Secrets Manager 是你应该考虑的方案之一。AWS Secrets Manager 本质上是一个非常基础但可靠的解决方案,可让你轻松轮换、管理和检索数据库凭证、API keys 和密码。

AWS Secrets Manager 的主要功能包括全面的 secrets manager APIs 和 secrets 加密。

2. GCP Secret Manager

如果 Google Cloud Platform 是你的云提供商,那么 GCP Secret Manager 可能是一个选项。GCP Secret Manager 包含的一些特性有:具备完整 access controls 的 secret 存储、审计日志、secret versioning 和 rotation 能力。

此外,GCP Secret Manager 还支持通过 APIs、适用于多种编程语言的 client libraries 等多种方式访问 secrets。

Doppler Dashboard

3. Azure Key Vault

如果你的软件和应用运行在 Azure 上,Microsoft 提供了一项名为 Azure Key Vault 的托管服务,以确保所有 secrets 都管理在单一存储库中。这包括 keys、证书、connection strings 和密码。此外,你还可以创建并导入加密密钥到 Azure Key Vault 中,并自动化 SSL/TLS 证书续期。

此外,你可以自动化 SSL/TLS 证书续期和 rotation,以便你的连接始终保持安全。

对于投资于 Azure 生态系统的组织,Azure Key Vault 提供了一个全面的定价模型,包含用于管理 secrets、keys 和证书的不同层级。

云特定 secrets managers 的优缺点

优点:

  • 如果你的应用完全运行在某一家 Big Clouds(AWS、GCP、Azure)的生态系统中,这可能是一个不错的解决方案。
  • 如果你属于一个大型组织,为 Big Cloud 产品争取合规批准和预算分配要容易得多。

缺点:

  • 这些平台上的开发者体验低于平均水平(根据网上的评价,Azure 是三者中最差的)。
  • 厂商锁定程度更高,如果你最终想要转向 multi-cloud 或更换云提供商,这可能会成为一个大问题。
  • 这些方案缺少诸如与第三方工具的自动集成、secret referencing、用于注入 secrets 的 CLI 等功能。

Big Cloud Logos

开源项目

另一个可选方案是选择开源 secret management 替代方案之一。这些 secret management 系统的主要好处是,它们更容易获得合规批准,因为它们可以在你自己的基础设施上自托管——尽管这一好处也可以通过 HCP Vault 和 Infisical 实现。

公司认为的另一个好处是能够免费使用这些解决方案。然而,如果这是关注点,则应将其与持续的时间投入一并考虑,因为维护这样重要的解决方案可能会占用工程团队的时间。

另一方面,非营利开源软件的根本问题在于,没有任何一方承担维护、修复相关 bug 和发布安全补丁的责任。此外,这些产品都没有可用的托管服务(换句话说,它们必须完全自托管)。

1. SOPS

SOPS 由 Mozilla 创建,是目前可用的流行 secret management 工具之一。

它采用了与其他工具相当不同的方法;SOPS 允许用户将 secrets 安全地存储在 git 仓库中。此外,开发者可以使用 Mozilla 的 SOPS CLI 通过 AWS KMS、GCP KMS、Azure Key Vault 和 OpenPGP 对 Kubernetes secrets 进行加密。SOPS 支持 .yaml.json.env.ini 等文件格式。

SOPS 基于一个用于数据密钥加密和解密的 client-server 模型。在默认设置下,它在进程内部运行一个本地 key service。client 使用 protocol buffers 和 gRPC 向 key service 发送加密和解密请求。

需要注意的是,key service 连接当前不提供 authentication 或加密能力。为确保适当的安全级别,强烈建议通过 SSH tunnels 等其他方式对连接进行认证和加密。

最后,SOPS 能够为指定环境中的文件生成审计日志。它会在 PostgreSQL database 中记录活动(例如时间戳、用户名、文件数据)。

优点:

  • SOPS 是一个完全开源的工具,组织可以相对容易地在任何规模上采用它。

缺点:

  • 由于 Mozilla 的预算削减,该项目目前没有得到妥善维护,这可能会导致 bug 和安全问题无法修复。需要注意的是,该项目目前正在转移到另一个组织,这可能会使其未来更加明朗。
  • secrets 存储在你的代码中,这并不总是理想和/或方便的。
  • SOPS 不提供 Web 界面,而 Web 界面如今已经成为良好开发者体验的标准。

2. Confidant

Confidant 是 Lyft 开发的一个 secret management 工具。其核心是将 secrets 存储在 DynamoDB 中,同时为每次 secrets 变更生成一个唯一的 KMS data key(使用 Fernet 对称认证加密)。

此外,Confidant 提供了一个基于 AngularJS 构建的 Web 界面,可用于执行各种 secret 操作。Confidant 的其他一些功能包括:

  • secrets 的静态加密。
  • Secret versioning。
  • 基于 KMS 的认证。

注意:Confidant 可能很难与你的基础设施集成,因为它在设计上高度考虑了 Lyft 的基础设施。

3. 其他替代方案

总体而言,还有许多其他开源 secret manager 方案,例如 Square 的 Keywhiz、Segment 的 Chamber、Pinterest 的 Knox 等。它们的共同点是都针对其开发公司内部的基础设施进行了定制,这可能会使其难以用于通用场景。

自研

Building secret manager in-house

根据你组织的规模,你可能会考虑自研。不过,需要记住以下几点:

  • 毫不奇怪,构建任何类型的内部解决方案(尤其是在 secret management 领域)都会带来大量开发负担。构建始终与最新第三方 APIs 和基础设施配置保持同步的软件,需要相应开发团队持续投入精力,而这些开发者本可以去做一些与产品相关、对核心业务更重要的事情。
  • 本文中提到的公司/工具将 90% 的时间用于思考其服务的合规性和安全性。这有助于防止绝大多数“所有可能出错的事情”。遗憾的是,自研解决方案并不总是具备同等程度的投入,而这类解决方案的安全性往往会随着时间推移成为次要问题。

选择适合你的工具时的关键考虑因素总结

最终,选择正确的工具来遵循 secrets 管理最佳实践,取决于你的需求和要求。

只有当你的技术栈完全构建在某一家主要云平台的生态系统中时(例如 AWS、GCP、Azure),才选择云特定 secret managers。如果你的基础设施现在是(或未来将是)multi-cloud,那么使用云特定 secret managers 可能不是最佳选择,因为这样也会增加平台锁定。

如果你的预算非常紧张,那么你可能想考虑像 Confidant 和 Chamber 这样的完全开源项目。请记住,这些解决方案中的大多数都不会像一些公司和开发者所期望的那样拥有完善的支持和产品质量。

如果你想采用市面上功能最完整、围绕 platform engineering 团队构建,并且你关心自托管的解决方案,那么 HCP Vault 可能是最适合你的工具。

如果你非常重视开发者体验和核心/platform engineering 团队的效率,并且你希望既能自托管又能使用托管服务,那么 Infisical 很可能是你的正确选择。

  • 原文链接: infisical.com/blog/best-...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
infisical
infisical
江湖只有他的大名,没有他的介绍。