使用单一授权删除密钥

如果您是 Key Protect 实例的管理者,可以使用 IBM® Key Protect for IBM Cloud® 删除加密密钥及其密钥材料。

在删除密钥之前,请确保查看 删除和清除密钥之前的注意事项

在控制台中删除密钥

缺省情况下,Key Protect 需要一个权限才能删除密钥。 如果您更倾向于通过图形界面删除加密密钥,可以使用 IBM Cloud 控制台。

在您创建密钥或将现有密钥导入服务后,请完成以下步骤以删除密钥:

  1. 登录到 IBM Cloud 控制台

  2. 转到 “菜单” > “资源列表” 以查看您的资源列表。

  3. 从 IBM Cloud 资源列表中,选择您供应的 Key Protect 实例。

  4. 在应用程序详细信息页面中,使用密钥表来浏览服务中的密钥。

  5. 单击 ⋯ 图标以打开要删除的密钥的选项列表。

  6. 在“选项”菜单中,单击 “删除”。 在确认屏幕中,请确认该密钥未关联任何资源,然后确认删除。 如果某个密钥保护的已注册 IBM Cloud 资源因 保留策略 而不可删除,则无法删除该密钥。

删除键后,该键将转为 “已销毁”状态。 处于此状态的密钥加密的任何数据都不再可访问。 与密钥关联的元数据(例如,密钥的删除日期)会保存在 Key Protect 数据库中。 销毁的密钥最多可在 30 天后或其到期日期 (以较早者为准) 恢复。 在 30 天后,密钥将无法再恢复,并且在 90 天后有资格清除,这是一个将密钥材料粉碎并使其元数据不可访问的过程。

如果用户 拥有 KeyPurge 属性,则可以在四小时后清除密钥。 请查看 在控制台中清除密钥 以获取更多信息。

在控制台中清除密钥

如果在 90 天之前清除密钥对用例很重要 (在正常删除后可以清除最快的密钥),那么如果用户 具有 KeyPurge 角色,那么可以在 4 小时之后清除密钥。

由于已清除的密钥具有永久粉碎的密钥材料和不可访问的元数据,因此无法复原已清除的密钥。 因此,更重要的是确保密钥没有重要的相关资源。

要清除密钥:

  1. 遵循指示信息以 删除密钥

  2. 等待至少 4 个小时后,再次浏览至密钥并单击 ... 图标。

  3. 从选项中,从以下选项中选择 清除,并在下一个屏幕中确认删除密钥,方法是确保密钥没有关联的资源,并且您具有必需的 KeyPurge 用户属性。

使用 API 删除密钥

如果用户 具有 KeyPurge 角色,那么他们可以在 4 小时后清除密钥。

缺省情况下,Key Protect 需要一个权限才能删除密钥。 您可以通过向以下端点发送 DELETE 请求,来删除一个键及其内容。

https://<region>.kms.cloud.ibm.com/api/v2/keys/<keyID_or_alias>

如果密钥正在主动保护一个或多个云资源,那么此操作将不会成功。 您可以 查看与密钥关联的资源,或者在查询时 使用 force 参数 来删除密钥。

  1. 检索认证凭证以使用服务中的密钥

  2. 获取要删除的密钥的 ID。

    您可以在以下位置找到密钥的标识: Key Protect 实例 检索密钥列表,或者通过访问 Key Protect 仪表板。

  3. 运行以下 curl 命令,以删除该键及其内容。

    $ curl -X DELETE \
        "https://<region>.kms.cloud.ibm.com/api/v2/keys/<keyID_or_alias>" \
        -H "authorization: Bearer <IAM_token>" \
        -H "bluemix-instance: <instance_ID>" \
        -H "x-kms-key-ring: <key_ring_ID>" \
        -H "prefer: <return_preference>"
    

    根据下表替换示例请求中的变量。

描述使用Key ProtectAPI 删除密钥所需的变量。API 删除密钥所需的变量。
变量 描述
区域 必填。 代表您的 Key Protect 实例所在地理区域的区域缩写,例如 us-south 或 eu-gb。

如需了解更多信息,请参阅 “区域服务端点”
keyID_or_alias 必填。 要删除的键的唯一标识符或别名。
IAM_token 必填。 您的 IBM Cloud 访问令牌。 在 curl 请求中包含 IAM 令牌的完整内容,包括 Bearer 值。

如需了解更多信息,请参阅“获取访问令牌”。
instance_ID 必填。 分配给您的 Key Protect 服务实例的唯一标识符。

如需了解更多信息,请参阅 “检索实例 ID”
键环 ID 可选。 密钥所属的密钥环的唯一标识。

如果未指定,那么 Key Protect 将在与指定实例关联的每个密钥环中搜索密钥。 建议为更优化的请求指定密钥环标识。

注: 在没有 x-kms-key-ring 头的情况下创建的密钥的密钥环标识为: 缺省值。
有关更多信息,请参阅 分组键
返回首选项 可选。一个用于更改服务器对 POST 和 DELETE 操作响应行为的请求头。

当您将 return_preference 变量设置为 return=minimal 时,该服务会返回一条删除成功的响应。 当您将该变量设置为 return=representation 时,该服务将同时返回密钥素材和密钥元数据。

如果将 return_preference 变量设置为 return=representation,则 DELETE 请求的详细信息将包含在响应的实体正文中。

删除密钥后,它将过渡到 已取消激活 密钥状态。 在 24 小时后,如果未恢复密钥,那么密钥将过渡到 已销毁 状态。 已删除的密钥最多可恢复 30 天或直至其到期日期,之后将粉碎密钥内容并使其元数据不可访问。

以下 JSON 对象显示返回值示例。

{
"metadata": {
    "collectionType": "application/vnd.ibm.kms.key+json",
    "collectionTotal": 1
},
"resources": [
        {
            "type": "application/vnd.ibm.kms.key+json",
            "id": "02fd6835-6001-4482-a892-13bd2085f75d",
            "name": "test-root-key",
            "aliases": [
                "alias-1",
                "alias-2"
            ],
            "state": 5,
            "extractable": false,
            "crn": "crn:v1:bluemix:public:kms:us-south:a/f047b55a3362ac06afad8a3f2f5586ea:12e8c9c2-a162-472d-b7d6-8b9a86b815a6:key:02fd6835-6001-4482-a892-13bd2085f75d",
            "imported": false,
            "creationDate": "2020-03-10T20:41:27Z",
            "createdBy": "...",
            "algorithmType": "Deprecated",
            "algorithmMetadata": {
                "bitLength": "256",
                "mode": "Deprecated"
            },
            "algorithmBitSize": 256,
            "algorithmMode": "Deprecated",
            "lastUpdateDate": "2020-03-16T20:41:27Z",
            "dualAuthDelete": {
                "enabled": false
            },
            "deleted": true,
            "deletionDate": "2020-03-16T21:46:53Z",
            "deletedBy": "..."
        }
    ]
}

有关可用参数的详细说明,请参阅 Key Protect REST API 参考文档

使用 force 查询参数

Key Protect 阻止删除保护云资源的密钥,例如 Cloud Object Storage 存储区。 您可以通过对以下端点进行 DELETE 调用来强制删除密钥及其内容。

https://<region>.kms.cloud.ibm.com/api/v2/keys/<keyID_or_alias>?force=true

删除具有与其关联的注册的密钥时,将立即取消激活其密钥材料以及由该密钥加密的数据。 任何由密钥加密的数据都将变为不可访问。 删除密钥 30 天后,无法再恢复密钥,90 天后将销毁密钥材料。

如果密钥保护的是已注册的 IBM Cloud 资源,而该资源因 保留策略 (即在 IBM Cloud 资源上设置的“一次写入多次读取”(WORM)策略)而不可擦除,则强制删除密钥不会成功。 通过检查密钥 注册详细信息 中的 'preventKeyDeletion" 字段,可以验证密钥是否与不可擦除资源相关联。 然后,在删除密钥之前,必须联系账户所有者,删除与密钥关联的每个已注册 IBM Cloud 资源上的保留策略。

  1. 检索认证凭证以使用服务中的密钥

  2. 获取要强制删除的密钥的 ID。

    您可以通过创建 GET /v2/keys/ 来检索指定密钥的标识 请求,或者通过在 Key Protect 仪表板。

  3. 运行以下 curl 命令,强制删除该键及其内容。

    $ curl -X DELETE \
        "https://<region>.kms.cloud.ibm.com/api/v2/keys/<keyID_or_alias>?force=true" \
        -H "authorization: Bearer <IAM_token>" \
        -H "bluemix-instance: <instance_ID>" \
        -H "prefer: <return_preference>"
    

    根据下表替换示例请求中的变量。

描述使用Key ProtectAPI 删除密钥所需的变量。API 删除密钥所需的变量。
变量 描述
区域 必填。 区域缩写(例如 us-southeu-gb ),用于表示您的 Key Protect 实例所在的地理区域。

如需了解更多信息,请参阅 “区域服务端点”
keyID_or_alias 必填。 要删除的键的唯一标识符或别名。
IAM_token 必填。 您的 IBM Cloud 访问令牌。 在 curl 请求中包含 IAM 令牌的完整内容,包括 Bearer 值。

有关更多信息,请参阅 检索访问令牌
instance_ID 必填。 分配给您的 Key Protect 服务实例的唯一标识符。

如需了解更多信息,请参阅 “检索实例 ID”
返回首选项 可选。 一个用于更改服务器对 POST 和 DELETE 操作响应行为的请求头。

当您将 return_preference 变量设置为 return=minimal 时,该服务会返回一条删除成功的响应。 当您将该变量设置为 return=representation 时,该服务将同时返回密钥素材和密钥元数据。

如果将 return_preference 变量设置为 return=representation,则 DELETE 请求的详细信息将包含在响应的实体正文中。

删除密钥后,它将过渡到 已取消激活 密钥状态。 在 24 小时后,如果未恢复密钥,那么密钥将过渡到 已销毁 状态。 删除的密钥最多可在 30 天后或其到期日期 (以较早者为准) 恢复。 在此之后,将永久粉碎密钥内容,并且无法再访问其元数据。

以下 JSON 对象显示返回值示例。

{
    "metadata": {
        "collectionType": "application/vnd.ibm.kms.key+json",
        "collectionTotal": 1
    },
    "resources": [
        {
            "id": "2291e4ae-a14c-4af9-88f0-27c0cb2739e2",
            "type": "application/vnd.ibm.kms.key+json",
            "aliases": [
                "alias-1",
                "alias-2"
            ],
            "name": "test-root-key",
            "description": "...",
            "state": 5,
            "expirationDate": "2020-03-15T20:41:27Z",
            "crn": "crn:v1:bluemix:public:kms:us-south:a/f047b55a3362ac06afad8a3f2f5586ea:30372f20-d9f1-40b3-b486-a709e1932c9c:key:2291e4ae-a14c-4af9-88f0-27c0cb2739e2",
            "deleted": true,
            "algorithmType": "AES",
            "createdBy": "...",
            "deletedBy": "...",
            "creationDate": "2020-03-10T20:41:27Z",
            "deletionDate": "2020-03-16T21:46:53Z",
            "lastUpdateDate": "2020-03-16T20:41:27Z",
            "extractable": true
        }
    ]
}

有关可用参数的详细说明,请参阅 Key Protect REST API 参考文档

密钥清除

删除密钥时,将立即取消激活其密钥资料,并将其移至 Key Protect 服务中的后备存储器。 删除密钥 4 小时后,该密钥变为可用以手动清除。 删除密钥 30 天后,密钥将变为不可恢复,密钥材料将被销毁。 在删除密钥 90 天后,如果未手动清除,那么该密钥将有资格自动清除,并且将从 Key Protect 服务中永久除去或“硬删除”其所有关联数据。

有关删除和清除密钥的更多信息,请查看 关于删除和清除密钥

下表列出了可用于检索与已删除密钥相关的数据的 API。

列出用户可用于查看密钥及其注册详细信息的 API。
API 描述
获取密钥 检索密钥详细信息
获取密钥元数据 检索密钥元数据
获取注册 检索与密钥关联的注册列表