我使用PowerShell创建了一个密钥保险库,并为Soft-Delete
和Purge-Protection
启用了它。然后,我创建了一些秘密并将其推送到新的密钥库中。创建密钥保险库时创建的默认访问策略为我的帐户提供了除Purge
之外的所有密钥,机密和证书权限。不出所料,当我尝试删除机密然后将其永久删除时,出现了Forbidden
错误。然后,我去修改了访问策略,为我的帐户授予对Secrets的Purge
权限,认为这将使我能够永久删除Secrets。但是,即使在授予我的帐户Purge
权限之后,尝试永久删除Forbidden
中的机密信息时,仍然出现InRemovedState
错误。
答案 0 :(得分:1)
如果仅启用Soft-Delete
,则Purge
权限就足够了。但是,如果您还启用了Purge-Protection
,则无论您获得什么权限,都需要等待保留天数才能永久删除机密。
参考-Purge protection和Permitted 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
答案 1 :(得分:-1)
为什么这么复杂?
Remove-AzKeyVault -VaultName MYKEYVAULT -Location EASTUS -InRemovedState