带软删除和清除保护功能的 Azure Key Vault 恢复管理
本文介绍了 Azure Key Vault 的两项恢复功能:软删除和清除保护。 本文档概述了这两项功能,并演示了如何通过 Azure 门户、Azure CLI 和 Azure PowerShell 对其进行管理。
重要
如果密钥保管库未启用软删除保护,则删除密钥会将它永久删除。 强烈建议客户通过 Azure Policy 为其保管库启用软删除强制实施功能。
有关 Key Vault 的详细信息,请参阅
Azure 订阅 - 创建试用版订阅
Key Vault - 可以使用 Azure 门户、Azure CLI 或 Azure PowerShell 进行创建
用户需要具有以下权限(在订阅级别)才能对软删除的保管库执行操作:
权限 说明 Microsoft.KeyVault/locations/deletedVaults/read 查看软删除的密钥保管库的属性 Microsoft.KeyVault/locations/deletedVaults/purge/action 清除软删除的密钥保管库 Microsoft.KeyVault/locations/operationResults/read 检查保管库的清除状态 密钥保管库参与者 恢复软删除的保管库
软删除和清除保护是两项不同的密钥保管库恢复功能。
“软删除”旨在防止意外删除密钥保管库以及存储在密钥保管库中的密钥、机密以及证书。 可以将软删除视为回收站。 密钥保管库或密钥保管库对象在删除后,会在可供用户配置的保持期内或默认的 90 天内保持可恢复状态。 处于软删除状态的密钥保管库也可以被清除(永久删除),这样你就可以重新创建同名的密钥保管库和密钥保管库对象。 恢复和删除密钥保管库与对象都需要提升的访问策略权限。 软删除一旦启用就无法禁用。
必须注意的是,密钥保管库名称是全局独一无二的,因此你无法创建与处于软删除状态的密钥保管库同名的密钥保管库。 类似地,密钥、机密和证书的名称在密钥保管库中是独一无二的。 你无法使用处于软删除状态的机密、密钥或证书的名称创建另一个机密、密钥或证书。
“清除保护”旨在防止恶意内部成员删除你的密钥保管库、密钥、机密和证书。 可以将它视为一个带有基于时间的锁的回收站。 你可以在可配置的保持期内随时恢复项。 在保持期结束之前,你将无法永久删除或清除密钥保管库。 保持期结束后,系统会自动清除密钥保管库或密钥保管库对象。
备注
“清除保护”旨在使管理员角色或权限不能重写、禁用或绕过清除保护。 启用清除保护后,任何人(包括 Microsoft)都不能禁用或重写它。 这意味着,在重复使用密钥保管库名称之前,必须恢复已删除的密钥保管库或等待保持期结束。
有关软删除的详细信息,请参阅 Azure Key Vault 软删除概述。
验证密钥保管库是否已启用软删除
Get-AzKeyVault -VaultName "ContosoVault"
删除密钥保管库
Remove-AzKeyVault -VaultName 'ContosoVault'
列出所有已软删除的密钥保管库
Get-AzKeyVault -InRemovedState
恢复已软删除的密钥保管库
Undo-AzKeyVaultRemoval -VaultName ContosoVault -ResourceGroupName ContosoRG -Location chinanorth
清除已软删除的密钥保管库(警告!此操作会永久删除你的密钥保管库)
Remove-AzKeyVault -VaultName ContosoVault -InRemovedState -Location chinanorth
对密钥保管库启用清除保护
Update-AzKeyVault -VaultName ContosoVault -ResourceGroupName ContosoRG -EnablePurgeProtection
授予恢复和清除证书所需的权限
Set-AzKeyVaultAccessPolicy -VaultName ContosoVault -UserPrincipalName user@contoso.com -PermissionsToCertificates recover,purge
删除证书
Remove-AzKeyVaultCertificate -VaultName ContosoVault -Name 'MyCert'
列出密钥保管库中所有已删除的证书
Get-AzKeyVaultCertificate -VaultName ContosoVault -InRemovedState
恢复处于已删除状态的证书
Undo-AzKeyVaultCertificateRemoval -VaultName ContosoVault -Name 'MyCert'
清除已软删除的证书(警告!此操作会永久删除你的证书)
Remove-AzKeyVaultcertificate -VaultName ContosoVault -Name 'MyCert' -InRemovedState
授予恢复和清除密钥所需的权限
Set-AzKeyVaultAccessPolicy -VaultName ContosoVault -UserPrincipalName user@contoso.com -PermissionsToKeys recover,purge
删除密钥
Remove-AzKeyVaultKey -VaultName ContosoVault -Name 'MyKey'
列出密钥保管库中所有已删除的密钥
Get-AzKeyVaultKey -VaultName ContosoVault -InRemovedState
恢复已软删除的密钥
Undo-AzKeyVaultKeyRemoval -VaultName ContosoVault -Name ContosoFirstKey
清除已软删除的密钥(警告!此操作会永久删除你的密钥)
Remove-AzKeyVaultKey -VaultName ContosoVault -Name ContosoFirstKey -InRemovedState
授予恢复和清除机密所需的权限
Set-AzKeyVaultAccessPolicy -VaultName ContosoVault -UserPrincipalName user@contoso.com -PermissionsToSecrets recover,purge
删除名为 SQLPassword 的机密
Remove-AzKeyVaultSecret -VaultName ContosoVault -Name SQLPassword
列出密钥保管库中所有已删除的机密
Get-AzKeyVaultSecret -VaultName ContosoVault -InRemovedState
恢复处于已删除状态的机密
Undo-AzKeyVaultSecretRemoval -VaultName ContosoVault -Name SQLPassword
清除处于已删除状态的机密(警告!此操作会永久删除你的密钥)
Remove-AzKeyVaultSecret -VaultName ContosoVault -Name SQLPassword -InRemovedState