本页面介绍如何安排 Cloud Key Management Service 密钥版本永久销毁。销毁密钥版本后,系统会删除密钥材料,但不会删除密钥名称和版本号等其他详细信息。密钥销毁后,使用该密钥加密的数据无法解密。
当您提交销毁密钥版本的请求时,系统会默认在 24 小时后销毁密钥。您可以通过恢复密钥版本来取消销毁请求。
该密钥会在已安排销毁状态保留 24 小时。您可以在创建密钥时更改此默认时长。
您还可以使用 Identity and Access Management (IAM) 管理对密钥的访问权限。IAM 操作会在数秒内达成一致。如需了解详情,请参阅使用 IAM。
您还可以暂时停用密钥版本。
在本主题的其余部分,将安排销毁密钥的操作称为销毁密钥,即使销毁不会立即销毁。
销毁密钥版本
您可以销毁已启用或已停用的密钥版本。
控制台
在 Google Cloud 控制台中,转到密钥管理页面。
选中要安排销毁的密钥版本旁边的复选框。
点击标头中的销毁。
在确认提示中输入密钥名称,然后点击安排销毁。
gcloud
如需在命令行上使用 Cloud KMS,请先安装或升级到最新版本的 Google Cloud CLI。
gcloud kms keys versions destroy KEY_VERSION \ --key KEY_NAME \ --keyring KEY_RING \ --location LOCATION
请替换以下内容:
KEY_VERSION
:要销毁的密钥版本的版本号。KEY_NAME
:您要销毁其密钥版本的密钥的名称。KEY_RING
:包含密钥的密钥环的名称。LOCATION
:密钥环的 Cloud KMS 位置。
如需了解所有标志和可能值,请使用 --help
标志运行命令。
C#
要运行此代码,请先设置 C# 开发环境并安装 Cloud KMS C# SDK。
Go
要运行此代码,请先设置 Go 开发环境并安装 Cloud KMS Go SDK。
Java
要运行此代码,请先设置 Java 开发环境并安装 Cloud KMS Java SDK。
Node.js
要运行此代码,请先设置 Node.js 开发环境并安装 Cloud KMS Node.js SDK。
PHP
要运行此代码,请先了解如何在 Google Cloud 上使用 PHP 并安装 Cloud KMS PHP SDK。
Python
要运行此代码,请先设置 Python 开发环境并安装 Cloud KMS Python SDK。
Ruby
要运行此代码,请先设置 Ruby 开发环境并安装 Cloud KMS Ruby SDK。
API
这些示例使用 curl 作为 HTTP 客户端来演示如何使用 API。如需详细了解访问权限控制,请参阅访问 Cloud KMS API。
通过调用 CryptoKeys.destroy 方法销毁密钥版本。
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions/KEY_VERSION:destroy" \ --request "POST" \ --header "authorization: Bearer TOKEN"
当您提交销毁请求时,密钥版本的状态将变为已安排销毁。密钥的已配置销毁销毁时长过后,密钥版本的状态会变为已销毁,这意味着从活跃系统中删除密钥材料的操作已开始,客户无法恢复相应密钥材料。密钥材料在安排的销毁时间后最长可能会在 Google 系统中保留 45 天。
如需在密钥版本安排销毁后接收提醒,请参阅将 Cloud Monitoring 与 Cloud KMS 搭配使用。
已销毁的密钥版本不是计费资源。
销毁外部密钥
如需永久移除 Cloud EKM 密钥和外部密钥之间的关联,您可以销毁密钥版本。安排的“销毁”期结束后,密钥将销毁。 密钥版本被销毁后,您无法再加密或使用 Cloud EKM 密钥版本加密的数据。
销毁 Cloud KMS 中的手动管理的密钥版本不会修改外部密钥管理器中的密钥。我们建议您先销毁 Google Cloud 中的密钥或密钥版本。销毁 Cloud EKM 密钥版本后,您可以在外部密钥管理器中销毁密钥材料。
销毁 Cloud KMS 中的协调外部密钥版本会先销毁 Google Cloud 中的密钥版本,然后向 EKM 发送销毁请求以销毁外部密钥材料。
恢复密钥版本
在密钥版本的状态为“已安排销毁”期间,您可以通过提交恢复请求来恢复密钥版本。
控制台
转到 Google Cloud 控制台中的密钥管理页面。
点击您将恢复其密钥版本的密钥所在密钥环的名称。
点击您要恢复其密钥版本的密钥。
选中要恢复的密钥版本旁边的复选框。
点击标头中的恢复。
在确认提示中,点击恢复。
gcloud
如需在命令行上使用 Cloud KMS,请先安装或升级到最新版本的 Google Cloud CLI。
gcloud kms keys versions restore key-version \ --key key \ --keyring key-ring \ --location location
将 key-version 替换为要恢复的密钥的版本。将 key 替换为密钥的名称。将 key-ring 替换为密钥所在的密钥环的名称。将 location 替换为密钥环的 Cloud KMS 位置。
如需了解所有标志和可能值,请使用 --help
标志运行命令。
C#
要运行此代码,请先设置 C# 开发环境并安装 Cloud KMS C# SDK。
Go
要运行此代码,请先设置 Go 开发环境并安装 Cloud KMS Go SDK。
Java
要运行此代码,请先设置 Java 开发环境并安装 Cloud KMS Java SDK。
Node.js
要运行此代码,请先设置 Node.js 开发环境并安装 Cloud KMS Node.js SDK。
PHP
要运行此代码,请先了解如何在 Google Cloud 上使用 PHP 并安装 Cloud KMS PHP SDK。
Python
要运行此代码,请先设置 Python 开发环境并安装 Cloud KMS Python SDK。
Ruby
要运行此代码,请先设置 Ruby 开发环境并安装 Cloud KMS Ruby SDK。
API
这些示例使用 curl 作为 HTTP 客户端来演示如何使用 API。如需详细了解访问权限控制,请参阅访问 Cloud KMS API。
通过调用 CryptoKeys.restore 方法恢复密钥版本。
curl "https://cloudkms.googleapis.com/v1/projects/project-id/locations/location-id/keyRings/key-ring-id/cryptoKeys/crypto-key-id/cryptoKeyVersions/version-id:restore" \ --request "POST" \ --header "authorization: Bearer token"
恢复请求完成后,密钥版本的状态将变为“已停用”。您必须先启用密钥,然后才能使用它。
必需的 IAM 权限
要销毁密钥版本,调用方需要对密钥、密钥环或项目、文件夹或组织拥有 cloudkms.cryptoKeyVersions.destroy
IAM 权限。
要恢复密钥版本,调用者需要 cloudkms.cryptoKeyVersions.restore
权限。
这两种权限都授予了 Cloud KMS Admin 角色 (roles/cloudkms.admin
)。
删除时间轴
Cloud KMS 承诺在安排的销毁时间后的 45 天内从所有 Google 基础架构中删除客户密钥材料。这包括从活跃系统和数据中心备份中移除数据。其他客户数据则遵循 180 天的标准 Google Cloud 删除时间表。