跳到主要内容

密钥管理

本文档将介绍 APISIX 中密钥管理的基本概念以及为什么需要它们。

在文档末尾探索其他资源,以获取有关相关主题的更多信息。

概述

在 APISIX 中,密钥(Secret)对象用于设置与外部密钥管理器的集成,以便 APISIX 可以在运行时动态地建立连接并从密钥管理器获取密钥。

下图使用一个示例说明了密钥对象的概念,其中为用户 John 启用了 key-auth,并且用户凭证存储在 HashiCorp Vault 服务器中:

使用 Vault 作为外部密钥管理器存储 key-auth 密钥时的密钥图解示例

如演示所示,当 APISIX 与外部密钥管理器结合使用时,密钥字段被定义为一个以固定前缀 $secret:// 开头的变量,后跟密钥管理器名称、APISIX 密钥对象 ID、用户名和其他详细信息。

具体来说,如果使用 Vault 作为密钥管理器,APISIX 密钥对象应指定:

  • uri:托管 Vault 服务器的位置
  • prefix:对应于 Vault 应路由流量的密钥引擎的路径前缀
  • token:APISIX 对 Vault 进行身份验证并建立连接的令牌

这些配置确保 John 可以向 APISIX 发送请求并使用正确的密钥访问后端服务。来自未通过身份验证用户的请求将被 APISIX 拒绝。

除 Vault 外,APISIX 还支持与 AWS 和 GCP 密钥管理器集成。有关密钥配置的更多详细信息,请参阅 Admin API

其他资源