当您创建启用了软删除的Azure keyvault时,即使您将其删除并从头开始重新创建,keyvault也会持续存在。
启用软删除后,标记为已删除资源的资源将保留指定的时间段(默认情况下为90天)。该服务还提供了一种用于恢复已删除对象的机制,实质上是撤消删除。
当您尝试通过UI删除keyvault时,也会收到此错误消息:
已在此密钥库上启用软删除功能。在您软删除此密钥保管库后,它将作为隐藏保管库保留在您的订阅中。在您指定的保留期限之后,它将被清除。您可以使用Azure Portal、Azure PowerShell或Azure CLI更快地清除它,或还原保管库。请参阅此页面以供指涉:https://learn.microsoft.com/azure/key-vault/key-vault-ovw-soft-delete
这给我的开发带来了问题。我创建了一个启用了软删除的keyvault(无意中),现在我想完全删除该keyvault并使用不同的设置重新创建它。每次我删除它并重新创建它时,它都包含了以前的所有设置、密钥等。我也不能创建一个keyvault,同名,软删除禁用。它会抱怨已存在同名的keyvault(VaultAlreadyExists
例外),而且设定不相容。
MSDN上的keyvault文档(Azure中的上述消息的链接)提到了如何永久清除软删除,但它稍微委婉的句子对我没有那么大帮助:
通过代理资源上的POST操作可以永久删除、清除密钥存储库,并且需要特殊权限。
那我怎么才能摆脱这东西?
3条答案
按热度按时间2o7dmzc51#
首先要注意的是,正如我后来发现的那样,soft delete will be enabled by default by any time now。因此,软删除的 * 禁用 * 现在有效地被弃用。但我还是想彻底删除我的密钥库。
在对Azure CLI做了一些挖掘之后,我偶然发现了这个命令:
字符串
因此,如果您使用具有足够权限的用户登录,您可以使用命令永久删除整个密钥库:
型
这将永久且不可撤销地删除keyvault,所有的密钥和设置。在Azure UI中似乎没有一种方法可以在不使用CLI或其他工具的情况下做到这一点。现在似乎在UI中也支持这一点,请参阅此处:
1.登录到Azure门户。
1.点击页面顶部的搜索栏。
1.在“最近的服务”下,单击“密钥库”。不要单击单个密钥保管库。
1.在屏幕顶部单击“管理已删除的保管库”选项
1.上下文窗格将在屏幕右侧打开。
1.选择您的订阅。
1.如果您的密钥库已被软删除,它将显示在右侧的上下文窗格中。
1.如果Vault太多,您可以单击上下文窗格底部的“加载更多”或使用CLI或PowerShell获取结果。
1.找到要恢复或清除的Vault后,请选中它旁边的复选框。
1.如果要恢复密钥保管库,请选择上下文窗格底部的恢复选项。
1.如果要永久删除密钥保管库,请选择清除选项。
fiei3ece2#
你也可以使用PS。根据前面的回答,这是假设您对订阅有足够的权限:
字符串
请参阅以下内容以供参考:https://learn.microsoft.com/en-us/powershell/module/az.keyvault/remove-azkeyvault?view=azps-5.7.0
另外,我使用这个参考来获得参数的正确顺序,因为我不熟悉开关参数以及它们的位置。https://github.com/Azure/azure-powershell/issues/14012的
hgncfbus3#
截至2023年7月。命令
字符串
会做的工作。您可以转到Azure Cloud Shell,然后键入命令。如果您的用户有权限,它将工作。