shm*_*mit 9 azure-devops azure-pipelines
我们有某些依赖于某些秘密的功能测试。这些秘密是从 Azure Key Vault (AKV) 获取的,为了从构建代理进行连接,我使用环境变量和AzureIdentity。我使用 powershell 在构建代理计算机上设置这些环境变量。当我使用非秘密管道变量时,一切正常,但是当我切换到 AZURE_CLIENT_SECRET 的秘密管道变量时,身份验证开始失败。我尝试使用脚本从秘密管道变量设置环境变量的方法,但它不起作用。我也尝试过这里提到的方法,但这也不起作用。关于如何使用秘密管道变量设置环境变量有什么建议吗?
Edw*_*SFT 11
关于如何使用秘密管道变量设置环境变量有什么建议吗?
然后使用脚本的环境或映射变量块中的变量将机密传递到管道,如下例脚本所示。有关详细信息,请参阅:设置秘密变量。
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
Write-Host "Using the mapped env var for this task works and is recommended: $env:MY_MAPPED_ENV_VAR"
env:
MY_MAPPED_ENV_VAR: $(PAT) # the recommended way to map to an env variable
Run Code Online (Sandbox Code Playgroud)
如果您使用 Azure Key Vault 变量,我们会在下面的 Azure Key Vault 中
创建一个秘密变量 ( PAT )。
因此,我们可以将 Azure 密钥保管库中的机密链接到变量组中,如下所示。

现在我们可以在下面的脚本中使用这个变量组。有关详细信息,请参阅:参考变量组中的秘密变量。
variables:
- group: 'AKVgroup' # variable group
pool:
vmImage: 'ubuntu-latest'
steps:
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
Write-Host "Using the mapped env var for this task works and is recommended: $env:MY_MAPPED_ENV_VAR"
env:
MY_MAPPED_ENV_VAR: $(PAT) # the recommended way to map to an env variable
Run Code Online (Sandbox Code Playgroud)
另一种方法是使用Azure Key Vault 任务,如下脚本所示。有关详细信息,请参阅:在 Azure Pipelines 中使用 Azure Key Vault 的机密。
- task: AzureKeyVault@1
inputs:
azureSubscription: 'ARM'
KeyVaultName: 'edwardkey'
SecretsFilter: '*'
RunAsPreJob: true
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
Write-Host "Using the mapped env var for this task works and is recommended: $env:MY_MAPPED_ENV_VAR"
env:
MY_MAPPED_ENV_VAR: $(PAT) # the recommended way to map to an env variable
Run Code Online (Sandbox Code Playgroud)
如果您将秘密作为参数显式传递给脚本,则脚本将可以访问它。如果您想使用它来设置环境变量以在以后的脚本中使用,您可以使用不同的环境变量名称,并发布您希望在后续脚本中使用它的脚本。这有点违背了保密的目的,但如果这就是你想要的。
| 归档时间: |
|
| 查看次数: |
15845 次 |
| 最近记录: |