访问 API

Secret Manager 提供 REST APIgRPC API 以用于直接在应用中使用或管理密文。本主题介绍了如何启用 Secret Manager API。

启用 Secret Manager API 后,您可以使用以下工具将 Secret Manager 集成到您的应用和进程中。

  • Cloud SDK,提供一个命令行界面,用于管理来自客户端的密文。

  • 便捷、惯用的 Secret Manager 客户端库,可让您在应用源代码中访问和管理密文。客户端库支持多种语言(包括 C# (.NET)、Go、Java、Node.js、PHP、Python 和 Ruby)。

启用 API 访问权限

在开始使用 Secret Manager 之前,您必须启用 API 访问权限。

  1. 登录您的 Google Cloud 帐号。如果您是 Google Cloud 新手,请创建一个帐号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. 在 Google Cloud Console 的项目选择器页面上,选择或创建一个 Google Cloud 项目。

    转到“项目选择器”

  3. 确保您的 Cloud 项目已启用结算功能。 了解如何确认您的项目是否已启用结算功能

  4. 启用所需的 API。

    启用 API

  5. 安装并初始化 Cloud SDK
  6. 在 Google Cloud Console 的项目选择器页面上,选择或创建一个 Google Cloud 项目。

    转到“项目选择器”

  7. 确保您的 Cloud 项目已启用结算功能。 了解如何确认您的项目是否已启用结算功能

  8. 启用所需的 API。

    启用 API

  9. 安装并初始化 Cloud SDK

身份验证

向 Secret Manager API 发出的请求需要身份验证。使用 Cloud SDK客户端库时,身份验证信息通常会自动注入请求中。例如,如果您使用 gcloud 命令行工具进行身份验证,则未来的请求将自动注入身份验证。

gcloud

gcloud auth login --update-adc

直接使用 API 时,您必须将身份验证信息与请求一起作为标头传递。此示例演示了如何使用 curl 向 Secret Manager API 进行身份验证:

API

curl "https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets" \
    --header "Authorization: Bearer ACCESS_TOKEN"
  • PROJECT_ID 是您要在其中使用 Secret Manager 的 Google Cloud 项目 ID

  • ACCESS_TOKEN 是 OAuth 访问令牌。它被指定为 Authorization 标头,前缀值为 Bearer

如果您已安装 Cloud SDK,则可以通过运行以下命令生成临时 OAuth 访问令牌:

gcloud

gcloud auth print-access-token

如需了解生成临时 OAuth 访问令牌的其他方法,请参阅创建短期凭据。如需了解如何向 Google Cloud 进行身份验证,请参阅 Google Cloud 身份验证概览

OAuth 范围

如需将 Secret Manager 与 Compute Engine 或 GKE 上运行的工作负载结合使用,底层实例或节点必须具有 cloud-platform OAuth 范围。如果您收到包含以下消息的错误,则表示实例或节点未预配正确的 OAuth 范围。

Request had insufficient authentication scopes

如需使用 Secret Manager,所需的 OAuth 范围如下:

https://www.googleapis.com/auth/cloud-platform

创建新实例、实例组或节点池时,请指定 cloud-platform 范围

gcloud

gcloud compute instances create "INSTANCE_ID" \
    --scopes "https://www.googleapis.com/auth/cloud-platform"

对于现有实例、实例组或节点池,请更新访问权限范围

gcloud

gcloud compute instances set-service-account "INSTANCE_ID" \
    --service-account "SERVICE_ACCOUNT_EMAIL" \
    --scopes "https://www.googleapis.com/auth/cloud-platform"

如需了解详情,请参阅 Compute Engine 服务帐号权限

App Engine

如需将 Secret Manager 与 App Engine 上运行的工作负载结合使用,您必须授予对 App Engine 服务的任何所需权限

后续步骤