天青管道:访问秘密变量

时间:2020-06-10 08:56:21

标签: azure-devops azure-pipelines

我正在尝试访问秘密变量以将其传递给另一个脚本。

我希望管道中的以下代码能够打印出Value,但它会在没有任何秘密变量值的情况下打印出一些文本“ xxx”

echo xxx

管道代码段

steps:
  - bash: echo This script could use $SYSTEM_ACCESSTOKEN
    env:
      SYSTEM_ACCESSTOKEN: $(System.AccessToken)

3 个答案:

答案 0 :(得分:3)

如果要访问秘密变量,可以将其打印到文件中。检查以下示例:

steps:
- powershell: |
   $env:var1 | Out-File C:\Users\xxx\Desktop\Newfolder\debug.txt


  displayName: 'PowerShell Script'
  env:
    var1: $(System.AccessToken)

但是System.Accesstoken是为服务标识“ Project Collection Build Service(帐户)”生成的PAT令牌,不需要验证System.AccessToken的值。另外,如果要将System.AccessToken的值打印到文件中,则需要在代理作业中检查Allow scripts to access the OAuth token

enter image description here

答案 1 :(得分:1)

这是因为std::forward_list是一个秘密。如果您对变量进行操作(这不是秘密),那么您将能够看到价值。

答案 2 :(得分:0)

更新:

如果我将机密值保存到文件中并发布该文件,因为在明文中可以看到工件机密。

与同事交谈后,我意识到日志中的所有文本如果包含秘密值,都将被屏蔽。

看看我是否有2个变量也很有趣。

OPEN_VAR='something' # No Secret 

SECRET_VAR='something' # Values same as above but Secret 

如果我打印$ OPEN_VAR;是否会屏蔽值,因为“ something”也是“ SECRET_VAR”的值