使用双重授权删除密钥
您可以使用 IBM Cloud® Hyper Protect Crypto Services 通过使用双重授权过程来安全地删除根密钥或标准密钥。
在删除密钥之前,请确保您了解 删除和清除密钥的概念,并查看 注意事项。
使用双重授权删除密钥的注意事项
删除具有 双重授权策略 需要来自两个用户的授权。 与 Hyper Protect Crypto Services 密钥管理服务 API,您可以通过以下方式提供第一个授权: 设置用于删除的键。 然后,另一个用户通过使用 UI 或密钥管理服务 API 来删除密钥,从而提供第二个授权。
在使用双重授权删除密钥之前:
- 确定谁可以授权删除 Hyper Protect Crypto Services 资源。 要使用双重授权,请确保标识可设置要删除的密钥的用户,以及可删除该密钥的其他用户。 具有 写入者 或 管理者 访问策略的用户可以设置要删除的密钥。 具有_经理_访问策略可以删除密钥。
- 计划在 7 天的等待时间内删除密钥。 当第一个用户授权密钥进行删除时,Hyper Protect Crypto Services 会在密钥上设置 7 天的等待周期。 在此期间,密钥保持处于 活动状态,并且允许对密钥执行所有密钥操作。 要完成删除,具有 Manager 访问策略的第二个用户可以使用 UI 或 API 来删除密钥。
- 在删除密钥 90 天后,密钥及其关联数据变为不可访问。 删除密钥时,可以在删除后 30 天内复原该密钥。 您最多可以检索 90 天内的关联数据,例如密钥元数据,注册和策略。 90 天后,密钥将有资格自动清除,并且其关联数据将从实例中永久除去。
使用 UI 授权删除密钥
步骤 1. 授权删除密钥
在 对实例启用双重授权 或对密钥启用 双重授权 之后,您可以提供第一个使用 UI 删除密钥的授权。
- 登录 UI。
- 去菜单>资源列表查看您的资源列表。
- 从 IBM Cloud 资源列表,选择 Hyper Protect Crypto Services 的已供应实例。
- 在 KMS 密钥页面,使用按键表来浏览您的服务中的密钥。
- 点击操作图标
打开要删除的键的选项列表。
- 从选项菜单中,单击 调度密钥删除 并查看密钥的关联资源。
- 输入要删除的密钥的名称,然后单击 调度密钥删除。
- 请与第二个核准人联系以完成密钥的删除。
步骤 2. 删除密钥
要删除密钥,第二个核准人必须具有实例或密钥的 管理者 访问策略,才能授权密钥进行删除。
-
在“KMS 密钥”页面的 密钥 表中,您可以找到有权使用以下指示符进行删除的密钥:
Set for deletion
列的值为True
。 授权到期时间显示在Deletion expiration
列中。- 时钟 图标
显示在
State
列中。 将鼠标悬停在图标上以查看删除到期日期。
-
要删除密钥,请遵循 使用 UI 删除密钥 中的指示信息。
Hyper Protect Crypto Services 设置在您提供删除密钥的第一个授权后开始的 7 天等待周期。 在此期间 7-day-period,键保持在 允许对密钥执行 活动状态 和所有密钥操作。 如果第二个用户未执行任何操作,并且 7 天的时间段到期,那么必须 重新启动双重授权过程 以删除密钥。
使用 API 授权删除密钥
步骤 1. 授权删除密钥
在启用双重授权 对于实例 或 用于密钥 之后,您可以通过对以下端点进行 POST
调用来提供删除密钥的第一个授权。
https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys/<key_ID>/actions/setKeyForDeletion
-
要设置要删除的密钥,必须为您分配实例或密钥的 管理器 或 写程序 访问策略。 了解 IAM 角色如何映射到 Hyper Protect Crypto Services 操作,检出 服务访问角色。
-
复制要设置或授权删除的密钥的标识。
-
提供第一次授权来删除密钥。
curl -X POST \ 'https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys/<key_ID>/actions/setKeyForDeletion' \ -H 'accept: application/vnd.ibm.kms.key_action+json' \ -H 'authorization: Bearer <IAM_token>' \ -H 'bluemix-instance: <instance_ID>' \ -H 'content-type: application/vnd.ibm.kms.key_action+json'
根据下表替换示例请求中的变量。
表 1. 描述设置用于删除的键所需的变量 变量 描述 region
必需。 地区缩写,例如 us-south
或者eu-de
,代表您的Hyper Protect Crypto Services实例驻留。 有关更多信息,请参阅区域服务端点。key_ID
必需。 您要删除的根密钥的唯一标识符。 IAM_token
必需。 您的 IBM Cloud 访问令牌。 在 cURL 请求中包含 IAM
令牌的完整内容,包括 Bearer 值。 有关详细信息,请参阅For more information, see 检索访问令牌。instance_ID
必需。 分配给您的Hyper Protect Crypto Services实例。 有关详细信息,请参阅For more information, see 检索实例 ID。 成功的请求将返回 HTTP
204 No Content
响应,这指示您的密钥已授权删除。 具有 现在可以使用 Manager 访问策略 使用 UI 或密钥管理服务 API 删除密钥。如果需要阻止删除已授权删除的密钥,可以通过调用来除去现有授权
POST /api/v2/keys/<key_ID>/actions/unsetKeyForDeletion
.
步骤 2. 删除密钥
设置要删除的密钥后,具有 Manager 访问策略的第二个用户可以安全地删除该密钥。
Hyper Protect Crypto Services 设置在您提供删除密钥的第一个授权后开始的 7 天等待周期。 在此期间 7-day-period,键保持在 允许对密钥执行 活动状态 和所有密钥操作。 如果第二个用户未执行任何操作,并且 7 天的时间段到期,那么必须 重新启动双重授权过程 以删除密钥。
要删除密钥和内容,请按照 使用 API 删除密钥 中的指示信息对服务端点进行 DELETE
调用。
除去现有授权
如果需要在 7 天等待期到期之前取消密钥的授权,那么可以通过对以下端点进行 POST
调用来除去现有授权。
https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys/<key_ID>/actions/unsetKeyForDeletion
-
要除去删除密钥的权限,必须为您分配实例或密钥的 管理者 或 写程序 访问策略。 要了解 IAM 角色如何映射到 Hyper Protect Crypto Services 操作,请查看 服务访问角色。
-
复制要取消设置或取消授权以进行删除的密钥的标识。
-
移除现有的授权以删除密钥。
curl -X POST \ 'https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys/<key_ID>/actions/setKeyForDeletion' \ -H 'accept: application/vnd.ibm.kms.key_action+json' \ -H 'authorization: Bearer <IAM_token>' \ -H 'bluemix-instance: <instance_ID>' \ -H 'content-type: application/vnd.ibm.kms.key_action+json'
根据下表替换示例请求中的变量。
表 2. 描述取消设置要删除的密钥所需的变量 变量 描述 region
必需。 地区缩写,例如 us-south
或者eu-de
,代表您的Hyper Protect Crypto Services实例驻留。 有关更多信息,请参阅区域服务端点。key_ID
必需。 您要删除的根密钥的唯一标识符。 IAM_token
必需。 您的 IBM Cloud 访问令牌。 在 cURL 请求中包含 IAM
令牌的完整内容,包括 Bearer 值。 有关详细信息,请参阅For more information, see 检索访问令牌。instance_ID
必需。 分配给您的Hyper Protect Crypto Services实例。 有关详细信息,请参阅For more information, see 检索实例 ID。 成功的请求将返回 HTTP
204 No Content
响应,这指示您的密钥不再有权删除。 如果需要重新启动双重授权过程,可以发出另一个授权 到 设置用于删除的键。
下一步
- 要复原先前删除的密钥,请检出 复原密钥。
- 要创建另一根密钥,请查看 创建根密钥。
- 要删除服务实例,请检出 删除服务实例
- 要了解有关以编程方式管理密钥的更多信息,查看Hyper Protect Crypto Services密钥管理服务 API 参考文档。