共用方式為


Azure Chaos Studio 中的許可權和安全性

Azure Chaos Studio 可讓您藉由有系統地將錯誤插入 Azure 資源,來改善服務復原能力。 錯誤插入是改善服務復原的強大方式,但也可能很危險。 造成應用程式中失敗的影響可能比原先預期還要大,而且讓惡意執行者有機會滲透您的應用程式。

Chaos Studio 具有強固的許可權模型,可防止錯誤不小心或由不良動作項目執行。 在本文中,您將瞭解如何使用 Chaos Studio 保護以錯誤插入為目標的資源。

如何限制使用 Chaos Studio 插入錯誤的能力?

Chaos Studio 有三種安全性層級,可協助您控制針對資源發生錯誤插入的方式和時機:

  • 首先,混亂實驗是部署至區域、資源群組和訂用帳戶的 Azure 資源。 用戶必須具有適當的 Azure Resource Manager 許可權,才能建立、更新、啟動、取消、刪除或檢視實驗。

    每個許可權都是 Resource Manager 作業,可細微地指派給身分識別,或指派為具有通配符許可權的角色一部分。 例如,Azure 中的參與者角色具有 */write 指派範圍的許可權,其中包括 Microsoft.Chaos/experiments/write 許可權。

    當您試著控制對資源插入錯誤的能力時,要限制的最重要作業是 Microsoft.Chaos/experiments/start/action。 此作業會啟動插入錯誤的混亂實驗。

  • 其次,混亂實驗具有 系統指派的受控識別使用者指派的受控識別 ,會在資源上執行錯誤。 如果您選擇將系統指派的受控識別用於實驗,則會在 Microsoft Entra 租使用者中的實驗建立時間建立身分識別。 使用者指派的受控識別可用於任意數目的實驗。

    在混亂實驗中,您可以選擇在系統指派或使用者指派的受控識別上啟用自定義角色指派。 啟用這項功能可讓 Chaos Studio 建立並指派自定義角色,其中包含實驗身分識別的任何必要實驗動作功能(該角色尚未存在於您的身分識別選取範圍中)。 如果混亂實驗使用使用者指派的受控識別,Chaos Studio 指派給實驗身分識別的任何自定義角色都會在實驗刪除後保存。

    如果您選擇手動授與實驗許可權,則必須將其身分 識別適當許可權 授與所有目標資源。 如果實驗身分識別沒有資源的適當許可權,就無法對該資源執行錯誤。

  • 第三,每個資源都必須以已啟用對應功能的目標身分上線至 Chaos Studio。 如果執行錯誤的目標或功能不存在,實驗就會失敗,而不會影響資源。

使用者指派的受控識別

混亂實驗可以利用 使用者指派的受控識別 來取得足夠的許可權,以在實驗的目標資源上插入錯誤。 此外,使用者指派的受控識別可用於 Chaos Studio 中任意數目的實驗。 若要利用這項功能,您必須:

  • 首先,在受控識別服務內建立使用者指派的受控識別。 此時,您可以指派使用者指派的受控識別,以執行混亂實驗所需的許可權。
  • 其次,建立混亂實驗時,請從您的訂用帳戶中選取使用者指派的受控識別。 您可以選擇在此步驟中啟用自訂角色指派。 啟用這項功能會根據您的實驗中包含的錯誤,授與您身分識別選取所需的任何必要許可權。
  • 第三,將所有錯誤新增至混亂實驗之後,請檢閱您的身分識別設定是否包含您混亂實驗成功執行的所有必要動作。 如果沒有,請連絡系統管理員以存取或編輯實驗的錯誤選取專案。

代理程序驗證

當您執行代理程式型錯誤時,您必須在虛擬機器 (VM) 或虛擬機器擴展集上安裝 Chaos Studio 代理程式。 代理程式會使用 使用者指派的受控識別 向 Chaos Studio 進行驗證,以及 代理程式配置檔 ,以建立與特定 VM 資源的關聯性。

當您將 VM 或虛擬機擴展集上線以進行代理程式型錯誤時,請先建立代理程序目標。 代理程式目標必須參考用於驗證的使用者指派受控識別。 代理程式目標包含 代理程式設定檔識別碼,此識別碼會在您安裝代理程式時提供為組態。 代理程式配置檔對每個目標而言都是唯一的,而且每個資源的目標都是唯一的。

Azure Resource Manager 作業和角色

Chaos Studio 具有下列作業:

作業 描述
Microsoft.Chaos/targets/[Read,Write,Delete] 取得、建立、更新或刪除目標。
Microsoft.Chaos/targets/capabilities/[Read,Write,Delete] 取得、建立、更新或刪除功能。
Microsoft.Chaos/locations/targetTypes/Read 取得所有目標類型。
Microsoft.Chaos/locations/targetTypes/capabilityTypes/Read 取得所有功能類型。
Microsoft.Chaos/experiments/[Read,Write,Delete] 取得、建立、更新或刪除混亂實驗。
Microsoft.Chaos/experiments/start/action 開始混亂實驗。
Microsoft.Chaos/experiments/cancel/action 停止混亂實驗。
Microsoft.Chaos/experiments/executions/Read 取得混亂實驗執行的執行狀態。
Microsoft.Chaos/experiments/getExecutionDetails/action 取得執行詳細數據(每個動作的狀態和錯誤),以執行混亂實驗。

若要更細微地指派這些許可權,您可以 建立自定義角色

網路安全性

與 Chaos Studio 的所有用戶互動都是透過 Azure Resource Manager 進行。 如果使用者啟動實驗,則根據錯誤,實驗可能會與 Resource Manager 以外的端點互動:

  • 服務直接錯誤:大部分的服務直接錯誤都是透過 Azure Resource Manager 執行,而且不需要任何允許列出的網路端點。
  • 服務導向 AKS Chaos Mesh 錯誤: 使用 Chaos Mesh 的 Azure Kubernetes Service 的服務直接錯誤需要存取 AKS 叢集的 Kubernetes API 伺服器。
    • 瞭解如何在此限制 AKS 網路存取一組IP範圍。 您可以使用服務標籤探索 API 或可下載的 JSON 檔案來查詢ChaosStudio服務標籤,以取得 Chaos Studio 的 IP 範圍。
    • 目前,如果 AKS 叢集已停用本機帳戶,Chaos Studio 就無法執行 Chaos Mesh 錯誤。
  • 代理程式型錯誤:若要使用代理程式型錯誤,代理程式需要存取 Chaos Studio 代理程序服務。 VM 或虛擬機擴展集必須具有代理程式服務端點的輸出存取權,代理程式才能成功連線。 代理程式服務端點為 https://acs-prod-<region>.chaosagent.trafficmanager.net。 您必須將 <region> 佔位元取代為部署 VM 的區域。 例如 https://acs-prod-eastus.chaosagent.trafficmanager.net ,美國東部的 VM。
  • 代理程式型專用網:Chaos Studio 代理程式現在支援專用網。 請參閱 Chaos 代理程式的專用網。

服務標籤

服務標籤是一組IP位址前綴,可指派給網路安全組的輸入和輸出規則。 它會自動處理IP位址前綴群組的更新,而不需要任何介入。 由於服務標籤主要啟用IP位址篩選,因此僅服務標籤就不足以保護流量。

您可以使用服務標籤來明確允許來自 Chaos Studio 的輸入流量,而不需要知道平臺的 IP 位址。 Chaos Studio 的服務標籤為 ChaosStudio

服務標籤的限制是,它們只能與具有公用IP位址的應用程式搭配使用。 如果資源只有私人IP位址,服務標籤就無法將流量路由傳送至該位址。

使用案例

Chaos Studio 會針對數個使用案例使用服務標籤。

  • 若要使用 代理程式型錯誤,在客戶虛擬機內執行的 Chaos Studio 代理程式必須與 Chaos Studio 後端服務通訊。 服務標籤可讓客戶允許列出從虛擬機到 Chaos Studio 服務的流量。
  • 若要使用需要命名空間外部 management.azure.com 通訊的特定錯誤,例如 Azure Kubernetes Service 的 Chaos Mesh 錯誤 ,流量來自 Chaos Studio 服務到客戶資源。 服務標籤可讓客戶允許將來自 Chaos Studio 服務的流量列出至目標資源。
  • 客戶可以使用其他服務標籤作為網路安全組規則錯誤一部分,以影響特定 Azure 服務的流量。

藉由在安全性規則中指定 ChaosStudio 服務標籤,可以允許或拒絕 Chaos Studio 服務的流量,而不需要指定個別 IP 位址。

安全性考量

在評估及使用服務標籤時,請務必注意,它們不會提供個別IP位址的細微控制,不應依賴作為保護網路的唯一方法。 它們不會取代適當的網路安全性措施。

資料加密

Chaos Studio 預設會加密所有數據。 Chaos Studio 只接受系統屬性的輸入,例如受控識別物件標識碼、實驗/步驟/分支名稱和錯誤參數。 範例是網路埠範圍,以在網路中斷連線錯誤中封鎖。

這些屬性不應該用來儲存敏感數據,例如付款資訊或密碼。 如需 Chaos Studio 如何保護您的資料的詳細資訊,請參閱 Azure 客戶數據保護

客戶加密箱

Lockbox 可讓您控制在支援要求期間核准或拒絕 Microsoft 工程師要求存取實驗數據的要求。

您可以針對混亂的實驗資訊啟用加密箱,如果啟用加密箱,則客戶會在訂用帳戶層級授與存取數據的許可權。

深入了解適用於 Microsoft Azure 的客戶加密箱

下一步

既然您已瞭解如何保護混亂實驗,您已準備好: