本页介绍了如何检索一段时间以来创建的密文的所有不同版本的列表,以及如何查看特定密文版本的元数据。
所需的角色
如需获得列出密文版本和查看版本详细信息所需的权限,请让您的管理员为您授予密文、项目、文件夹或组织的 Secret Manager Viewer (roles/secretmanager.viewer
) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
列出密文的版本
列出密文的版本非常有用,原因如下:
-
您可以查看密钥随时间变化的情况、更改者以及更改时间。这是审核和合规性所必需的。
-
如果密文意外更新或遭到入侵,您可以回滚到之前已知良好的版本。
-
您可以识别不再使用的版本,并安全地将其删除。
-
您可以排查问题。例如,如果应用遇到问题,您可以检查密文的先前版本,看看是否是密文的更改导致了问题。
如需列出密文的所有版本,请使用以下方法之一:
控制台
-
在 Google Cloud 控制台中,前往 Secret Manager 页面。
-
点击某个 Secret 以访问其版本。
属于相应密文的版本会显示在版本表中。
gcloud
在使用下面的命令数据之前,请先进行以下替换:
- SECRET_ID:相应 Secret 的 ID 或完全限定标识符。
执行以下命令:
Linux、macOS 或 Cloud Shell
gcloud secrets versions list SECRET_ID
Windows (PowerShell)
gcloud secrets versions list SECRET_ID
Windows (cmd.exe)
gcloud secrets versions list SECRET_ID
响应包含相应密钥。
REST
在使用任何请求数据之前,请先进行以下替换:
- PROJECT_ID: Google Cloud 项目 ID
- SECRET_ID:相应 Secret 的 ID 或完全限定标识符
HTTP 方法和网址:
GET https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID/versions
请求 JSON 正文:
{}
如需发送请求,请选择以下方式之一:
curl
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID/versions"
PowerShell
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID/versions" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
{ "versions": [ { "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID/versions/VERSION_ID", "createTime": "2024-09-04T06:41:57.859674Z", "state": "ENABLED", "etag": "\"1621457b3c1459\"" } ], "totalSize": 1 }
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 范围进行身份验证。
获取有关密文版本的详细信息
通过此流程,您可以查看密文版本的元数据,例如版本 ID、创建日期和时间、加密详细信息和状态。查看密文版本的元数据是指访问有关密文版本的信息,而不是实际的密文值本身。如需查看密文值,请参阅访问密文版本。
如需查看 Secret 版本的元数据,请使用以下方法之一:
控制台
-
在 Google Cloud 控制台中,前往 Secret Manager 页面。
-
点击某个 Secret 以访问其版本。
属于相应密文的版本会显示在版本表中。 对于每个版本,表格中还会显示版本 ID 及其元数据。
gcloud
在使用下面的命令数据之前,请先进行以下替换:
- VERSION_ID:密文版本的 ID
- SECRET_ID:相应 Secret 的 ID 或完全限定标识符。
执行以下命令:
Linux、macOS 或 Cloud Shell
gcloud secrets versions describe VERSION_ID --secret=SECRET_ID
Windows (PowerShell)
gcloud secrets versions describe VERSION_ID --secret=SECRET_ID
Windows (cmd.exe)
gcloud secrets versions describe VERSION_ID --secret=SECRET_ID
响应包含相应密钥。
REST
在使用任何请求数据之前,请先进行以下替换:
- PROJECT_ID: Google Cloud 项目 ID
- SECRET_ID:相应 Secret 的 ID 或完全限定标识符
- VERSION_ID:密文版本的 ID
HTTP 方法和网址:
GET https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID
请求 JSON 正文:
{}
如需发送请求,请选择以下方式之一:
curl
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID"
PowerShell
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
{ "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID/versions/VERSION_ID", "createTime": "2024-09-04T06:41:57.859674Z", "state": "ENABLED", "etag": "\"1621457b3c1459\"" }
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 范围进行身份验证。
后续步骤
- 了解如何为 Secret 版本分配别名。