托管 HSM 软删除和清除保护

本文介绍了托管 HSM 的两项恢复功能:软删除和清除保护。 文中概述了这两项功能,并演示了如何通过 Azure CLI 和 Azure PowerShell 对其进行管理。

如需更多详细信息,请参阅托管 HSM 概述

先决条件

软删除和清除保护是什么?

软删除和清除保护均属于恢复功能。

软删除旨在防止意外删除 HSM 和密钥。 软删除的功能与回收站类似。 删除 HSM 或密钥后,相应内容在可配置的保持期或默认的 90 天内会保持可恢复状态。 软删除状态下的 HSM 和密钥也可清除,此清除代表它们将被永久删除。 清除后,你可以重新创建与已清除项同名的 HSM 和密钥。 恢复和删除 HSM 及密钥都需要特定的角色分配。 无法禁用软删除。

注意

即使基础资源处于已删除状态,由于其仍保持已分配给 HSM 的状态,因此 HSM 资源在处于该状态时仍将按小时产生费用。

托管 HSM 名称在每种云环境中都是全局唯一的。 因此,对于以软删除状态存在的 HSM,无法创建与之同名的托管 HSM。 同样,HSM 中的密钥名称也是唯一的。 对于软删除状态中已存在的密钥,无法创建与之同名的密钥。

如需更多详细信息,请参阅 托管 HSM 软删除概述

清除保护旨在防止怀有恶意的内部人员删除 HSM 和密钥。 此功能像被时间锁定的回收站。 你可以在可配置的保持期内随时恢复项。 在保持期结束之前,你无法永久删除或清除 HSM 或密钥。 保持期结束时,HSM 或密钥将自动清除。

注意

不论是管理员角色还是拥有何种权限都不能替代、禁用或绕过清除保护。 若启用清除保护,任何人(包括 Microsoft)都不能禁用或替代清除保护。 因此,你必须恢复已删除的 HSM 或等待保持期结束,才能重复使用 HSM 名称。

管理密钥和托管 HSM

托管 HSM (CLI)

  • 检查托管 HSM 的软删除和清除保护状态:

    az keyvault show --subscription {SUBSCRIPTION ID} -g {RESOURCE GROUP} --hsm-name {HSM NAME}
    
  • 删除 HSM:

    az keyvault delete --subscription {SUBSCRIPTION ID} -g {RESOURCE GROUP} --hsm-name {HSM NAME}
    

    此操作可恢复,因为软删除默认为启用状态。

  • 列出所有软删除的 HSM:

    az keyvault list-deleted --subscription {SUBSCRIPTION ID} --resource-type hsm
    
  • 恢复软删除的 HSM:

    az keyvault recover --subscription {SUBSCRIPTION ID} --hsm-name {HSM NAME} --location {LOCATION}
    
  • 清除软删除的 HSM:

    az keyvault purge --subscription {SUBSCRIPTION ID} --hsm-name {HSM NAME} --location {LOCATION}
    

    警告

    此操作将永久删除 HSM。

  • 若要在 HSM 上启用清除保护,可使用:

    az keyvault update-hsm --subscription {SUBSCRIPTION ID} -g {RESOURCE GROUP} --hsm-name {HSM NAME} --enable-purge-protection true
    

密钥 (CLI)

  • 删除密钥:

    az keyvault key delete --subscription {SUBSCRIPTION ID} --hsm-name {HSM NAME} --name {KEY NAME}
    
  • 列出已删除的密钥:

    az keyvault key list-deleted --subscription {SUBSCRIPTION ID} --hsm-name {HSM NAME}
    
  • 恢复已删除的密钥:

    az keyvault key recover --subscription {SUBSCRIPTION ID} --hsm-name {HSM NAME} --name {KEY NAME}
    
  • 清除软删除的密钥:

    az keyvault key purge --subscription {SUBSCRIPTION ID} --hsm-name {HSM NAME} --name {KEY NAME}
    

    警告

    此操作将永久删除密钥。

后续步骤