Как защитить иерархию ресурсов

В иерархию ресурсов входят сами ресурсы, группы ресурсов, подписки, группы управления и клиент. Параметры корневой группы управления, например пользовательские роли 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} — идентификатором группы управления, которая должна стать группой управления по умолчанию.

  • Универсальный код ресурса (URI) REST API

    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) и формат текста. Этот параметр является логическим, поэтому укажите значение true либо false. Значение true включает этот метод защиты для иерархии групп управления.

  • Универсальный код ресурса (URI) REST API

    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

Дальнейшие действия

Дополнительные сведения о группах управления: