Azure DevOps 權限設定並沒有一個彙整的位置進行設定,而是在各個功能內設定。即使過去有前往各大企業授課經驗,也沒有辦法短時間內設計出符合每一個組織所需要安全設定。依據過去經驗,隨著專案越來越多,安全單位要求越來越嚴謹,組織內每個角色所擁有的權限會越來越少。身為平台管理人員,熟知每個權限對應的功能與作用是相當重要的,因為安全單位與稽核單位不一定熟悉相對應權限,所以提供正確的功能說明與提供設定建議是非常重要的。
Azure DevOps 功能權限設定可以分成 Allow, Deny, 與 Not set,並且可以透過繼承方式套用權限。
首先,我們先說明在哪裡可以設定 Pipeline 與 Release Pipeline 權限。點選左邊選單中 Pipelines 功能,於主畫面右上角點選 ... 按鈕,選擇 Manage Security,即可開啟 Pipeline 權限設定畫面。
如果專案內沒有任何 Pipeline,你可以在主畫面中間點選 ... 按鈕,點選 Manage Security
有幾比較重要的權限提出來說明一下,設定包含: Administer build permissions (管理權限,可以修改 Pipeline 權限)、Override check-in validation by build (一般情況不會勾選) 與 View build pipeline/View builds (提供檢視權限,通常會給不須直接操作的利害關係人)。這些權限通常是平台管理者最查被詢問的,其餘部分只需要依據需求給予即可。
Release Pipeline 與前述的 Pipeline 設定方式有些不一樣,它是透過資料夾方式來設定權限。若你在資料夾設定權限,其資料夾下所有 Release Pipeline 皆會有相同的權限。也因為如此在設定 Release Pipeline 權限前至少要有一個 Release Pipeline 權限。
設定 Release Pipeline 權限步驟有些多,點選左邊功能列 Releases,選擇以資料夾方式檢視,點選要設定權限的資料夾,選擇右上方 ... 按鈕,點選 Secuirty 即可設定 Release Pipeline 權限。
相同的,我們提幾個比較重要的功能:Administer release permissions (為管理權限,可以修改修改 Release Pipeline 權限;比較容易混淆的是 Edit release pipeline、Edit release stage 與 Edit release pipeline
Edit release stage,前兩者為編輯 release pipeline 流程,後者為建立 Release 後的管理權限 (定義很重要)。
無論在哪一個功能內設定權限,皆可以以 Group 或 Person 方式指定權限。理所當然,最快最簡單的方式當然是直接指定使用者給予所需的權限。但以長期管理來說,團隊成員可能經歷新入加入、離開、角色變換或資安原因限縮等情境,若透過單一使用者調整權限,即可能衍伸出許多繁複的工作,不斷的在調整權限。
比較好的方式是建立 Team,將相對應的時候使用者做好分類,當權限調整的時候,就不用逐一使用者進行設定