如何永久清除在启用了软删除的情况下创建的整个Azure密钥库?

时间:2020-09-08 08:20:51

标签: azure azure-keyvault azure-cli

在启用了软删除功能的情况下创建天蓝色的密钥库时,即使您将其删除并从头开始重新创建,该密钥库也会保留。

启用软删除后,标记为已删除资源的资源将保留指定的时间(默认为90天)。该服务还提供了一种用于恢复已删除对象的机制,实质上是撤消删除操作。

当您尝试通过UI删除密钥仓库时,也会收到此错误消息:

此密钥库上已启用软删除功能。在你之后 软删除此密钥保管库,它将作为一个保留在您的订阅中 隐藏的保险库。保留期过后您将被清除 指定。您可以使用Azure提前清除它或还原保管库 门户,Azure PowerShell或Azure CLI。请参阅此页面以供参考: https://docs.microsoft.com/azure/key-vault/key-vault-ovw-soft-delete

这导致我在开发中遇到问题。我创建了一个启用了软删除的键库(偶然),现在我想完全删除该键库,然后使用其他设置重新创建它。每次删除并重新创建它时,它都包含所有以前的设置,键等。我也无法创建名称相同且禁用了软删除的键库。它抱怨说具有该名称的密钥库已经存在(VaultAlreadyExists例外),并且设置不兼容。

keyvault docs on MSDN(Azure中上述消息的链接)提到了如何永久清除软删除,但它的委婉说法对我没有帮助:

可以通过POST永久删除,清除密钥库 对代理资源进行操作,并且需要特殊特权。

那我该如何摆脱这东西?

2 个答案:

答案 0 :(得分:2)

我随后发现,要注意的第一件事是soft delete will be enabled by default by the end of this year。因此,禁用软件删除功能现已有效。但是我仍然想完全删除我的密钥库。


在对蔚蓝的cli进行了一些挖掘之后,我偶然发现了this command

az keyvault purge --name
                  [--location]
                  [--no-wait]
                  [--subscription]

因此,如果您登录的用户具有足够的特权来运行此权限,则可以使用以下命令永久删除整个密钥库:

az keyvault purge --name keyvaultname

这将永久且不可撤销地删除密钥库及其所有键和设置。在不使用CLI或其他工具的情况下,Azure UI中似乎没有办法做到这一点。

答案 1 :(得分:0)

您也可以使用 Az PS。 根据之前的回答,这是假设您有足够的订阅权限:

Remove-AzKeyVault -VaultName kvname -InRemovedState -Force -Location "Location"

请参阅此以供参考: https://docs.microsoft.com/en-us/powershell/module/az.keyvault/remove-azkeyvault?view=azps-5.7.0

此外,我使用此参考来获取参数的正确顺序,因为我不熟悉 switch 参数及其去向。 https://github.com/Azure/azure-powershell/issues/14012