通过PowerShell触发Azure Key Vault密钥轮换策略执行密钥轮换
Azure Key Vault密钥立即轮换的正确PowerShell实现
你的脚本无法正常工作的原因是**Update-AzKeyVaultKey搭配-KeyVersion参数的作用是修改已有密钥版本的属性**,并非触发密钥轮换生成新版本。在已有轮换策略的前提下,要执行立即轮换,需使用专门的Invoke-AzKeyVaultKeyRotation命令。
修正后的脚本
# Install the Azure PowerShell module if not already installed # Install-Module -Name Az -Force -AllowClobber -Scope CurrentUser # Sign in to Azure (use 'Connect-AzAccount' and provide credentials if not signed in) # Connect-AzAccount # Variables $KeyVaultName = "my-kv" # Get all keys in the Key Vault $keys = Get-AzKeyVaultKey -VaultName $KeyVaultName foreach ($key in $keys) { # 检查密钥是否已配置轮换策略(可选,确保符合前提) $keyPolicy = Get-AzKeyVaultKeyRotationPolicy -VaultName $KeyVaultName -KeyName $key.Name if ($null -ne $keyPolicy) { # 触发立即轮换,生成新密钥版本 $newKeyVersion = Invoke-AzKeyVaultKeyRotation -VaultName $KeyVaultName -KeyName $key.Name Write-Host "密钥[$($key.Name)]轮换完成,新版本:$($newKeyVersion.KeyIdentifier.Version)" } else { Write-Host "密钥[$($key.Name)]未配置轮换策略,跳过轮换" } } Write-Host "所有密钥轮换操作已完成"
关键说明
Invoke-AzKeyVaultKeyRotation命令会直接触发密钥的立即轮换,生成新的密钥版本,同时保留旧版本(除非配置了版本自动清理规则)。- 执行该操作需要账号拥有Key Vault Crypto Officer或Key Vault Contributor等具备密钥轮换权限的角色。
- 如果密钥未配置轮换策略,该命令也能触发轮换,但如果你只需要处理已有策略的密钥,脚本中的检查逻辑可以帮你过滤掉不符合条件的密钥。
内容的提问来源于stack exchange,提问作者learner
相关产品推荐
相关产品推荐

