本页面介绍了如何安排 Cloud Key Management Service 密钥版本,以将其永久保留为 破坏性。在 Cloud KMS 中,您使用的加密密钥材料 来加密、解密、签署和验证数据是否存储在密钥版本中。一把钥匙 具有零个或多个密钥版本。轮替密钥时,会创建一个新密钥 版本。
销毁密钥版本意味着密钥材料会被永久删除。 销毁密钥版本时,密钥名称和密钥等其他详细信息 版本号不会删除销毁密钥后,经过加密的数据 无法解密。
由于密钥销毁是不可逆转的,因此 Cloud KMS 不允许 立即销毁密钥版本。而是为 破坏性。密钥版本仍处于已安排销毁状态 。在预定销毁期限内,您可以 恢复密钥版本以取消销毁。
默认安排销毁时长为 30 天。您可以设置 为密钥安排了自定义销毁时长 创建。贵组织可以强制执行 安排销毁时长下限,方法是设置最短销毁时长 计划运行时长限制条件。
您还可以使用 Identity and Access Management (IAM) 管理对密钥的访问权限。IAM 操作会在数秒内达成一致。如需了解详情,请参阅使用 IAM。
您还可以暂时停用密钥版本。周三 建议在安排密钥版本进行销毁之前将其停用,因为 确保可安全销毁密钥的过程。 根据您的组织政策,您可能需要停用密钥 然后才能安排销毁。如需详细了解 使用组织政策控制密钥版本销毁,请参阅控制 密钥版本销毁。
在本主题的其余部分中,我们介绍了如何安排销毁密钥 即使销毁不会立即销毁。
准备工作
了解风险
销毁密钥版本是一项永久性操作。销毁符合以下条件的密钥版本 存在以下风险:
服务中断:如果您销毁启动容器所需的密钥 您的服务或应用可能会变得不可用
数据永久丢失:如果销毁用于加密数据的密钥, 确保数据不可用使用密钥 系统会将密钥销毁。在某些情况下,销毁密钥 可能会导致加密资源被永久删除。
监管或合规性问题:如果您销毁需要执行相应操作的密钥 访问在该保留期限之前的保留期限内的数据 则您可能违反了相关法规或法规遵从 。
所需的角色
为了获得销毁和恢复密钥版本所需的权限,
请让管理员授予您
针对密钥的 Cloud KMS Admin (roles/cloudkms.admin
) IAM 角色。
如需详细了解如何授予角色,请参阅管理访问权限。
检查密钥版本是否正在使用中
在销毁密钥版本之前,请完成以下步骤,以了解是否 正在使用的密钥版本:
查看密钥的密钥使用情况跟踪详细信息。 如果任何资源受您要销毁的密钥版本的保护, 请使用另一个密钥版本重新加密它们。
为可能正在使用密钥的任何服务或应用开启日志 版本。
对包含该密钥的 Cloud KMS 项目开启日志。
停用密钥版本。停用密钥 version 可阻止使用密钥版本。使用 密钥版本已停用,任何尝试使用该密钥版本的操作都将失败。
监控日志,直到您确保没有任何应用或服务 依赖于您已停用的密钥版本。如有任何错误表明未通过 密钥版本的访问权限,请配置要使用的应用或资源 另一个密钥版本。
在销毁 密钥版本取决于密钥的类型、使用模式 敏感级别。例如,在销毁所使用的密钥版本之前 在每季度运行一次的过程中,停用密钥版本,直到 已成功完成
检查密钥的使用是否符合任何适用的合规性要求。 例如,密钥版本和使用它加密的数据可能会受到 数据保留期限
这些步骤可帮助您确定是否仍需要密钥:不过, 也无法保证不再需要某个密钥版本。您的组织 应实施程序和指南,以确保密钥版本 不会造成负面影响
销毁密钥版本
您可以销毁已启用或已停用的密钥版本。
控制台
在 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。
通过调用 CryptoKeyVersions.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 中手动管理的密钥版本不会改变 外部密钥管理器中的密钥。我们建议您先销毁密钥或 密钥版本。创建好 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。
通过调用 CryptoKeyVersions.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 承诺从所有 Google 服务中删除客户密钥材料 基础架构的 45 天内。这包括 移除活跃系统和数据中心备份中的数据。其他客户 数据遵循 Google Cloud 删除时间表 最多为 180 天