API7 企业版 v3.2.16 支持对接第三方 Secret 提供商

更新时间 10/10/2024

API7 企业版中,可能会存储大量的敏感信息,例如 SSL 证书和私钥、消费者认证时的账号密码,以及部分插件用于对接外部系统所需的账号密码等。

在 API7 企业版 v3.2.16 中,我们引入了 Secret 提供商的概念。现在,我们可以轻松添加 Secret 提供商资源,以便与第三方的 Secret Manager(例如 Hashicorp VaultAWS Secrets ManagerGCP Secret Manager 等)进行对接,将存放在外部的敏感信息,在 API7 中以变量的形式进行引用,引用格式为:

1$secret://$manager/$id/$secret_name/$key

使用方式

添加 Secret 提供商

在网关组菜单中,新增了 “Secret 提供商” 选项。点击后进入 Secret 提供商列表页面。点击页面右上角的 “添加 Secret 提供商” 按钮。

Add Secret Providers in API7 Enterprise

在弹出的表单中,填写 Secret 提供商的基础信息,选择对接的 Secret 管理服务类型为 Hashicorp Vault,并填写 Hashicorp Vault 服务访问地址、认证令牌等配置。

查看 Secret 提供商

创建完成后,我们可以在 Secret 提供商的详情页中查看具体的配置信息及 Secret 变量的示例。

Secret Provider Details in API7 Enterprise

Secret 的变量格式为:secret://manager/$id/$secret_name/$key,对应的含义如下

  • $secret: 固定前缀,无需替换
  • $manager: Secret 管理服务
  • $id: Secret 提供商资源的 ID
  • $secret_name: Secret 管理服务中的 Secret 名称
  • $key: Secret 管理服务中与 Secret 对应的 Key

以我们填写的 Secret 提供商为例,ID 为 my-provider,它的 Secret 管理服务类型是 Hashicorp Vault。如果需要要引用其中 Secret 名称为 my-secret,key 为 password 的值,它的 Secret 变量应该为:

1$secret://vault/my-hashicorp-vault/my-secret/password

目前 Secret 管理服务类型支持了 Hashicorp Vault。AWS Secrets Manager 和 GCP Secret Manger 也即将开放使用。

引用 Secret 变量

在 Secret 提供商创建完成后,你可以在 API7 企业版的各种资源中,通过变量的形式引用存储在外部系统的敏感信息。例如,在为消费者添加 Basic Authentication 类型的凭据时,可以选择把密码等敏感信息保存在外部的 Secret 管理服务中,并在 API7 中进行引用,以增强安全性。

具体操作时,我们可以直接从 Secret 提供商详情页复制 Secret 变量,然后在密码输入字段中,将变量中的 $secret_name$key 替换为实际对应的名称和键。

Reference Secret Providers in API7 Enterprise

类似地,在非表单页面,例如如插件编辑器中,我们也可以直接将 Secret 变量的值以字符串形式输入到任何支持引用 Secret 的字段中。

Refer Secret Information When Enabling Plugins

查看引用关系

在消费者的凭据中引用了 my-provider 中的变量时,可以在 Secret 提供商引用情况列表中查看到这个引用关系,当有其他资源引用时也会展示在这个表中,便于我们掌握这个 Secret 提供商的使用情况。

Secret Provider References

编辑或删除 Secret 提供商

在编辑或删除 Secret 提供商时,也会进行引用关系的检测,有效避免了出现资源中引用了无效的变量,导致配置错误的情况。

Edit or Delete Secret Provider in API7 Enterprise

总结

API7 企业版通过集成 Secret 提供商,实现了与 HashiCorp Vault 等外部 Secret 管理服务的无缝对接,不仅能提升了在各种资源中引用存储在外部敏感信息的便捷性,还有效降低了手动管理敏感信息所带来的风险和成本。未来,我们计划支持对接更多种类的 Secret 管理服务,以满足用户日益增长的需求,确保敏感信息管理的灵活性和安全性。

微信咨询

获取方案