Como proteger a hierarquia de recursos

Os seus recursos, grupos de recursos, subscrições, grupos de gestão e inquilino constituem coletivamente a hierarquia de recursos. As definições no grupo de gestão de raiz, como funções personalizadas do Azure ou atribuições de políticas Azure Policy, podem afetar todos os recursos na hierarquia de recursos. É importante proteger a hierarquia de recursos contra alterações que possam afetar negativamente todos os recursos.

Os grupos de gestão têm agora definições de hierarquia que permitem ao administrador inquilino controlar estes comportamentos. Este artigo abrange cada uma das definições de hierarquia disponíveis e como defini-las.

Permissões RBAC do Azure para definições de hierarquia

A configuração de qualquer uma das definições de hierarquia requer as duas seguintes operações de fornecedor de recursos no grupo de gestão de raiz:

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

Estas operações só permitem que um utilizador leia e atualize as definições da hierarquia. As operações não fornecem qualquer outro acesso à hierarquia ou recursos do grupo de gestão na hierarquia. Ambas as operações estão disponíveis no Administrador de Definições de Hierarquia da função incorporada do Azure.

Definição - Grupo de gestão predefinido

Por predefinição, é adicionada uma nova subscrição num inquilino como membro do grupo de gestão de raiz. Se as atribuições de políticas, o controlo de acesso baseado em funções do Azure (RBAC do Azure) e outras construções de governação forem atribuídas ao grupo de gestão de raiz, serão imediatamente aplicadas a estas novas subscrições. Por este motivo, muitas organizações não aplicam estas construções no grupo de gestão de raiz, apesar de ser esse o local pretendido para as atribuir. Noutros casos, é pretendido um conjunto de controlos mais restritivo para novas subscrições, mas não deve ser atribuído a todas as subscrições. Esta definição suporta ambos os casos de utilização.

Ao permitir a definição do grupo de gestão predefinido para novas subscrições, as construções de governação ao nível da organização podem ser aplicadas no grupo de gestão de raiz e pode ser definido um grupo de gestão separado com atribuições de políticas ou atribuições de funções do Azure mais adequadas a uma nova subscrição.

Definir o grupo de gestão predefinido no portal

Para configurar esta definição no portal do Azure, siga estes passos:

  1. Utilize a barra de pesquisa para procurar e selecionar "Grupos de gestão".

  2. No grupo de gestão de raiz, selecione os detalhes junto ao nome do grupo de gestão.

  3. Em Definições, selecione Definições de hierarquia.

  4. Selecione o botão Alterar grupo de gestão predefinido .

    Nota

    Se o botão Alterar grupo de gestão predefinido estiver desativado, o grupo de gestão que está a ser visualizado não é o grupo de gestão de raiz ou o principal de segurança não tem as permissões necessárias para alterar as definições da hierarquia.

  5. Selecione um grupo de gestão da hierarquia e utilize o botão Selecionar .

Predefinir o grupo de gestão com a API REST

Para configurar esta definição com a API REST, é chamado o ponto final Definições de Hierarquia . Para tal, utilize o seguinte formato de corpo e URI da API REST. Substitua {rootMgID} pelo ID do grupo de gestão de raiz e {defaultGroupID} pelo ID do grupo de gestão para se tornar o grupo de gestão predefinido:

  • URI da API REST

    PUT https://management.azure.com/providers/Microsoft.Management/managementGroups/{rootMgID}/settings/default?api-version=2020-05-01
    
  • Corpo do Pedido

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

Para voltar a definir o grupo de gestão predefinido para o grupo de gestão de raiz, utilize o mesmo ponto final e defina defaultManagementGroup para um valor de /providers/Microsoft.Management/managementGroups/{rootMgID}.

Definição - Exigir autorização

Qualquer utilizador, por predefinição, pode criar novos grupos de gestão num inquilino. Os administradores de um inquilino podem querer fornecer apenas estas permissões a utilizadores específicos para manter a consistência e conformidade na hierarquia do grupo de gestão. Se estiver ativada, um utilizador requer a Microsoft.Management/managementGroups/write operação no grupo de gestão de raiz para criar novos grupos de gestão subordinados.

Definir exigir autorização no portal

Para configurar esta definição no portal do Azure, siga estes passos:

  1. Utilize a barra de pesquisa para procurar e selecionar "Grupos de gestão".

  2. No grupo de gestão de raiz, selecione os detalhes junto ao nome do grupo de gestão.

  3. Em Definições, selecione Definições de hierarquia.

  4. Alterne a opção Exigir permissões para criar novos grupos de gestão. para ativar.

    Nota

    Se a opção Exigir permissões para criar novos grupos de gestão estiver desativada, o grupo de gestão que está a ser visualizado não é o grupo de gestão de raiz ou o principal de segurança não tem as permissões necessárias para alterar as definições da hierarquia.

Definir a autorização necessária com a API REST

Para configurar esta definição com a API REST, é chamado o ponto final Definições de Hierarquia . Para tal, utilize o seguinte formato de corpo e URI da API REST. Este valor é um valor booleano, pelo que forneça verdadeiro ou falso para o valor. Um valor verdadeiro permite este método de proteção da hierarquia do grupo de gestão:

  • URI da API REST

    PUT https://management.azure.com/providers/Microsoft.Management/managementGroups/{rootMgID}/settings/default?api-version=2020-05-01
    
  • Corpo do Pedido

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

Para voltar a desativar a definição, utilize o mesmo ponto final e defina requireAuthorizationForGroupCreation como um valor falso.

Exemplo do PowerShell

O PowerShell não tem um comando "Az" para definir o grupo de gestão predefinido ou definir requer autorização, mas, como solução, pode utilizar a API REST com o exemplo do PowerShell abaixo:

$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

Passos seguintes

Para saber mais sobre os grupos de gestão, veja: