本页面介绍了如何销毁密钥版本。在已销毁状态下,密文版本的内容将被舍弃。销毁 Secret 版本是一项永久性操作。在 版本被销毁,您无法访问 Secret 数据或将版本恢复到其他状态。
在销毁密钥版本之前,请先尝试将其停用,并观察应用的行为。 如果遇到意外问题,您可以重新启用密钥版本。
停用或销毁密文或密文版本时,更改需要过一段时间才能应用于系统中。如有必要,您可以撤消对密文的访问权限。IAM 权限的更改会在数秒内达成一致。
所需的角色
如需获得销毁密钥版本所需的权限,请让您的管理员为您授予密钥的 Secret Manager Secret Version Manager (roles/secretmanager.secretVersionManager
) IAM 角色。
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
销毁密文版本
如需销毁密钥版本,请使用以下方法之一:
控制台
-
转到 Google Cloud 控制台中的 Secret Manager 页面。
-
在 Secret Manager 页面上,点击区域性 Secret 标签页,然后点击某个 Secret 以访问其版本。
-
在密文详情页面的版本标签页中,选择要销毁的密文版本。
-
点击
操作,然后点击销毁。 -
在随即显示的确认对话框中,输入要确认的密钥 ID,然后点击销毁所选版本。
gcloud
在使用下面的命令数据之前,请先进行以下替换:
- VERSION_ID:Secret 版本的资源名称
- SECRET_ID:密钥的 ID 或密钥的完全限定标识符
- LOCATION:Secret 的 Google Cloud 位置
执行以下命令:
Linux、macOS 或 Cloud Shell
gcloud secrets versions destroy VERSION_ID --secret=SECRET_ID --location=LOCATION
Windows (PowerShell)
gcloud secrets versions destroy VERSION_ID --secret=SECRET_ID --location=LOCATION
Windows (cmd.exe)
gcloud secrets versions destroy VERSION_ID --secret=SECRET_ID --location=LOCATION
REST
在使用任何请求数据之前,请先进行以下替换:
- LOCATION:密钥的 Google Cloud 位置
- PROJECT_ID:Google Cloud 项目 ID
- SECRET_ID:密钥的 ID 或密钥的完全限定标识符
- VERSION_ID:Secret 版本的 ID
HTTP 方法和网址:
POST https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID/versions/VERSION_ID:destroy
请求 JSON 正文:
{}
如需发送请求,请选择以下方式之一:
curl
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID/versions/VERSION_ID:destroy"
PowerShell
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID/versions/VERSION_ID:destroy" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
{ "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID/versions/VERSION_ID", "createTime": "2024-09-02T07:16:34.566706Z", "destroyTime": "2024-09-04T06:29:01.893743728Z", "state": "DESTROYED", "etag": "\"1621454a37ce7f\"" }
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 范围进行身份验证。
Python
如需运行此代码,请先设置 Python 开发环境并 安装 Secret Manager Python SDK。 在 Compute Engine 或 GKE 上,您必须使用 cloud-platform 范围进行身份验证。
推迟销毁 Secret 版本
具有 Secret Manager 管理员角色的用户可以通过在 Secret 上配置推迟销毁密钥版本功能来设置推迟销毁密钥版本。如果启用此功能,系统在收到请求后不会立即销毁密钥版本。相反,此密钥版本会被停用,并安排在以后销毁 日期。在此期间,Secret Manager 管理员可以恢复 Secret 版本。