启用了软删除功能后,无法从Key Vault中删除机密

时间:2020-04-21 11:21:58

标签: azure azure-powershell azure-keyvault

我使用PowerShell创建了一个密钥保险库,并为Soft-DeletePurge-Protection启用了它。然后,我创建了一些秘密并将其推送到新的密钥库中。创建密钥保险库时创建的默认访问策略为我的帐户提供了除Purge之外的所有密钥,机密和证书权限。不出所料,当我尝试删除机密然后将其永久删除时,出现了Forbidden错误。然后,我去修改了访问策略,为我的帐户授予对Secrets的Purge权限,认为这将使我能够永久删除Secrets。但是,即使在授予我的帐户Purge权限之后,尝试永久删除Forbidden中的机密信息时,仍然出现InRemovedState错误。

2 个答案:

答案 0 :(得分:1)

如果仅启用Soft-Delete,则Purge权限就足够了。但是,如果您还启用了Purge-Protection,则无论您获得什么权限,都需要等待保留天数才能永久删除机密。

参考-Purge protectionPermitted purge

例外是:

  • 在库本身上启用--enable-purge-protection标志时。在这种情况下,Key Vault将等待90天,直到将原始机密对象标记为删除后,该对象才会永久删除。

默认情况下,保留期为90天,如果有必要,您可以通过powershell将其设置为7到90。 (文档说,一旦设置并保存,就无法更改,实际上可以,只需使用Powershell即可)

$r = Get-AzResource -ResourceGroupName <group-name> -ResourceType Microsoft.KeyVault/vaults -Name <keyvault-name>
$r.Properties.softDeleteRetentionInDays = "7"
$r | Set-AzResource -Force

enter image description here

答案 1 :(得分:-1)

为什么这么复杂?

Remove-AzKeyVault -VaultName MYKEYVAULT -Location EASTUS -InRemovedState