我正在尝试使用此CLI命令在Azure中创建密钥保管库...
az keyvault create --location $location --name $keyVaultName --resource-group $resourceGroupMainName --output none
但这会返回错误...
(VaultAlreadyExists)保管库名称“[value of $keyVaultName]”已在使用中。保管库名称是全局唯一的,因此该名称可能已被使用。如果您确定该保管库名称未被使用,则可能具有相同名称的保管库最近已被删除,但在置于可恢复状态后未被清除。如果存储库处于可恢复状态,则需要在重新使用该名称之前清除该存储库。有关软删除和清除存储库的详细信息,请访问此链接https://go.microsoft.com/fwlink/?linkid=2147740。
所以我把这两个都查了...
az keyvault list
az keyvault list-deleted
而且$keyVaultName
未出现在任何列表中。我已要求同事仔细检查这些结果,但它确实未出现。我还查看了门户中的 Manage deleted vaults 刀片式服务器,它与CLI中的结果相匹配-它不在那里。
我也试着用这个名字来recover
密钥库...
(DeletedVaultNotFound)指定的已删除存储库“[$keyVaultName 的值]”不存在。
......然后转到purge
一个同名的密钥库......
找不到名称为[$keyVaultName 的值]的已删除存储库或HSM
那么为什么Azure认为这个名字已经在使用了呢?
4条答案
按热度按时间gcuhipw91#
我发现了一个更简单的方法,即通过用户界面,您可以检查已删除的密钥库是否在密钥库管理页面中。单击“管理已删除的密钥库”超链接后,我可以选择并清除或恢复已删除的密钥库。
wljmcqd82#
正如评论中所提供的,类似于Azure中的存储帐户,keyvault也是全局唯一的。您可以从docs检查类似的错误代码,
尝试创建具有指定名称的新密钥保管库失败,因为该名称已在使用中。如果您最近删除了具有此名称的密钥保管库,则它可能仍处于软删除状态
存储区名称和托管HSM池名称由用户选择,并且是全局唯一的。
您可以使用Powershell或Rest API验证是否存在
whitzsjs3#
当您创建azure keyvault时,默认情况下会启用软删除功能,帮助客户恢复在90天内意外删除的密钥和秘密(默认),在此期间您无法创建另一个同名的keyvault。
一旦为Azure Key Vault启用了软删除,你就无法禁用软删除,因为它是作为单向操作实现的,并且一旦启用就无法改回。但是,你可以将PowerShell cmdletRemove-AzureRmKeyVault命令与选项-InRemovedState一起使用,并通过使用**-Location参数指定已删除密钥保管库的位置,以永久删除或清除Azure密钥保管库。如果要永久删除密钥或机密,则需要使用Remove-AzureKeyVaultKey和Remove-AzureKeyVaultSecret以及-InRemovedState**参数。有关详细信息,请参阅How to use Key Vault soft-delete with PowerShell。
你也可以使用Azure CLI实现相同的操作。有关详细信息,请参阅How to use Key Vault soft-delete with CLI。
t3irkdon4#
首先,我检查了已删除的keyvault和清除哪一个是创造问题.
az密钥库列表-已删除
az密钥存储库清除-名称my-key-vault-dev 01