如何让Get-AzKeyVaultSecret忽略已禁用的密钥保管库机密?
解决Get-AzKeyVaultSecret访问禁用机密触发Forbidden错误的问题
核心解决方案
使用-AttributesOnly参数先获取所有机密的属性元数据,过滤出启用状态的机密后,再按需获取完整机密信息:
- 获取所有机密的属性并过滤启用项:
$enabledSecrets = Get-AzKeyVaultSecret -VaultName $vaultName -AttributesOnly | Where-Object { $_.Attributes.Enabled -eq $true }
- (可选)获取启用机密的完整详细信息:
$enabledSecretsDetails = $enabledSecrets | ForEach-Object { Get-AzKeyVaultSecret -VaultName $vaultName -Name $_.Name }
原因说明
你遇到的Forbidden错误根源在于:
- 不带
-AttributesOnly执行Get-AzKeyVaultSecret时,命令会尝试读取每个机密的最新版本内容 Key Vault Secrets User权限默认不允许访问已禁用的机密版本内容,而该机密无其他启用版本,因此触发权限拒绝- 使用
-AttributesOnly后,仅读取机密的属性元数据(不含实际内容),Key Vault Secrets User权限允许访问这些元数据,因此可以正常获取并过滤状态
内容的提问来源于stack exchange,提问作者Randall W
相关产品推荐
相关产品推荐

