Azure 密钥保管库创建错误:VaultAlreadyExists - 我找不到现有的保管库

时间:2021-06-15 15:42:48

标签: azure azure-keyvault azure-cli

我正在尝试使用此 CLI 命令在 Azure 中创建密钥保管库...

az keyvault create --location $location --name $keyVaultName --resource-group $resourceGroupMainName --output none

但这会返回错误...

<块引用>

(VaultAlreadyExists) 保管库名称“[$keyVaultName 的值]”是 已在使用中。 Vault 名称是全球唯一的,因此有可能 这个名字已经被占用了。如果您确定保管库名称不是 那么可能最近有一个同名的保险库 处于可恢复状态后已删除但未清除。如果 保管库处于可恢复状态,则保管库需要 在重用名称之前清除。有关软删除的更多信息 并按照此链接清除保险库 https://go.microsoft.com/fwlink/?linkid=2147740

所以我跑了这两个...

az keyvault list
az keyvault list-deleted

并且 $keyVaultName 未出现在任一列表中。我已经请一位同事仔细检查这些结果,但它确实没有出现。我还查看了门户中的管理已删除的保险库 刀片,这与 CLI 的结果相匹配 - 它不存在。

我还尝试recover使用该名称的密钥保管库...

<块引用>

(DeletedVaultNotFound) 指定的已删除保管库“[$keyVaultName 的值]”不存在。

...以及purge具有该名称的密钥保管库...

<块引用>

未找到名称为 [$keyVaultName 的值] 的已删除 Vault 或 HSM

那么为什么Azure 认为这个名字已经被使用了?

2 个答案:

答案 0 :(得分:1)

正如评论中所提供的,类似于 Azure 中的存储帐户,密钥保管库在全球范围内也是唯一的。您可以从 docs,

中检查类似的错误代码 <块引用>

您尝试使用指定名称创建新的密钥保管库已 失败,因为该名称已被使用。如果您最近删除了一个密钥 使用此名称的保管库,它可能仍处于软删除状态

保管库名称和托管 HSM 池名称由用户选择,并且 是全球唯一的。

您可以使用 PowershellRest API

验证是否存在

答案 1 :(得分:1)

当您创建 azure keyvault 时,默认启用软删除功能,该功能可帮助客户恢复在 90 天(默认)内意外删除的密钥和机密,并且在该时间段内您无法创建另一个同名的 keyvault

一旦为 Azure Key Vault 启用软删除,您就无法禁用软删除,因为它是作为一种单向操作实现的,并且一旦启用就无法更改回来。但是,您可以使用 PowerShell cmdlet Remove-AzureRmKeyVault 命令和选项 -InRemovedState 并通过 -Location 指定已删除密钥保管库的位置strong> 参数以永久删除或清除 Azure Key Vault。如果要永久删除密钥或机密,则需要使用 Remove-AzureKeyVaultKeyRemove-AzureKeyVaultSecret-InRemovedState 参数。详情请参阅How to use Key Vault soft-delete with PowerShell

您也可以使用 Azure CLI 实现相同的目的。详情请参阅How to use Key Vault soft-delete with CLI