我可以使用 Azure CLI 或管道中的任何脚本访问设置为 Secret 的变量吗?
我必须更新变量,但那些设置为秘密的变量没有更新,但命令将它们设置为空 所以,我的问题是我们可以这样做吗?如果是的话怎么办? 注意:我不想将变量与 Azure 密钥保管库链接
我试图使用更新命令更新变量组,但它没有更新设置为秘密的变量值,而是使它们为空:
执行:
az pipelines variable-group variable update \
--group-id 261 \
--name <groupname> \
--value <value> \
--organization <orgURL> \
--project "Test"
输出:
{
"Variable": {
"isSecret": true,
"value": null
}
}
运行更新命令后,出于安全原因,不会显示秘密变量的值 - 这是敏感信息,不应在控制台或管道日志中显示。
考虑以下具有 2 个作业的管道:
foo
中变量group1
的值(ID=14)group1
并显示变量foo
trigger: none
pool:
vmImage: 'ubuntu-latest'
jobs:
- job: job1
steps:
- checkout: none
- bash: |
az pipelines variable-group variable update \
--group-id 14 \
--name foo \
--value 'updated value' \
--organization 'https://dev.azure.com/myorg/' \
--project 'myproject'
displayName: 'Update variable'
env:
AZURE_DEVOPS_EXT_PAT: $(System.AccessToken) # ensure token has enough permissions to run the command
- job: job2
dependsOn: job1
variables:
- group: 'group1'
steps:
- checkout: none
# See https://stackoverflow.com/a/71746562/558486
# For debugging purposes only, do NOT use it in production
- bash: |
echo "MY_SECRET: ${MY_SECRET:0:1} ${MY_SECRET:1:100}"
displayName: 'Display variable'
env:
MY_SECRET: $(foo)
job1中任务的输出:
job2中任务的输出: