跳到主要内容
版本:3.10.x

密钥提供方

作为关键基础设施组件,API 网关会与各种上游服务交互并处理 API 流量,其中可能包含密码、Token 和 SSL 证书等敏感数据。为了确保系统安全,必须妥善存储、加密、轮换和废弃这些敏感信息。

用户可以直接在 API7 网关中存储和管理这些密钥,API7 网关会按照 FIPS 标准对其加密和存储。或者,也可以将密钥存储在 HashiCorp Vault 或 AWS Secrets Manager 等第三方密钥管理器中,再通过变量在 API7 网关中引用它们。

信息

从 3.9.11 版本开始,密钥引用($secret://$env://)会由控制面集中解析,并自动适用于任何插件配置字段。在 3.9.11 之前的版本中,只有少量插件字段明确支持密钥引用,例如 Limit Count 中的 redis_password、Authz-Casdoor 中的 client_id/client_secret、Wolf RBAC 中的 appid 以及 LDAP Authentication 中的 user_dn

为什么使用密钥提供方

API7 网关通过将密钥存储和管理从 API 网关中解耦出来,提升整体安全性。目前,密钥提供方支持集成 HashiCorp Vault 和 AWS Secrets Manager。未来版本将支持更多常用的密钥管理器,例如 GCP Secret Manager。

密钥提供方对象包含特定密钥管理器的连接和身份认证信息:

API7 网关控制台中的密钥提供方配置表单截图,用户可以选择密钥管理器类型(HashiCorp Vault 或 AWS Secrets Manager),并填写连接和身份认证详情

用户可以在密钥管理器中存储消费者身份认证所需的凭据,或 HTTPS 请求期间使用的 SSL 证书等密钥。随后,这些密钥会通过密钥提供方接入并在 API7 网关中引用。这样,API7 网关就能安全地引用相应密钥,例如用于对消费者进行身份认证的密钥。

API7 网关中的插件字段设置为密钥引用的截图,例如 $secret://aws/my-secret/key,运行时会通过已配置的 AWS Secrets Manager 密钥提供方解析该引用

下图展示了消费者身份认证流程:密钥存储在密钥提供方中,API7 网关连接并完成身份认证后,从密钥提供方获取密钥。这个流程将密钥与 API 网关解耦。

使用外部密钥提供方进行消费者身份认证的流程图:API 客户端在请求中发送凭据,API7 网关通过调用密钥管理器(HashiCorp Vault 或 AWS Secrets Manager)解析已配置的密钥引用并比较获取的值,而不是读取网关内部存储的密钥

主要特性

  • 使用第三方密钥提供方存储敏感信息,将密钥与 API 网关解耦,增强安全性。
  • 将外部存储的密钥作为变量引用,简化配置管理。
  • 支持多个密钥提供方,适应复杂的企业架构并统一密钥管理。
  • 精确控制敏感信息的访问权限,防止未经授权的使用和数据泄露。

使用场景

增强数据安全

管理大量敏感信息是许多企业面临的重要挑战。API7 网关可以集成 HashiCorp Vault 和 AWS Secrets Manager 等第三方密钥提供方,为企业提供安全方案。企业可以在这些第三方平台上存储敏感数据,并在 API7 网关中将其作为变量引用,从而将 API 网关与密钥管理解耦。这可以避免敏感信息暴露在系统配置中,大幅提升数据安全性。此外,在专用管理平台上集中管理敏感数据和密钥,可以提高效率、支持审计追踪,并实现灵活的访问控制,帮助企业有效应对复杂的安全挑战。

为 API 网关透明轮换密钥

在实现动态密钥获取机制之前,企业通常会将密钥和其他敏感数据硬编码在配置文件中,以便静态访问。在 API7 网关中,只需指定密钥访问路径即可实现动态密钥获取。只要密钥存储路径保持不变,密钥发生变化就不会影响 API7 网关的使用。这种方式无需手动管理密钥,可以减少错误、简化密钥管理并显著提升安全性。

审计与合规

使用密钥和敏感信息通常需要遵守行业标准和监管要求。集成第三方密钥管理器后,API7 网关可以记录密钥提供方资源的详细访问日志和审计信息,例如创建、编辑或删除密钥提供方。这些信息有助于企业进行合规检查和安全分析。通过审计追踪,企业可以及时发现异常访问行为并采取适当的保护措施。

消费者凭据中变量的引用关系可以在 API7 控制台的密钥提供方引用列表中查看。编辑或删除密钥提供方时,系统会执行引用检查,防止因变量引用失效而产生配置错误。