本主题介绍如何访问 Secret 版本。访问密文版本会返回密文内容以及有关密文版本的其他元数据。访问密钥版本时,您需要指定其 version-id
或 alias(如果已指定)。你还可以使用
Secret(通过指定 "latest"
作为版本)。
所需的角色
如需获得访问 Secret 版本所需的权限,请让管理员向您授予 Secret 的 Secret Manager Secret Accessor (roles/secretmanager.secretAccessor
) IAM 角色。
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
访问 Secret 版本
控制台
-
转到 Google Cloud 控制台中的 Secret Manager 页面。
-
在 Secret Manager 页面上,点击密文的名称。
-
在密文详情页面的版本表中,找到要访问的密文版本。
-
在操作列中,点击查看更多
。 -
从菜单中点击查看密文值。
-
您将看到显示密文版本值的对话框。点击完成即可完成。
gcloud
如需在命令行上使用 Secret Manager,请先安装或升级到 Google Cloud CLI 378.0.0 或更高版本。在 Compute Engine 或 GKE 上,您必须使用 cloud-platform 范围进行身份验证。
访问密文版本:
$ gcloud secrets versions access version-id --secret="secret-id"
访问二进制密文版本:
如需将原始字节写入文件,请使用 --out-file 标志:
$ gcloud secrets versions access version-id --secret="secret-id" --out-file="path/to/secret"
如需获取原始字节,请让 Cloud SDK 以 base64 编码和解码形式输出响应:
$ gcloud secrets versions access version-id --secret="secret-id" --format='get(payload.data)' | tr '_-' '/+' | base64 -d
C#
如需运行此代码,请先设置 C# 开发环境并安装 Secret Manager C# SDK。在 Compute Engine 或 GKE 上,您必须使用 cloud-platform 范围进行身份验证。
Go
如需运行此代码,请先设置 Go 开发环境并 安装 Secret Manager Go SDK。 在 Compute Engine 或 GKE 上,您必须使用 cloud-platform 范围进行身份验证。
Java
如需运行此代码,请先设置 Java 开发环境并安装 Secret Manager Java SDK。 在 Compute Engine 或 GKE 上,您必须使用 cloud-platform 范围进行身份验证。
Node.js
要运行此代码,请先设置 Node.js 开发环境并 安装 Secret Manager Node.js SDK。 在 Compute Engine 或 GKE 上,您必须使用 cloud-platform 范围进行身份验证。
PHP
如需运行此代码,请先了解如何在 Google Cloud 上使用 PHP 和安装 Secret Manager PHP SDK。 在 Compute Engine 或 GKE 上,您必须使用 cloud-platform 范围进行身份验证。
Python
如需运行此代码,请先设置 Python 开发环境并安装 Secret Manager Python SDK。在 Compute Engine 或 GKE 上,您必须使用 cloud-platform 范围进行身份验证。
Ruby
如需运行此代码,请先设置 Ruby 开发环境并安装 Secret Manager Ruby SDK。在 Compute Engine 或 GKE 上,您必须使用 cloud-platform 范围进行身份验证。
API
这些示例使用 curl 来使用 API 演示。 您可以使用 gcloud auth print-access-token 生成访问令牌。在 Compute Engine 或 GKE 上,您必须使用 cloud-platform 范围进行身份验证。
$ curl "https://secretmanager.googleapis.com/v1/projects/project-id/secrets/secret-id/versions/version-id:access" \
--request "GET" \
--header "authorization: Bearer $(gcloud auth print-access-token)" \
--header "content-type: application/json"
响应 payload.data
是密文版本的 base64 编码内容。以下是使用 jq
工具提取密文的示例:
$ curl "https://secretmanager.googleapis.com/v1/projects/project-id/secrets/secret-id/versions/version-id:access" \
--request "GET" \
--header "authorization: Bearer $(gcloud auth print-access-token)" \
--header "content-type: application/json" \
| jq -r ".payload.data" | base64 --decode
资源一致性
在 Secret Manager 中,添加密文版本,然后立即按版本号访问该密文版本是一项具有高度一致性的操作。
Secret Manager 中的其他操作最终是一致的。 最终一致性操作通常会在几分钟内完成收敛,但可能需要几个小时。
应用 IAM 权限会实现最终一致性。这意味着授予或撤销对密文的访问权限可能不会立即生效。如需了解详情,请参阅访问权限更改传播。
后续步骤
- 了解如何为 Secret 版本分配别名。
- 了解如何停用密钥版本。
- 了解如何销毁密钥版本。