Azure Pipelines 免費授與的變更
我們暫時變更了取得 Azure Pipelines 免費授與的程式,以解決託管代理程式增加的濫用情形。 根據預設,在 Azure DevOps 中建立的新組織可能不會再獲得並行管線的免費授與。 新使用者必須傳送電子郵件,並提供額外的資訊以取得免費的 CI/CD。
如需詳細資訊,請參閱下面的功能清單。
Azure Pipelines
Azure Repos
Azure Pipelines
Azure Pipelines 免費授與的變更
Azure Pipelines 已提供免費的 CI/CD 給公用和私人專案數年。 由於這相當於釋出免費計算,因此它一律是濫用的目標,特別是密碼編譯採礦。 將此濫用降至最低一律會從小組中耗用精力。 在過去幾個月內,情況已大幅變差,Azure DevOps 中的新專案百分比偏高,用於密碼編譯採礦和其他我們分類為濫用的活動。 過去一個月有數個服務事件是因為此濫用所造成,導致現有客戶的等候時間很長。
為了解決這種情況,我們已為 Azure DevOps 中的新組織新增額外的步驟,以取得免費授與。 下列變更會立即生效:
- 根據預設,在 Azure DevOps 中建立的新組織將不再獲得並行管線的免費授與。 這適用于新組織中的公用和私人專案。
- 若要要求免費授與, 請提交要求 ,並清楚提供下列詳細資料:
- 您的名字
- 您要求免費授與的 Azure DevOps 組織
- 您是否需要公用專案或私人專案的免費授與
- 您計畫建置 (公用專案之存放庫的連結)
- 僅) 公用專案 (專案的簡短描述
我們將在幾天內檢閱您的要求並回應。
注意
這項變更只會影響新的組織。 它不適用於現有的專案或組織。 這不會變更您可以取得的免費授與數量。 它只會新增額外的步驟,以取得該免費授與。
我們抱歉造成任何不便,這可能會導致新客戶想要使用 Azure Pipelines for CI/CD。 我們相信這是繼續為所有客戶提供高階服務的必要條件。 我們會繼續探索防止濫用的自動化方式,並在我們有可靠的機制來防止濫用之後還原先前的模型。
移除傳統組建中的個別管線保留原則
您現在可以在 Azure DevOps 專案設定中設定傳統組建和 YAML 管線的保留原則。 雖然這是設定 YAML 管線保留的唯一方式,但您也可以根據每個管線設定傳統組建管線的保留期。 我們將在即將推出的版本中,移除傳統組建管線的所有每個管線保留規則。
這代表您:任何仍具有每個管線保留規則的傳統組建管線,很快就會受到專案層級保留規則所控管。
為了協助您識別這些管線,我們會在此版本中推出變更,以顯示執行清單頁面頂端的橫幅。
建議您藉由移除每個管線保留規則來更新管線。 如果您的管線特別需要自訂規則,您可以在管線中使用自訂工作。 如需透過工作新增保留租用的資訊,請參閱 組建、發行和測試檔案的設定保留原則。
管線中環境變數的新控制項
Azure Pipelines 代理程式會掃描標準輸出中的特殊 記錄命令 並加以執行。 setVariable
命令可用來設定變數或修改先前定義的變數。 這可能會被系統外部的動作專案惡意探索。 例如,如果您的管線有一個步驟可列印 ftp 伺服器中的檔案清單,則具有 ftp 伺服器存取權的人員可以新增檔案,其名稱包含 setVariable
命令,並導致管線變更其行為。
我們有許多使用者依賴在其管線中使用記錄命令來設定變數。 在此版本中,我們會進行下列變更,以降低命令不必要使用 setVariable
的風險。
- 我們已新增工作作者的新建構。 藉由在 中包含
task.json
如下的程式碼片段,工作作者可以控制其工作是否設定任何變數。
{
"restrictions": {
"commands": {
"mode": "restricted"
},
"settableVariables": {
"allowed": [
"myVar",
"otherVar"
]
}
},
}
此外,我們會更新一些內建工作,例如 ssh,使其無法遭到惡意探索。
最後,您現在可以使用 YAML 建構來控制步驟是否可以設定變數。
steps:
- script: echo hello
target:
settableVariables: none
steps:
- script: echo hello
target:
settableVariables:
- things
- stuff
為分支組建產生不受限制的權杖
GitHub 使用者通常會使用分叉來參與上游存放庫。 當 Azure Pipelines 從 GitHub 存放庫的分支建置貢獻時,它會限制授與作業存取權杖的許可權,而且不允許這類作業存取管線秘密。 您可以在我們的 檔中找到建置分支安全性的詳細資訊。
建置 GitHub Enterprise Server 存放庫的分支時,預設會套用相同的限制。 這可能比這類封閉式環境中更嚴格,使用者可能仍可從內部來源共同作業模型獲益。 雖然您可以在管線中設定設定,讓秘密可供分叉使用,但沒有任何設定可控制作業存取權杖範圍。 在此版本中,我們可讓您控制產生一般作業存取權杖,即使是分支的組建也一般。
您可以從管線編輯器中的 觸發程式 變更此設定。 變更此設定之前,請確定您完全瞭解啟用此設定的安全性影響。
Az、Azure 和 Azure RM 預先安裝模組中的變更
我們正在將預先安裝 Az、Azure 和 AzureRM 模組的程式更新為 Ubuntu 和 Windows 裝載映射,以取得更有效率的支援和映射空間使用量。
在 3 月 29 日當周,除了最新版和最熱門的版本之外,所有版本都會儲存為封存,並依需求Azure PowerShell工作擷取。 變更的詳細清單如下:
Windows 映像
目前除了最新一個 (以外的所有 Az 模組版本,將會封存 5.5.0)
除了目前 (最新的 Azure 模組以外,5.3.0) 和 2.1.0 以外的所有 Azure 模組都會封存
除了目前最新的 (AzureRM 模組以外,6.13.1) 和 2.1.0 以外的所有 AzureRM 模組都會封存
Ubuntu 映射
- 除了目前最新的 Az 模組以外, (5.5.0) 除了最新的模組之外,也會從映射中完全封存或移除,並依需求由工作安裝。
任何在託管代理程式上使用內建 Azure 工作的管線都會如預期般運作,而且不需要更新。 如果您未使用這些工作,請將管線切換為使用 Azure PowerShell 工作,以避免變更預先安裝的模組。
注意
這些更新不會影響在自我裝載代理程式上執行的管線。
Azure Repos
停用存放庫
客戶經常要求停用存放庫,並防止使用者存取其內容。 例如,您可能會想要在下列情況下執行此動作:
- 您已在存放庫中找到秘密。
- 協力廠商掃描工具發現存放庫不符合規範。
在這種情況下,您可能會想要在解決問題時暫時停用存放庫。 透過此更新,如果您有刪除存放庫許可權,您可以停用存放 庫 。 藉由停用存放庫,您可以:
- 可以在存放庫清單中列出存放庫
- 無法讀取存放庫的內容
- 無法更新存放庫的內容
- 查看當存放庫嘗試在 Azure Repos UI 中存取存放庫時已停用的訊息
採取必要的風險降低步驟之後,具有 Delete 存放庫 許可權的使用者可以重新啟用存放庫。 若要停用或啟用存放庫,請移至 [專案設定],選取 [存放庫],然後選取特定存放庫。
後續步驟
注意
這些功能將在接下來兩到三周推出。
請前往 Azure DevOps 並查看。
如何提供意見反應
我們希望聽到您對這些功能的想法。 使用說明功能表來回報問題或提供建議。
您也可以在 Stack Overflow上取得社群所回答的建議和問題。
感謝您!
Vijay Machiraju
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應