如何保護您的資源階層

您的資源、資源群組、訂用帳戶、管理群組和租用戶共同組成您的資源階層。 根管理群組中的設定 (例如自訂 Azure 自訂角色或「Azure 原則」原則指派) 可能會影響您資源階層中的每個資源。 請務必保護資源階層,避免受到可能對所有資源造成負面影響的變更。

管理群組現在具有階層設定,可讓租用戶系統管理員控制這些行為。 本文涵蓋每一個可用的階層設定,以及如何加以設定。

階層設定的 Azure RBAC 權限

設定任何階層設定需要在根管理群組上進行以下兩個資源提供者作業:

  • Microsoft.Management/managementgroups/settings/write
  • Microsoft.Management/managementgroups/settings/read

這些作業僅允許使用者讀取及更新階層設定。 這些作業不會提供對管理群組階層或階層中資源的任何其他存取權。 Azure 內建角色中的階層設定管理員都有提供這兩項作業。

設定 - 預設管理群組

根據預設,租用戶內所新增的新訂用帳戶會新增做為根管理群組的成員。 如果原則指派、Azure 角色型存取控制 (Azure RBAC) 和其他治理建構已指派給根管理群組,則會立即影響這些新的訂用帳戶。 基於這個理由,許多組織都不會在根管理群組套用這些建構,即使這是所要指派的位置也一樣。 在其他情況下,新的訂用帳戶需要一組限制較嚴格的控制項,但不應指派給所有訂用帳戶。 這項設定支援兩種使用案例。

藉由允許定義新訂用帳戶的預設管理群組,可以在根管理群組中套用整個組織的治理建構,並可定義具有原則指派或 Azure 角色指派且較適合新訂用帳戶的個別管理群組。

在入口網站中設定預設管理群組

若要在 Azure 入口網站中進行此設定,請遵循下列步驟:

  1. 使用搜尋列來搜尋並選取 [管理群組]。

  2. 在根管理群組上,選取管理群組名稱旁的 [詳細資料]。

  3. 在 [設定] 底下,選取 [階層設定]。

  4. 選取 [變更預設管理群組] 按鈕。

    注意

    如果停用 [變更預設管理群組] 按鈕,則檢視的管理群組不是根管理群組,或您的安全性主體沒有更改階層設定的必要權限。

  5. 從階層選取管理群組,並使用 [選取] 按鈕。

使用 REST API 設定預設管理群組

若要使用 REST API 進行此設定,會呼叫階層設定端點。 若要這樣做,請使用下列 REST API URI 與主體格式。 將 {rootMgID} 取代為根管理群組的識別碼,並將 {defaultGroupID} 取代為管理群組的識別碼,以成為預設管理群組:

  • REST API URI

    PUT https://management.azure.com/providers/Microsoft.Management/managementGroups/{rootMgID}/settings/default?api-version=2020-05-01
    
  • 要求本文

    {
        "properties": {
            "defaultManagementGroup": "/providers/Microsoft.Management/managementGroups/{defaultGroupID}"
        }
    }
    

若要將預設管理群組設定回根管理群組,請使用相同的端點,並將 defaultManagementGroup 設定為 /providers/Microsoft.Management/managementGroups/{rootMgID} 的值。

設定 - 需要授權

根據預設,任何使用者都可以在租用戶內建立新的管理群組。 租用戶的管理員可能只想要將這些權限提供給特定使用者,以維持管理群組階層中的一致性和符合性。 啟用時,使用者必須在根管理群組上進行 Microsoft.Management/managementGroups/write 作業,才能建立新的子管理群組。

在入口網站中設定需要授權

若要在 Azure 入口網站中進行此設定,請遵循下列步驟:

  1. 使用搜尋列來搜尋並選取 [管理群組]。

  2. 在根管理群組上,選取管理群組名稱旁的 [詳細資料]。

  3. 在 [設定] 底下,選取 [階層設定]。

  4. 將 [需要建立新管理群組的權限] 選項切換為開啟。

    注意

    如果 [需要建立新管理群組的權限] 切換已停用,則檢視的管理群組不是根管理群組,或您的安全性主體沒有更改階層設定的必要權限。

使用 REST API 設定需要授權

若要使用 REST API 進行此設定,會呼叫階層設定端點。 若要這樣做,請使用下列 REST API URI 與主體格式。 這個值是布林值,因此,請為此值提供 truefalsetrue 的值會啟用這個保護管理群組階層的方法:

  • REST API URI

    PUT https://management.azure.com/providers/Microsoft.Management/managementGroups/{rootMgID}/settings/default?api-version=2020-05-01
    
  • 要求本文

    {
        "properties": {
            "requireAuthorizationForGroupCreation": true
        }
    }
    

若要關閉設定,請使用相同的端點,並將 requireAuthorizationForGroupCreation 設定為 false 的值。

PowerShell 範例

PowerShell 沒有 'Az' 命令可設定預設管理群組或設定需要授權,但作為因應措施,您可以使用 REST API 搭配下列 PowerShell 範例:

$root_management_group_id = "Enter the ID of root management group"
$default_management_group_id = "Enter the ID of default management group (or use the same ID of the root management group)"

$body = '{
     "properties": {
          "defaultManagementGroup": "/providers/Microsoft.Management/managementGroups/' + $default_management_group_id + '",
          "requireAuthorizationForGroupCreation": true
     }
}'

$token = (Get-AzAccessToken).Token
$headers = @{"Authorization"= "Bearer $token"; "Content-Type"= "application/json"}
$uri = "https://management.azure.com/providers/Microsoft.Management/managementGroups/$root_management_group_id/settings/default?api-version=2020-05-01"

Invoke-RestMethod -Method PUT -Uri $uri -Headers $headers -Body $body

後續步驟

若要深入了解管理群組,請參閱: