【问题标题】:azure pipelines : accessing secret variables天蓝色管道:访问秘密变量
【发布时间】:2020-06-10 08:56:21
【问题描述】:

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

我希望管道中的以下代码可以打印 Value,但它会打印一些文本 'xxx',而与秘密变量的值无关

echo xxx

管道片段

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

【问题讨论】:

    标签: azure-devops azure-pipelines


    【解决方案1】:

    如果你想访问一个秘密变量,你可以将它打印到一个文件中。检查以下示例:

    steps:
    - powershell: |
       $env:var1 | Out-File C:\Users\xxx\Desktop\Newfolder\debug.txt
    
    
      displayName: 'PowerShell Script'
      env:
        var1: $(System.AccessToken)
    

    System.Accesstoken是为服务身份“项目集合构建服务(帐户)”生成的PAT令牌,不需要验证System.AccessToken的值。另外,如果要将System.AccessToken的值打印到文件中,需要在agent job中勾选Allow scripts to access the OAuth token

    【讨论】:

    • 如果我的回复对您有帮助,您可以Accept it as an Answer,这对阅读此主题的其他社区成员会有所帮助。
    【解决方案2】:

    更新:

    如果我将秘密值保存到文件中并将该文件作为工件秘密发布,则在明文中可见。

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

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

    OPEN_VAR='something' # No Secret 
    

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

    如果我打印 $OPEN_VAR ;它是否掩盖了值,因为“某物”也是“SECRET_VAR”的值

    【解决方案3】:

    这是因为SYSTEM_ACCESSTOKEN 是一个秘密。如果你对不是秘密的变量做同样的事情,你将能够看到价值。

    【讨论】:

    • 我如何验证我的脚本是否获得了正确的值
    • @forvaidya 在脚本中使用它:)。
    • 请查看topicSYSTEM_ACCESSTOKEN 是 AzDO 生成的 PAT 令牌。您可以确定这是有效的。链接到此令牌的用户可能没有足够的权限(请在此处查看toonvanhoutte.wordpress.com/2018/12/04/…),或者您可能以错误的方式使用它,但您可以确定它具有有效值。
    猜你喜欢
    • 1970-01-01
    • 2020-01-27
    • 2020-09-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-08
    • 2022-07-13
    • 2021-11-01
    • 1970-01-01
    相关资源
    最近更新 更多