簡體   English   中英

Azure Pipelines 中的秘密變量

[英]Secret Variables in Azure Pipelines

我有一個 Azure 管道,需要訪問一個秘密令牌來聯系另一個服務。 我一直在關注文檔,但它似乎並沒有像我期望的那樣工作。 作為一個最小的例子,我試圖將cachix_token的變量寫入文件。

  - bash: |
      set -ex
      mkdir -p packages
      echo $CACHIX_AUTH_TOKEN > packages/token
    env:
      CACHIX_AUTH_TOKEN: $(cachix_token)

但是,當我下載生成的令牌文件時,內容是文字

$(cachix_token)

如何讓 yaml 替換秘密變量?

更新

下面是我為管道定義秘密變量的屏幕截圖。

在此處輸入圖片說明

如果文件中有文字$(cachix_token) ,則意味着 Azure Pipeline 無法替換該變量。 因為這意味着您沒有在任何地方定義它。 您也可以使用此擴展來確認這一點 - 打印所有變量

Here您有一個文檔如何設置秘密變量 但是,您也可以使用 Azure Key Vault 來存儲變量,然后從中獲取值。 使用內置擴展,它還可以將它們作為機密加載。

正如我最終發現的那樣,Azure Pipelines 不允許派生訪問秘密變量。 所以,盡管這個秘密變量的定義管道,如果你關閉執行叉的拉入請求,而不是主回購,然后秘密變量沒有定義,你會看到我上面解釋的行為.

文檔中所述,這可以通過管道 gui 中的Make secrets available to builds of forks復選框繞過。 然而,這確實打開了一個巨大的安全漏洞,任何人都可以在其中制作惡意 PR,為他們提供所有秘密的逐字副本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM