Lia*_*iam 9 azure azure-cli azure-keyvault
当您创建启用了软删除的 azure 密钥保管库时,即使您删除它并从头开始重新创建密钥保管库,该密钥保管库仍然存在。
启用软删除后,标记为已删除资源的资源会保留指定的时间段(默认为 90 天)。该服务还提供了一种用于恢复已删除对象的机制,实质上是撤消删除。
当您尝试通过 UI 删除密钥库时,您也会收到此错误消息:
此密钥保管库已启用软删除功能。软删除此密钥保管库后,它将作为隐藏保管库保留在您的订阅中。它将在您指定的保留期后清除。可以使用 Azure 门户、Azure PowerShell 或 Azure CLI 更快地清除它或还原保管库。请参阅此页面以供参考:https : //docs.microsoft.com/azure/key-vault/key-vault-ovw-soft-delete
这导致我在开发中出现问题。我创建了一个启用了软删除的密钥保管库(偶然),现在我想完全删除该密钥保管库并使用不同的设置重新创建它。每次我删除它并重新创建它时,它都包含以前的所有设置、密钥等。我也无法创建具有相同名称且禁用软删除的密钥库。它抱怨具有该名称的密钥库已经存在(VaultAlreadyExists例外)并且设置不兼容。
MSDN 上的keyvault 文档(Azure 中上述消息的链接)提到了如何永久清除软删除,但它稍微委婉的句子对我没有帮助:
可以通过对代理资源的 POST 操作永久删除、清除密钥保管库,并且需要特殊权限。
那么我该如何摆脱这个东西呢?
Lia*_*iam 20
首先要注意的是,正如我后来发现的那样,现在任何时候都将默认启用软删除。因此,软删除的禁用现在实际上已被弃用。但我仍然想完全删除我的密钥库。
在对 azure cli 进行了一些挖掘之后,我偶然发现了这个命令:
az keyvault purge --name
[--location]
[--no-wait]
[--subscription]
Run Code Online (Sandbox Code Playgroud)
因此,如果您使用具有足够权限来运行此程序的用户登录,您可以使用以下命令永久删除整个密钥保管库:
az keyvault purge --name keyvaultname
Run Code Online (Sandbox Code Playgroud)
这将永久且不可撤销地删除密钥库、所有密钥和设置。如果不使用 CLI 或其他一些工具,Azure UI 中似乎没有办法做到这一点。现在似乎 UI 也支持此功能,请参见此处:
- 登录到 Azure 门户。
- 单击页面顶部的搜索栏。
- 在“最近的服务”下单击“密钥保管库”。不要单击单个密钥保管库。
- 在屏幕顶部单击“管理已删除的保管库”选项
- 上下文窗格将在屏幕右侧打开。
- 选择您的订阅。
- 如果您的密钥保管库已被软删除,它将显示在右侧的上下文窗格中。
- 如果保管库过多,您可以单击上下文窗格底部的“加载更多”或使用 CLI 或 PowerShell 获取结果。
- 找到要恢复或清除的保管库后,选中它旁边的复选框。
- 如果要恢复密钥保管库,请选择上下文窗格底部的恢复选项。
- 如果要永久删除密钥保管库,请选择清除选项。
小智 10
您还可以使用 Az PS。根据之前的答案,这是假设您有足够的订阅权限:
Remove-AzKeyVault -VaultName kvname -InRemovedState -Force -Location "Location"
Run Code Online (Sandbox Code Playgroud)
请参阅此参考: 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
| 归档时间: |
|
| 查看次数: |
7693 次 |
| 最近记录: |