密钥提供方
作为关键基础设施组件,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。
密钥提供方对 象包含特定密钥管理器的连接和身份认证信息:

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

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

主要特性
- 使用第三方密钥提供方存储敏感信息,将密钥与 API 网关解耦,增强安全性。
- 将外部存储的密钥作为变量引用,简化配置管理。
- 支持多个密钥提供方,适应复杂的企业架构并统一密钥管理。
- 精确控制敏感信息的访问权限,防止未经授权的使用和数据泄露。
使用场景
增强数据安全
管理大量敏感信息是许多企业面临的重要挑战。API7 网关可以集成 HashiCorp Vault 和 AWS Secrets Manager 等第三方密钥提供方,为企业提供安全方案。企业可以在这些第三方平台上存储敏感数据,并在 API7 网关中将其作为变量引用,从而将 API 网关与密钥管理解耦。这可以避免敏感信息暴露在系统配置中,大幅提升数据安全性。此外,在专用管理平台上集中管理敏感数据和密钥,可以提高效率、支持审计追踪,并实现灵活的访问控制,帮助企业有效应对复杂的安全挑战。
为 API 网关透明轮换密钥
在实现动态密钥获取机制之前,企业通常会将密钥和其他敏感数据硬编码在配置文件中,以便静态访问。在 API7 网关中,只需指定密钥访问路径即可实现动态密钥获取。只要密钥存储路径保持不变,密钥发生变化就不会影响 API7 网关的使用。这种方式无需手动管理密钥,可以减少错误、简化密钥管理并显著提升安全性。
审计与合规
使用密钥和敏感信息通常需要遵守行业标准和监管要求。集成第三方密钥管理器后,API7 网关可以记录密钥提供方资源的详细访问日志和审计信息,例如创建、编辑或删除密钥提供方。这些信息有助于企业进行合规检查和安全分析。通过审计追踪,企业可以及时发现异常访问行为并采取适当的保护措施。
消费者凭据中变量的引用关系可以在 API7 控制台的密钥提供方引用列表中查看。编辑或删除密钥提供方时,系统会执行引用检查,防止因变量引用失效而产生配置错误。