本文介绍如何在备份保管库中使用客户管理的密钥(CMK)使用 Azure 备份来加密备份数据。
Azure 备份允许使用客户管理的密钥(CMK)而不是默认平台管理的密钥(PMK)加密备份数据。 将这些密钥存储在 Azure 密钥保管库 中。
备份密钥可以不同于源的密钥。 基于 AES 256 的数据加密密钥 (DEK) 会保护数据,密钥加密密钥 (KEK) 会保护 DEK。 这样就可以完全控制数据和密钥。
若要启用加密,请为备份保管库的托管标识授予访问密钥保管库中的加密密钥的权限。 可以随时更改密钥。
注意
加密设置和 CMK 可互换使用。
密钥保管库和托管 HSM 的密钥要求
在备份保管库上启用加密之前,请查看以下要求:
加密设置使用 Azure 密钥保管库 或托管硬件安全模块 (HSM) 密钥,以及备份保管库托管标识的详细信息。
备份保管库的托管标识需要:
- 如果密钥保管库使用基于角色的访问控制 (RBAC) 配置,而后者又基于标识和访问管理 (IAM),则会分配内置加密服务加密用户角色。
- “获取”、“包装”和“解包”权限(如果密钥保管库使用的是基于访问策略的配置)。
- 已通过本地 RBAC 获得对密钥的“获取”、“包装”和“解包”权限(如果使用的是托管 HSM)。 了解详细信息。
确保拥有有效的密钥保管库密钥并已启用。 请勿使用已过期或禁用的密钥,因为它不能用于静态加密,并将导致备份和还原操作失败。 密钥保管库术语还指示托管 HSM(如果你之前没有注意到的话)。
必须为密钥保管库启用软删除和清除保护。
加密设置仅支持大小为 2,048、3,072 和 4,096 的 Azure 密钥保管库 RSA 和 RSA-HSM 密钥。 详细了解密钥。 在考虑加密设置的密钥保管库区域之前,请参阅密钥保管库灾难恢复方案以获取区域故障转移支持。
使用客户管理的密钥进行加密的注意事项
在备份保管库上启用加密之前,请查看以下注意事项:
对备份保管库启用通过 CMK 加密后,无法改回使用 PMK(默认)。 可以根据要求更改加密密钥或托管标识。
CMK 将应用于 Azure 备份存储保管库和保管库存档层。 但不适用于操作层。
当前不支持跨资源组和订阅移动 CMK 加密的备份保管库。
在备份保管库上启用加密设置后,请勿禁用或拆离托管标识,或者移除用于加密设置的密钥保管库权限。 这些操作会导致备份、还原、分层和还原点过期作业失败。 存储在备份保管库中的数据将产生费用,直到:
- 还原密钥保管库权限。
- 如果对加密设使用系统分配的标识,可以重新启用系统分配的标识、向其授予密钥保管库权限并更新加密设置。
- 重新附加托管标识,确保它有权访问密钥保管库和密钥以使用新的用户分配的标识。
加密设置将使用 Azure 密钥保管库的密钥和备份保管库的托管标识详细信息。
如果删除了正在使用的密钥或密钥保管库,或者访问权限被撤销且无法还原,则你将失去对备份保管库中存储的数据的访问权限。 此外,请确保你具有提供和更新托管标识、备份保管库和密钥保管库详细信息所需的适当权限。
使用用户分配的托管标识进行 CMK 加密的保管库不支持将专用终结点用于 Azure 备份。
目前,用于 CMK 加密的用户分配的托管标识不支持限制访问特定网络的密钥保管库。
在订阅层注册
Microsoft.DataProtection资源提供者以配置加密设置。
在创建保管库时使用客户管理的密钥启用加密
创建备份保管库时,可以使用 CMK 对备份启用加密。 了解如何创建备份保管库。
选择客户端:
- Azure 门户
- PowerShell
- CLI
若要启用加密,请执行以下步骤:
在 Azure 门户中,转到“备份保管库”。
在“保管库属性”选项卡上,选择“添加标识”。
在“选择用户分配的托管标识”边栏选项卡上,从列表中选择一个要用于加密的托管标识,然后选择“添加”。
对于“加密类型”,请选择“使用客户管理的密钥”。
若要指定用于加密的密钥,请选择相应的选项。
要启用用于备份保管库的加密密钥版本的自动轮换,请选择“从密钥保管库中选择”。 也可通过选择“输入密钥 URI”来从密钥 URI 中移除版本组件。 详细了解自动轮换。
提供加密密钥的 URI。 也可以浏览并选择密钥。
添加用户分配的托管标识以管理使用 CMK 进行的加密。
在创建保管库期间,只能将用户分配的托管标识用于 CMK。
要将 CMK 用于系统分配的托管标识,请在创建保管库后更新保管库属性。
若要在备份存储基础结构上启用加密,请选择“基础结构加密”。
在创建期间以及使用客户管理的密钥 (CMK) 期间,只能在新保管库上启用基础结构加密。
添加标记(可选)并继续创建保管库。
更新备份保管库属性以使用客户管理的密钥进行加密
在以下情况下,你可以修改备份保管库的加密设置:
- 为现有的保管库启用客户管理的密钥。 对于备份保管库,可以在将相应项保护到保管库之前或之后启用 CMK。
- 更新“加密设置”中的详细信息,例如托管标识或加密密钥。
让我们为一个现有保管库启用客户管理的密钥。
若要配置保管库,请按顺序执行以下操作:
为备份保管库启用托管标识。
为备份保管库分配访问 Azure 密钥保管库中的加密密钥的权限。
在 Azure 密钥保管库中启用软删除和清除保护。
将加密密钥分配给备份保管库。
以下各部分详细讨论了每一项操作。
为备份保管库启用托管标识
Azure 备份使用备份保管库的系统分配的和用户分配的托管标识访问存储在 Azure 密钥保管库中的加密密钥。 可以选择要使用的托管标识。
注意
启用托管标识后,不得将其禁用(即使是暂时禁用)。 禁用托管标识可能会导致行为不一致。
由于安全原因,不能在单个请求中同时更新密钥保管库密钥 URI 和托管标识。 请一次更新一个属性。
为保管库启用系统分配的托管标识
选择客户端:
- Azure 门户
- PowerShell
- CLI
要为备份保管库启用系统分配的托管标识,请按照以下步骤执行操作:
转到你的备份保管库>“标识”。
选择“系统分配”选项卡。
将“状态”更改为“开”。
选择“保存”,为保管库启用标识。
之前的步骤会生成一个对象 ID,这是保管库的系统分配的托管标识。
将用户分配的托管标识分配给保管库
要为备份保管库分配用户分配的托管标识,请按照以下步骤执行操作:
转到你的备份保管库>“标识”。
选择“用户分配(预览版)”选项卡。
选择“+ 添加”以添加用户分配的托管标识。
在“添加用户分配的托管标识”窗格中,选择标识所对应的订阅。
从列表中选择标识。 你还可以按标识或资源组的名称进行筛选。
选择“添加”以完成标识分配。
注意
尚不支持将限制对特定网络访问的密钥保管库与用户分配的托管标识一起用于 CMK 加密。
向备份保管库的托管标识(系统或用户分配)分配权限以访问 Azure 密钥保管库中的加密密钥
选择客户端:
- Azure 门户
- PowerShell
- CLI
你需要允许备份保管库的托管标识访问包含加密密钥的密钥保管库。
场景:密钥保管库已启用访问控制 (IAM) 配置
执行以下步骤:
- 转到 你的密钥保管库>“访问控制”,然后选择“添加角色分配”。
- 从“工作职能”角色中选择“密钥保管库 加密服务加密用户”角色。
- 选择“下一步”“将访问权限分配给”>“托管标识”“选择成员”。>>
- 选择你的备份保管库的托管标识。
- 选择“下一步”并进行分配。
场景:密钥保管库已启用访问策略配置
执行以下步骤:
转到 你的密钥保管库>“访问策略”,然后选择“+创建”。
指定要允许对密钥执行的操作。 在“密钥权限”下,选择“获取”、“列表”、“解包密钥”和“包装密钥”操作。 然后选择“下一步”。
在“主体”选项卡上,在搜索框中使用保管库名称或托管标识搜索保管库。 选择显示的保管库,然后选择“下一步”。
选择Add来添加新的访问策略。
选择“保存”,以保存对密钥保管库的访问策略所做的更改。
如果使用用户分配的标识,则必须向其分配相同的权限。
你还可向包含上述权限的备份保管库分配 RBAC 角色,例如密钥保管库加密主管角色。 此角色可能包含其他权限。
在 Azure 密钥保管库中启用软删除和清除保护
需要在存储加密密钥的密钥保管库中启用软删除和清除保护。
选择客户端:
- Azure 门户
- PowerShell
- CLI
可从 Azure 密钥保管库 界面设置这些属性,如以下屏幕截图中所示。 也可在创建密钥保管库时设置这些属性。 详细了解这些 密钥保管库 属性。
将加密密钥分配给备份保管库。
在选择保管库的加密密钥之前,请确保已成功执行以下操作:
- 启用备份保管库的托管标识,并为其分配所需的权限。
- 为密钥保管库启用软删除和清除保护。
注意
如果使用新的密钥保管库信息对“加密设置”中当前的密钥保管库详细信息进行了更新,则用于加密设置的托管标识必须保留对原始密钥保管库的访问权限以及“获取”和“展开”权限,并且密钥应处于“已启用”状态。 必须拥有此访问权限,才能执行从上一个密钥到新密钥的密钥轮换。
若要分配密钥,请执行以下步骤:
转到你的备份保管库>“属性”。
在“加密设置”下,选择“更新”。
在“加密设置”边栏选项卡中,选择“使用自己的密钥”,然后使用以下选项之一指定密钥。 请务必使用处于启用状态和活动状态的 RSA 密钥。
选择“输入密钥 URI”。 在“密钥 URI”中,输入对此备份保管库中的数据加密想要使用的密钥的 URI。 你还可以从密钥保管库中的相应密钥获取此密钥 URI。
请务必正确复制密钥 URI。 建议使用提供的带密钥标识符的“复制到剪贴板”按钮。
当你尝试更新加密设置但更新操作由于内部错误而失败时,加密设置将会在更新后变得不一致,因此需要加以注意。 在这种情况下,请检查加密设置详细信息,确保它们正确无误。 例如,“更新加密设置”操作可使用附加到保管库的现有托管标识再次运行。 如果加密设置详细信息相同,则更新作不会受到影响。
此外,如果你禁用或分离正在“加密设置”中使用的托管标识,除非你重新启用系统分配的标识(如果过去已使用),否则加密设置将变为“不一致”状态,,请授予所需的 密钥保管库 权限并再次执行加密设置更新操作。 对于用户分配的标识,重新附加标识时,如果 密钥保管库 权限存在,则会自动还原加密设置状态。
使用包含版本部分的完整密钥 URI 指定加密密钥时,密钥不会自动轮换。 需要手动更新密钥,方法是在需要时指定新密钥或版本。 或者,可移除密钥 URI 的版本组件来自动轮换密钥版本。
选择“从密钥保管库中选择”。 在“密钥选取器”窗格上,浏览并从密钥保管库中选择密钥。
如果使用“密钥选取器”窗格指定加密密钥,则每当启用密钥的新版本时,都将自动轮换密钥版本。 详细了解如何启用加密密钥的自动轮换。
选择更新。
跟踪“通知”加密密钥分配的进度和状态。
更新加密设置
你随时都可以更新加密设置。 每当想要使用新的密钥 URI 时,请确保现有密钥保管库仍有权访问托管标识,并确保密钥有效。 否则,更新操作将会失败。
要用于加密的托管标识需要具有适当的权限。
备份到通过客户管理的密钥加密的保管库
在配置备份保护之前,请确认已成功执行以下操作:
- 创建了备份保管库。
- 启用了备份保管库的系统分配的托管标识,或为保管库分配了用户分配的托管标识。
- 向备份保管库分配了权限(或用户分配的托管标识),能够访问密钥保管库中的加密密钥。
- 为密钥保管库启用了软删除和清除保护。
- 为备份保管库分配了有效的加密密钥。
配置通过 CMK 加密的备份保管库并对其执行备份的过程,此过程与配置使用 PMK 的保管库并对其执行备份的过程相同。 体验不变。
专用终结点支持
可以使用保管库的系统分配托管标识将 Azure 密钥保管库与专用终结点 (PE) 配合使用。
如果禁用了 Azure 密钥保管库的公用网络访问,则访问限制将会阻止你在启用专用终结点的网络计算机外部使用 Azure 门户选择“加密设置”边栏选项卡上的密钥保管库和密钥。 但可以使用“密钥保管库密钥 URI”在“加密设置”中提供密钥保管库密钥详细信息。
排查加密设置的操作错误
本部分列出了备份保管库加密可能遇到的各种故障排除场景。
备份、还原和后台操作失败
原因:
原因 1:如果备份保管库加密设置存在问题,例如已从加密设置的托管标识中移除了密钥保管库权限、禁用了系统分配的标识,或从用于加密设置的备份保管库中分离/删除了托管标识,那么备份和还原作业将会失败。
原因 2:还原点分层和还原点过期作业失败时不会在 Azure 门户或其他接口(例如 REST API 或 CLI)中显示错误。 这些操作将继续失败并产生成本。
建议的操作:
建议 1:还原权限,并更新有权访问密钥保管库的托管标识详细信息。
建议 2:将所需的加密设置还原到备份保管库。
缺少对托管标识的权限
错误代码:UserErrorCMKMissingMangedIdentityPermissionOnKeyVault
原因:在下述情况中会发生此错误:
- 用于加密设置的托管标识无权访问密钥保管库。 此外,如果在更新加密设置或从备份保管库禁用或拆离托管标识后移除了访问权限,则备份或还原作业可能会失败并出现此错误代码。
- 你使用的是非 RSA 密钥 URI。
建议的操作:确保选择用于加密设置的托管标识具有所需的权限,并且密钥为 RSA 类型。 然后重试该操作。
保管库身份验证失败
错误代码:UserErrorCMKKeyVaultAuthFailure
原因:加密设置托管标识没有访问密钥保管库或密钥所需的权限。 备份保管库托管标识(系统分配或用户分配的用于加密设置的托管标识)应对密钥保管库具有以下权限:
如果密钥保管库使用基于 IAM 的 RBAC 配置,则需要“密钥保管库 加密服务加密用户”内置角色权限。
如果使用访问策略,则需要“获取”、“包装”和“解包”权限。
密钥保管库和密钥不存在,并且无法通过网络设置访问 Azure 备份服务。
建议的操作:检查密钥保管库访问策略并相应地授予权限。
保管库删除失败
错误代码:CloudServiceRetryableError
原因:如果备份保管库加密设置出现问题(例如,已从加密设置的托管标识中删除 密钥保管库/MHSM 权限、禁用的系统分配标识、从用于加密设置的备份保管库分离/删除托管标识或删除密钥保管库/MHSM 密钥),则保管库删除可能会失败。
建议的操作:要解决此问题,请:
- 确保用于“加密设置”的托管标识仍然有权访问密钥保管库/MHSM。 还原它们,然后再继续删除保管库。
- 重新附加/启用托管标识并分配所需的密钥保管库/MHSM 权限。
- 如果删除了密钥保管库密钥,则保管库删除可能会失败。 但如果要从软删除状态恢复已删除的密钥,请确保对密钥保管库/MHSM 上的托管标识具有所需的权限,然后重试删除备份保管库操作。
验证错误代码
Azure 备份会在备份保管库上应用 CMK 时验证所选 Azure 密钥保管库。 如果密钥保管库没有所需的配置设置(“已启用软删除”且“已启用清除保护”),将显示以下错误代码:
UserErrorCMKPurgeProtectionNotEnabledOnKeyVault
错误代码:UserErrorCMKPurgeProtectionNotEnabledOnKeyVault
原因:未在密钥保管库上启用软删除。
建议的操作:在密钥保管库上启用软删除,然后重试该操作。
UserErrorCMKSoftDeleteNotEnabledOnKeyVault
错误代码:UserErrorCMKSoftDeleteNotEnabledOnKeyVault
密钥保管库原因:未在密钥保管库上启用清除保护。
建议的操作:在密钥保管库上启用清除保护,然后重试该操作。
后续步骤
- Azure 备份中安全功能的概述。
- 使用客户管理的密钥加密备份数据
- 静态数据加密
- Azure 存储 对静止数据的加密