Configurar grupos de rede com o Azure Policy no Gerenciador de Rede Virtual do Azure

Neste artigo, você aprende como o Azure Policy é usado no Gerenciador de Rede Virtual do Azure para definir condicionalmente a pertença a um grupo de rede. Usar o Azure Policy para definir a pertença ao seu grupo de rede permite a implantação automática de configuração nos recursos da rede, permitindo que você crie ambientes de rede virtuais escaláveis e dinâmicos para sua organização.

Visão geral da política do Azure

O Azure Policy avalia recursos no Azure comparando as propriedades desses recursos com as regras de negócios desejadas por você. Essas regras de negócio, descritas no formato JSON, são conhecidas como definições de política. Depois de criar suas regras de negócio, a definição da política é atribuída a qualquer escopo de recursos que o Azure suporte, como grupos de gerenciamento, assinaturas, grupos de recursos ou recursos individuais. A atribuição de política se aplica a todos os recursos dentro do escopo do Resource Manager dessa atribuição. Saiba mais sobre o uso do escopo em Escopo no Azure Policy.

Definição de política de grupo de rede

A jornada de criação e implementação de uma política no Azure Policy começa com a criação de um recurso de definição de política. Cada definição de política possui condições para a aplicação e um efeito definido que ocorre se as condições forem atendidas.

Com os grupos de rede do Gerenciador de Rede Virtual do Azure, sua definição de política inclui sua expressão condicional para combinar redes virtuais que atendam aos seus critérios, e especifica o grupo de rede que essas redes virtuais correspondentes se juntam. O efeito addToNetworkGroup é usado para colocar recursos no grupo de rede de destino. Aqui está um exemplo de uma definição de regra de política com o efeito addToNetworkGroup. Para todas as políticas personalizadas, a propriedade mode é definida como Microsoft.Network.Data para direcionar o provedor de recursos do grupo de rede e é necessária para criar uma definição de política para o Gerenciador de Rede Virtual do Azure.

Observação

O Azure Policy atualmente suporta apenas a definição de pertença a grupos de rede para redes virtuais. A associação a grupos de rede dinâmica baseada em Azure Policy também não se aplica atualmente a redes virtuais entre locatários. Você só pode adicionar essas redes virtuais manualmente. Para mais informações, veja limitações conhecidas.

"mode": "Microsoft.Network.Data",
"policyRule": {
      "if": {
        "allOf": [
          {
            "field": "Name",
            "contains": "-gen"
          }
        ]
      },
      "then": {
        "effect": "addToNetworkGroup",
        "details": {
          "networkGroupId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup2/providers/Microsoft.Network/networkManagers/myAVNM/networkGroups/myNG"
        }
      }
}

Importante

Quando você define uma política, deve networkGroupId ser o ID completo do recurso do grupo de rede alvo, conforme visto na definição de exemplo. Não suporta a parametrização na definição da política. Se você precisar parametrizar o grupo de rede, poderá utilizar um modelo do Azure Resource Manager para criar a definição e a atribuição da política.

Quando você usa o Azure Policy com o Gerenciador de Rede Virtual do Azure, a política tem como alvo uma propriedade do provedor de recursos de Microsoft.Network.Data. Devido a esse comportamento, a definição de política deve ter policyType de Custom. Como você define esse valor depende de onde você cria a definição:

  • No painel do Gerenciador de Rede Virtual do Azure: quando você criar uma política para adicionar membros dinamicamente, o Gerenciador de Rede Virtual do Azure define policyType como Custom para você quando a política é criada. Você não precisa configurar você mesmo.
  • Por meio do Azure Policy ou de outras ferramentas: ao criar uma definição de política fora do painel do Gerenciador de Rede Virtual do Azure, defina você mesmo policyType como Custom na definição.

Aqui está um exemplo de uma definição de política com a propriedade policyType definida como Custom.


"properties": {
      "displayName": "myProdAVNM",
      "policyType": "Custom",
      "mode": "Microsoft.Network.Data",
      "metadata": {
        "category": "Azure Virtual Network Manager",
        "createdBy": "-----------------------------",
        "createdOn": "2023-04-10T15:35:35.9308987Z",
        "updatedBy": null,
        "updatedOn": null
      }
}

Saiba mais sobre a estrutura da definição de política.

Criar uma atribuição de política

Semelhante às configurações do gerenciador de Rede Virtual, as definições de política não entrarão em vigor imediatamente após sua criação. Para começar a aplicar, você deve criar uma atribuição de política, que atribui uma definição a ser avaliada em um determinado escopo. Atualmente, todos os recursos dentro do escopo são avaliados em relação à definição, o que permite uma única definição reutilizável que você pode atribuir em vários locais para um controle de associação de grupo mais granular. Saiba mais sobre a Estrutura de Atribuição para Azure Policy.

Definições e atribuições de políticas podem ser criadas via Gerenciador de Rede Virtual do Azure ou Azure Policy.

Permissões necessárias

Para usar grupos de rede com o Azure Policy, os usuários precisam das seguintes permissões:

  • Microsoft.Authorization/policyassignments/Write e Microsoft.Authorization/policydefinitions/Write são necessárias no escopo que você está atribuindo.
  • Microsoft.Network/networkManagers/networkGroups/join/action é necessário no grupo de rede-alvo. Essa permissão permite a adição e remoção de recursos dos membros do grupo de rede-alvo.
  • Ao usar definições de conjunto para atribuir múltiplas políticas ao mesmo tempo, são necessárias permissões concorrentes Microsoft.Network/networkManagers/networkGroups/join/action em todas as definições atribuídas simultaneamente.

Para definir as permissões necessárias, os usuários podem receber funções internas predefinidas com controle de acesso baseado em função:

  • função de Colaborador da Rede para o grupo de rede de destino.
  • Função Colaborador de Política de Recursos no nível do escopo de destino.

Para atribuição de função mais granular, você pode criar funções personalizadas usando a permissão Microsoft.Network/networkManagers/networkGroups/join/action e a permissão policy/write.

Importante

Para modificar os grupos de rede do Gerenciador de Rede Virtual do Azure com o Azure Policy, o acesso deve ser concedido somente por meio de uma atribuição de função do Azure Role-Based Controle de Acesso (RBAC). Não há suporte para o administrador clássico ou autorização herdada. Isso significa que, se sua conta tiver atribuída apenas a função de coadministrador da assinatura, você não terá nenhuma permissão sobre os grupos de rede.

Junto com as permissões necessárias, suas assinaturas e grupos de gerenciamento devem ser registrados com os seguintes provedores de recursos:

  • Microsoft.Network é necessário para criar redes virtuais.
  • Microsoft.PolicyInsights é necessário usar o Azure Policy.

Para registrar os provedores necessários, use Register-AzResourceProvider no Azure PowerShell ou az provider register na CLI do Azure.

Dicas úteis

Filtragem de tipo

Ao configurar suas definições de política, é recomendável incluir uma condição de tipo para definir o escopo para redes virtuais. Essa condição permite que uma política filtre operações de rede não virtuais e melhore a eficiência dos recursos da sua política.

Segmentação regional

Os recursos de políticas são globais, o que significa que qualquer alteração na definição de política entra em vigor em todos os recursos sob o escopo da atribuição, independentemente da região. Se você deseja segmentação regional ou lançamento gradual, recomendamos que inclua uma condição where location in []. Você pode então expandir gradualmente a lista de localizações para expandir gradualmente a membresia de grupos de rede e a subsequente implantação de configurações.

Definição do escopo da tarefa

Se você está seguindo as melhores práticas usando grupos de gerenciamento do Azure, talvez já tenha seus recursos organizados em uma estrutura hierárquica. Usando atribuições de políticas, você pode atribuir a mesma definição de política a múltiplos escopos distintos dentro da sua hierarquia, permitindo ter maior granularidade de controle sobre quais recursos são elegíveis para seu grupo de rede.

Excluindo uma definição do Azure Policy associada a um grupo de rede

Você pode ter cenários em que não precisa mais de uma definição do Azure Policy. Cenários incluem quando um grupo de rede associado a uma política é excluído ou você tem uma política não utilizada que não precisa mais. Para excluir a política, você deve excluir o objeto de associação de política e, em seguida, excluir a definição da política no Azure Policy. Uma vez concluída a exclusão, o nome da definição não pode mais ser rereferenciado ao associar uma nova definição a um grupo de rede.

Próximas etapas