使用管道中的 cli 从库中的变量组访问 azure 变量秘密

问题描述 投票:0回答:1

我可以使用 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
  }
}
variables azure-devops azure-pipelines
1个回答
0
投票

运行更新命令后,出于安全原因,不会显示秘密变量的值 - 这是敏感信息,不应在控制台或管道日志中显示。

管道示例

考虑以下具有 2 个作业的管道:

  • job1 更新变量组
    foo
    中变量
    group1
    的值(ID=14)
  • job2 引用变量组
    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中任务的输出:

Updating the variable - logs

job2中任务的输出:

Displaying the variable - logs

© www.soinside.com 2019 - 2024. All rights reserved.