在 GCP Secret Manager 中管理密钥
GCP Secret Manager 是一项完全托管的服务,用于存储、管理和访问敏感信息,如 API 密钥、密码和证书。它允许你通过加密集中存储密钥,自动进行版本控制,并使用 Google Cloud 的 IAM 策略控制访问。
本指南将向你展示如何使用 GCP Secret Manager 管理身份验证插件 key-auth 的用户凭证,以及如何在 APISIX 中检索密钥。
前置条件
- 安装 Docker。
- 安装 cURL 以向服务发送请求进行验证。
- 按照 快速入门教程 在 Docker 中启动一个新的 APISIX 实例。
- 拥有一个 GCP 帐户 并启用 Secret Manager。
在 GCP Secret Manager 中创建密钥
在本节中,你将创建一个密钥来存储消费者 john 的 key-auth 身份验证密钥。
导航到控制台中的 GCP Secret Manager 并创建一个密钥。填写名称 apisix-john-key-auth 和密钥 john-key:

查看其余信息并完成密钥创建。你应该在 GCP Secret Manager 中看到列出的密钥:

获取 GCP 访问凭证
按照 服务帐号凭证 文档在 GCP 中创建一个服务帐号,为该帐号分配 Secret Manager Secret Accessor 角色,并为该帐号创建凭证。
你应该会看到生成并下载到你机器上的 JSON 文件,其中包含凭证,类似于以下内容:
{
"type": "service_account",
"project_id": "apisix-project",
"private_key_id": "f039bb20b2xxxxxxxxxb43cb7132axxxxxx1f165",
"private_key": "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n",
"client_email": "apisix-secret-manager@apisix-project.iam.gserviceaccount.com",
"client_id": "115458xxxxxxx68702206",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/apisix-secret-manager%40apisix-project.iam.gserviceaccount.com",
"universe_domain": "googleapis.com"
}
更新 APISIX 中的受信任证书
仅当你使用带有 SSL 验证的默认配置时,才需要本节中的步骤。如果你希望禁用 SSL 验证,请在 [下一步](#在 APISIX 中配置密钥) 中将 ssl_verify 设置为 false。