IBM Cloud Docs
使用单一授权删除密钥

使用单一授权删除密钥

如果您是 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 属性,那么他们可以在 4 小时后清除密钥。 请查看 在控制台中清除密钥 以获取更多信息。

在控制台中清除密钥

如果在 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 删除密钥所需的变量。
变量 描述
区域 需要。 地区缩写,如 us-south 或 eu-gb,表示Key Protect实例所在的地理区域

For more information, see 区域服务终端.
keyID_or_alias 需要。 要删除的密钥的唯一标识符或别名。
IAM_token 需要。 您的 IBM Cloud 访问令牌。 在curl请求中包含IAM令牌的全部内容,包括承载器值

For more information, see 读取访问令牌.
instance_ID 需要。 分配给Key Protect服务实例的唯一标识符

For more information, see 检索实例 ID.
key_ring_ID 可选。 密钥所属的密钥环的唯一标识。

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

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

When you set the return_preference variable to return=minimal, the service returns a successful deletion response. 将变量设置为 return=representation 时,服务会同时返回密钥材料和密钥元数据。

If the return_preference variable is set to return=representation, the details of the DELETE request are returned in the response entity-body.

删除密钥后,它将过渡到 已取消激活 密钥状态。 在 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 ProtectREST API 参考文档。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实例所在的地理区域

For more information, see 区域服务终端.
keyID_or_alias 需要。 要删除的密钥的唯一标识符或别名。
IAM_token 需要。 您的 IBM Cloud 访问令牌。 在curl请求中包含IAM令牌的全部内容,包括承载器值

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

For more information, see 检索实例 ID.
返回首选项 可选。 改变 POST 和 DELETE 操作服务器行为的标头

When you set the return_preference variable to return=minimal, the service returns a successful deletion response. 将变量设置为 return=representation 时,服务会同时返回密钥材料和密钥元数据。

If the return_preference variable is set to return=representation, the details of the DELETE request are returned in the response entity-body.

删除密钥后,它将过渡到 已取消激活 密钥状态。 在 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 ProtectREST API 参考文档。REST API 参考文档

密钥清除

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

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

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

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