Chaos Studio Workspaces 的權限控制誰可以執行場景,以及這些場景可能影響哪些 Azure 資源。 Azure 角色型存取控制(RBAC)會控管對工作區的存取權,而其受控識別則需要在其探索及測試的資源上具備角色指派。 請使用本指南設定發現範圍、指派執行角色,並在情境執行前解決權限驗證錯誤。
這很重要
Chaos Studio 的工作空間與場景目前已公開預覽。 Microsoft 提供此預覽版「現況」與「可用狀態」,不受服務等級協議或有限保固保護。 Microsoft 以盡力而為的方式提供預覽版的客戶支援。 這個預覽並非為製作用途設計。 欲了解更多資訊,請參閱以下文章:
Workspace 身份的運作方式
每個工作區都有一個受管理身份(系統指派、使用者指派或兩者兼具),作為情境的執行主體。 當情境執行時,Chaos Studio 會利用工作空間的管理身份來呼叫 Azure 管理 API、啟動基於代理的動作,並與範圍內的資源互動。
受控識別會控制任何案例執行的影響範圍。 您只會在確切想要測試的資源上授與其角色,而且它無法影響這些指派以外的任何項目。 結合工作區本身的 Azure RBAC(控制誰能觸發執行),這建立了兩層授權模型:觸發執行的人必須有權限操作工作區,而工作區的身份必須有權限對目標資源採取行動。 必須通過這兩個檢定,任何行動才會執行。
執行開始前,驗證會報告工作區識別缺少的角色指派。 如果執行開始時仍缺少必要的指派,受影響的動作會因權限錯誤而失敗。
範圍決定工作區可發現哪些資源
當你建立工作區時,你會為它指派一個範圍,也就是工作區能發現、鎖定並影響的資源範圍。 支援的範圍類型:
| 範圍類型 | 內容涵蓋 |
|---|---|
| Subscription | 訂閱中所有資源。 範圍最廣。 |
| 資源群組 | 所有屬於指定資源群組的資源。 |
| 服務群 | 一組你明確定義的自訂資源。 |
範圍會控制 探索 邊界:只有範圍內的資源會出現在工作區的資源清單中,且可作為 Scenarios 的目標。
Workspace 身分識別所需的角色指派
工作區的受控識別必須具備其所執行之每個動作所需的角色。 常見範例:
| 動作類別 | 所需角色 | Scope |
|---|---|---|
| 虛擬機關機、重新啟動、重新部署 | 虛擬機貢獻者 | 目標虛擬機或資源群組 |
| NSG 規則注入(DNS,網路動作) | 網路參與者 | 目標網路安全性群組 (NSG) 或資源群組 |
| 資料庫故障轉移(SQL、PostgreSQL、MySQL) | Contributor | 目標資料庫資源 |
| Cosmos DB 故障轉移 | Cosmos DB 操作員 | Target Cosmos 資料庫帳戶 |
| 基於代理的動作(CPU、記憶體、網路) | Reader | 目標虛擬機(代理程式獨立認證) |
關於目前 Scenario 範本所使用的動作,請參見 Azure Chaos Studio 中的 Scenarios。 若要從驗證回傳的權限建立自訂角色,請參見 Chaos Studio Workspaces 的最小權限自訂角色。
這很重要
在啟動情境前先解決權限驗證錯誤。 如果動作仍然失敗,請檢查 情境報告 是否有權限相關的錯誤。
角色分配是如何發生的
您可以透過三種方式將角色授與工作區識別:
- 修正 Workspace 橫幅中缺少讀取權限的問題。 如果該身份在工作區範圍內沒有讀取權限,入口網站會在工作區顯示橫幅。 選取 [在工作區範圍指派讀者角色],以指派「讀者」角色。
- 從設定頁面修正情境權限。 當你儲存情境設定時,驗證會檢查該身份是否能對目標資源執行所有必要的動作。 若缺少權限,請選擇 「固定權限 」以指派推薦的內建角色。 以程式方式透過 REST API,也可在 Scenario 組態上使用相同的操作,即
fixResourcePermissions。 - 自己分配角色。 對目標資源使用 存取控制(IAM )。 如果內建角色授予的權限超過你的政策允許,請從驗證輸出 中建立權限最低的自訂角色 。
要用這些方法建立角色指派,你需要對目標範圍擁有擁有者或使用者存取管理員權限。
哪些人可以使用 Workspace
對工作區資源本身的存取是透過標準的 Azure RBAC 控制,與工作區的管理身份分開。 使用者若要與工作區互動,需要:
| 動作 | 工作區資源上的最低角色 |
|---|---|
| 查看工作空間及其情境 | Reader |
| 執行一個情境 | 貢獻者(或具有 Microsoft.Chaos/workspaces/scenarios/run/action 的自訂角色) |
| 建立或修改工作區 | 參與者或擁有者 |
| 將角色指派給工作區的受控識別 | 目標資源上的擁有者或使用者存取管理員 |
系統指派與使用者指派的身分識別
| 身份類型 | 何時使用 |
|---|---|
| 系統指派 | 最簡單的設定。 身份是透過工作區建立並刪除的。 適合單一工作區環境。 |
| 使用者指派 | 當多個工作區共用相同角色指派,或您需要識別的存留期超過工作區資源時使用。 在有集中式身份管理的企業環境中很常見。 |
你可以同時指派兩種類型。 如果你同時使用兩個身份,請設定工作區指定執行時使用哪個身份,或確保兩個身份都有相同的角色分配,以避免模糊。
與實驗(經典)權限的關係
Chaos Studio 的工作空間和實驗(經典版)使用不同的權限模型。 在實驗(經典)模型中,每個實驗都有自己的受管理身份與角色分配。 在 Workspaces 模型中,Workspace 身份會在所有情境間共享,因此你只需指派一次角色,而不是每個實驗一次。
關於經典權限模型,請參見實驗的權限與安全性(經典版)。