簡體   English   中英

無法使用服務主體從發布管道訪問 Azure Devops Git 存儲庫

[英]Cannot access Azure Devops Git repo from release pipeline using Service Principal

我們正在為 Azure 資源創建 Terraform 模塊; 我們在一個項目中給了每個它自己的 repo,但是當嘗試在發布管道中調用模塊時,我們會超時,或者錯誤 128。

這在管道外作為具有部署權限的用戶工作,但是我們使用服務主體在發布管道內進行部署,它也具有正確的權限; 問題似乎是服務主體在 Azure DevOps 中沒有權限。

我們最初嘗試使用托管構建代理,但如果我們需要存儲任何永久信息,我們剛剛部署了我們自己的私有代理。

模塊“rg”{ source =“git:: https://dev.azure.com/ *****/Terraform/_git/azmodresourcegroup//module?ref=v1.0” }

它看起來像是一個權利問題,但有人可以指出我的解決方法嗎?

錯誤是:C:\\Program Files\\Git\\bin\\git.exe exited with 128: Cloning into '.terraform\\modules\\

或長時間(30 分鍾)超時。

再詳細說明一下,引用托管在私有 AzureDevOps 存儲庫中的 terraform 模塊/使用個人訪問令牌進行身份驗證。

module "example_module" {
    source = "git::https://INSERT_ORG_NAME:INSERT_TOKEN@dev.azure.com/INSERT_ORG_NAME/terraform_module/_git/terraform_module?ref=INSERT_TAG"
}

對於面臨此問題的其他任何人,我們可以修復它的唯一方法是從用戶帳戶使用 PAT; Service Principal 仍然用於構建,但是從具有項目權限的用戶帳戶添加 PAT 解決了這個問題,然后我們只是使用令牌替換來確保 PAT 不會出現在代碼中。

您可以考慮使用System.AccessToken 此預定義變量包含構建管道的訪問令牌,並且未鏈接到用戶。

您可以在構建期間讀取令牌。

暫無
暫無

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

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