寻找一个 Powershell 脚本,该脚本将删除给定 Azure 密钥保管库中存在的所有机密。 我不想删除整个密钥保管库,只想删除其中存在的秘密。
使用删除-AzKeyVaultSecret、删除-AzKeyVaultCertificate 和删除-AzKeyVaultKey
使用一些 powershell 和 Azure CLI 你可以实现这一点
az keyvault secret list --vault-name ${keyVaultName} | ConvertFrom-Json | ForEach-Object { az keyvault secret delete --vault-name ${keyVaultName} --name $($_ | Select-Object -ExpandProperty Name) }
它的作用是
Danny van der Sluis 的答案尝试用一个命令一次性删除所有秘密,但这似乎不起作用。将其放入 ps1 脚本中对我有用:
$SECRETS = az keyvault secret list --vault-name "mysupersecretvault" | ConvertFrom-Json;
$SECRETS | Select-Object -Property Name | ForEach-Object { az keyvault secret delete --vault-name "mysupersecretvault" --name $_.Name }
在此之后,您可能需要清除您的保管库,以防您想使用相同的名称重新制作一些机密。我发现通过 Azure 门户执行此操作很容易,但您也可以使用此命令:
az keyvault key purge --name "mykeyname"
Yesman 的版本对我来说效果很好,但是,清除命令应该用于秘密,而不是密钥,所以如果你想删除和清除所有秘密,这有效:
$SECRETS = az keyvault secret list --vault-name "mysupersecretvault" | ConvertFrom-Json;
$SECRETS | Select-Object -Property Name | ForEach-Object { az keyvault secret delete --vault-name "mysupersecretvault" --name $_.Name }
$SECRETS | Select-Object -Property Name | ForEach-Object { az keyvault secret purge --vault-name "mysupersecretvault" --name $_.Name }
$tenantId = "" $resourceGroup = "" $keyvaultName = ""
az 登录 -t $tenantId
$allSecrets = az keyvault 机密列表 --vault-name $keyVaultName | ConvertFrom-Json
foreach($allSecrets 中的$item)
{
az keyvault 秘密删除 --name $item.name `
--vault-name $keyvaultName
az keyvault secret purge --name $item.name `
--vault-name $keyvaultName
}