你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
如何迁移密钥工作负载
Azure 密钥保管库和 Azure 托管 HSM 不允许导出密钥,以保护密钥材料并确保密钥的 HSM 属性不可更改。
如果你希望某个密钥具有高度可移植性,最好在受支持的 HSM 中创建它,并将它导入 Azure 密钥保管库或 Azure 托管 HSM。
注意
唯一的例外情况是,如果密钥是使用密钥发布策略创建的,而该策略限制导出到你信任用来处理密钥材料的机密计算安全区 (enclave)。 这种安全密钥操作不是常规用途的密钥导出。
在多种情况下需要迁移密钥工作负载:
- 切换安全边界,例如在订阅、资源组或所有者之间切换时。
- 由于给定区域中存在合规性边界或风险而移动区域。
- 更改为新的产品/服务,例如从 Azure 密钥保管库更改为 Azure 托管 HSM,后者的安全性、隔离性与合规性比密钥保管库高级版更好。
下面介绍了将工作负载迁移到新保管库或新托管 HSM 以使用新密钥的多种方法。
使用客户管理的密钥的 Azure 服务
对于使用密钥保管库中的密钥的大多数工作负载,将密钥迁移到新位置(不同订阅或区域中的新托管 HSM 或新密钥保管库)的最有效方法是:
- 在新的保管库或托管 HSM 中创建新密钥。
- 通过将工作负载的标识添加到 Azure 密钥保管库或 Azure 托管 HSM 中的相应角色,确保工作负载可以访问此新密钥。
- 更新工作负载以使用新密钥作为客户管理的加密密钥。
- 保留旧密钥,直到不再需要该密钥最初保护的工作负载数据备份。
例如,若要将 Azure 存储更新为使用新密钥,请按照为现有存储帐户配置客户管理的密钥 - Azure 存储中的说明操作。 在将存储更新为使用新密钥之前,需要使用旧的客户管理的密钥;一旦成功将存储更新为使用新密钥,就不再需要该旧密钥。
自定义应用程序和客户端加密
对于你构建的直接使用密钥保管库中密钥加密数据的客户端加密或自定义应用程序,过程有所不同:
- 创建新的密钥保管库或托管 HSM,并创建新的密钥加密密钥 (KEK)。
- 使用新密钥重新加密由旧密钥加密的所有密钥或数据。 (如果数据直接由密钥保管库中的密钥加密,则此过程可能需要一段时间,因为必须使用新密钥读取、解密和加密所有数据。请尽可能使用信封加密来加快这种密钥轮换的速度)。
重新加密数据时,我们建议使用包含以下三个级别的密钥层次结构,使将来的 KEK 轮换变得更容易:1. Azure 密钥保管库或托管 HSM 中的密钥加密密钥;1. 主密钥;1. 从主密钥派生的数据加密密钥
- 迁移后(和删除前)验证数据。
- 请仅在不再需要与旧密钥/密钥保管库关联的数据备份之后才删除旧密钥/密钥保管库。
在 Azure 信息保护中迁移租户密钥
在 Azure 信息保护中迁移租户密钥称为“重新生成密钥”或“滚动更新密钥”。 客户管理的密钥 - AIP 租户密钥生命周期操作提供了有关如何执行此操作的详细说明。
请仅在不再需要受旧租户密钥保护的内容或文档之后才删除旧租户密钥。 如果你要迁移文档以使其受新密钥保护,必须:
- 从受旧租户密钥保护的文档中删除保护。
- 再次应用保护,这样就会使用新的租户密钥。