使用PowerShell,我可以在本地访问我的Azure KeyVault,提供密码并返回存储的密码。我也可以从我启动的VM中执行此操作。此外,我可以从KeyVault访问单个密码并使用它来模拟VSTS构建代理上的用户,但我无法访问其余存储的密码。是什么给了什么?
以下是我收到的消息:
[error] Get-AzureKeyVaultSecret:无法检索服务密钥 ServicePrincipal帐户 [hiddenaccountname] @ [companyaccount] .com上。请登录 再次提供此服务主体的凭据。在 PowerShell,为Azure Resource Manager执行Login-AzureRMAccount cmdlet或Add-AzureAccount用于服务管理cmdlet。
...
- CategoryInfo:CloseError:(:) [Get-AzureKeyVaultSecret],KeyNotFoundException
- FullyQualifiedErrorId:Microsoft.Azure.Commands.KeyVault.GetAzureKeyVaultSecret
以下是我的代码在本节中的样子:
Login-AzureRmAccount -Credential $AzureCredential -ServicePrincipal -TenantId [abunchofnumbers]
$Password = (Get-AzureKeyVaultSecret -VaultName "[nameOfVault]" -Name "[nameOfSecret]").SecretValueText
登录接受提供的凭据并登录,但Get-AzureKeyVaultSecret cmdlet失败,并且仅在构建期间在VSTS上。
任何想法,你这些奇怪而美妙的开发者?
答案 0 :(得分:0)
[已解决 - 跟进]我的流程涉及一个Powershell脚本,通过使用Login-AzureRmAccount和Get-AzureKeyVaultSecret来模拟用户,以获取用户的密码,然后使用第二个Powershell脚本重新登录AzureRmAccount以获取更多信息来自KeyVault的密码。我交换了这两个脚本的顺序,问题就消失了。