Definir a associação dinâmica do grupo de rede no Gerenciador de Rede Virtual do Azure com o Azure Policy

Neste artigo, você aprenderá a usar as instruções condicionais do Azure Policy para criar grupos de rede com associação dinâmica. Você cria essas instruções condicionais usando o editor básico, selecionando parâmetros e operadores em um menu suspenso. Você também aprenderá a usar o editor avançado para atualizar instruções condicionais de um grupo de rede existente.

O Azure Policy é um serviço que permite que você imponha a governança em cada recurso em escala. Ele pode ser usado para especificar expressões condicionais que definem a associação de grupo, em vez de listas explícitas de redes virtuais. Essa condição continuará controlando dinamicamente seus grupos de rede, permitindo que as redes virtuais entrem e saiam do grupo automaticamente, à medida que passam a atender ou deixam de atender à condição, sem exigir nenhuma operação do Gerenciador de Rede.

Observação

O tempo condicional de pertença a grupos de rede depende do escopo de atribuição do Azure Policy. Para escopos de menos de 1.000 assinaturas, as atualizações de associação podem levar alguns minutos. Em ambientes com mais de 1.000 assinaturas, o Azure Policy pode levar até 24 horas para notificar o grupo de rede. Após a notificação, configurações ativas se aplicam aos membros atualizados em alguns minutos. Para mais informações, veja Latência e tempo de implantação.

Pré-requisitos

Parâmetros e operadores

Redes virtuais com associações dinâmicas são selecionadas usando instruções condicionais. Você pode definir mais de uma instrução condicional usando operadores lógicos como AND e OR para cenários em que você precisa restringir ainda mais as redes virtuais selecionadas.

Lista de parâmetros com suporte:

Parâmetros Campo Editor avançado
Nome Name
ID Id
Tags tag['tagName']
Nome da assinatura [subscription().Name]
ID da assinatura [subscription().Id]
Etiquetas de Assinatura [subscription().tags['tagName']]
Nome do Grupo de Recursos [resourceGroup().Name]
ID do Grupo de Recursos [resourceGroup().Id]
Marcas de Grupo de Recursos [resourceGroup().tags['tagName']]

Lista de operadores com suporte:

Operadores Editor avançado
Contém "contains": <>
Não contém "notcontains": <>
In "in": <>
Não está em "notin": <>
Igual "equals": <>
Não é igual a "notequals": <>
Contém qualquer um dos seguintes "contains": <>
Contém todos os "contains": <>
Não contém nada de "notcontains": <>
Existe "exists": true
Não existe "exists": false

Observação

Os operadores Existe e Não existe são usados apenas com o parâmetro Marcações.

Editor básico

Suponha que você tenha as seguintes redes virtuais em sua assinatura. Cada rede virtual tem uma marca associada chamada ambiente com o respectivo valor de produção ou de teste.

Rede Virtual Nome da tag Valor da etiqueta
myVNet01-EastUS ambiente produção
myVNet01-WestUS ambiente produção
myVNet02-WestUS ambiente testar
myVNet03-WestUS ambiente testar

É recomendável selecionar redes virtuais cuja marca tenha um par de valores de chave de ambiente igual ao de produção. Para começar a usar o editor básico para criar uma instrução condicional, você precisa criar um novo grupo de rede.

  1. Acesse a instância do Gerenciador de Rede Virtual do Azure e selecione Grupos de Rede em Configurações. Em seguida, selecione + Criar para criar um grupo de rede novo.

  2. Insira um Nome e uma Descrição opcional para o grupo de rede e selecione Adicionar.

  3. Selecione o grupo de rede na lista e selecione Criar o Azure Policy.

  4. Insira um Nome da política e mantenha as seleções de Escopo, a menos que seja necessário alterá-las.

  5. Em Critérios, selecioneMarcas na lista suspensa em Parâmetro e, em seguida, selecione Par de valores de chave na lista suspensa em Operador.

  6. Insira o ambiente e a produção em Condição e selecione Visualizar Recursos. Você deve ver myVNet01-EastUS e myVNet01-WestUS aparecerem na lista.

    Captura de tela da janela Criar Política do Azure definindo uma tag com um par chave-valor.

  7. Selecione Fechar e Salvar.

  8. Após alguns minutos, selecione seu grupo de rede e selecione Membros do Grupo em Configurações. Você deve ver apenas myVNet01-EastUS e myVNet01-WestUS.

Importante

O editor básico fica disponível apenas durante a criação de um Azure Policy. Depois que uma política for criada, todas as edições serão feitas usando JSON na seção Políticas do gerenciador de rede virtual ou por meio do Azure Policy.

Editor avançado

O editor avançado pode ser usado para selecionar redes virtuais durante a criação de um grupo de rede ou ao atualizar um grupo de rede existente. Com base no JSON, o editor avançado é útil para criar e atualizar instruções condicionais do Azure Policy complexas de usuários experientes.

Criar uma nova política com o editor avançado

  1. Acesse a instância do Gerenciador de Rede Virtual do Azure e selecione Grupos de Rede em Configurações. Em seguida, selecione + Criar para criar um grupo de rede novo.

  2. Insira um Nome e uma Descrição opcional para o grupo de rede e selecione Adicionar.

  3. Selecione o grupo de rede na lista e selecione Criar o Azure Policy.

  4. Insira um Nome da política e mantenha as seleções de Escopo, a menos que seja necessário alterá-las.

  5. Em Critérios, selecione Editor avançado (JSON) para abrir o editor.

  6. Insira o código JSON a seguir na caixa de texto e selecione Salvar:

       {
       "field": "Name",
       "contains": "myVNet01"
       }
    
  7. Após alguns minutos, selecione seu grupo de rede e selecione Membros do Grupo em Configurações. Você deverá ver apenas myVNet01-WestUS e myVNet01-EastUS.

Importante

Todas as Políticas do Azure criadas por meio do gerenciador de rede virtual residirão na área de serviços do Azure Policy. Elas não serão removidas de suas atribuições e definições do Azure Policy quando uma instância do gerenciador de rede virtual for excluída. Isso requer a remoção manual das políticas. Saiba como remover as Políticas do Azure

Editar uma política existente

  1. Selecione o grupo de rede criado na seção anterior. Em seguida, selecione a guia Políticas.

  2. Selecione a política criada na seção anterior.

  3. Você verá as instruções condicionais para o grupo de rede na exibição do editor avançado, conforme a seguir:

    [
      {
         "field": "Name",
         "contains": "myVNet01"
      }
    ]
    
  4. Para adicionar outra instrução condicional para um campo Nome que não contenhaWestUS, insira o seguinte no editor avançado:

    {
       "allOf": [
    
          {
             "field": "Name",
             "contains": "VNet01"
          },
          {
             "field": "Name",
             "notcontains": "WestUS"
          }
       ]
    }
    

    O parâmetro "allOf" contém ambas as instruções condicionais separadas pelo operador lógico AND.

  5. Selecione Salvar.

  6. Após alguns minutos, selecione seu grupo de rede e selecione Membros do Grupo em Configurações. Você deverá ver apenas myVNet01-EastUS.

Consulte Parâmetro e operadores para ver a lista completa de parâmetros e operadores que você pode usar com o editor avançado.

Mais exemplos

Aqui estão mais exemplos de instruções condicionais no editor avançado.

Exemplo 1: somente operador OR

Este exemplo usa o operador lógico OR para separar duas instruções condicionais.

  • Editor básico:

    Captura de tela da instrução condicional do grupo de rede usando o operador lógico OR.

  • Operador avançado:

    {
       "anyOf": [
          {
             "field": "Name",
             "contains": "myVNet01"
          },
          {
             "field": "Name",
             "contains": "myVNet02"
          }
       ]
    }
    

O parâmetro "anyOf" contém ambas as instruções condicionais separadas pelo operador lógico OR.

Exemplo 2: operador AND e OR ao mesmo tempo

  • Editor básico:

    Captura de tela da instrução condicional do grupo de rede usando os operadores lógicos OR e AND.

  • Editor avançado:

{
   "allOf": [
      {
         "anyOf": [
            {
               "field": "Name",
               "contains": "myVNet01"
            },
            {
               "field": "Name",
               "contains": "myVNet02"
            }
         ]
      },
      {
         "field": "Name",
         "notcontains": "West"
      }
   ]
}

Ambos "allOf" e "anyOf" são usados no código. Como o operador AND é o último na lista, ele fica na parte externa do código que contém as duas instruções condicionais com o operador OR.

Exemplo 3: Usando valores de tags personalizados com o editor avançado

Neste exemplo, é criada uma instrução condicional que localiza redes virtuais em que o nome inclua myVNet E a marca ambiente seja igual à produção.

  • Editor avançado:

    
       {
            "allOf": [
              {
                 "field": "Name",
                 "contains": "myVNet"
              },      
              {
                 "field": "tags['environment']",
                 "equals": "production"
              }
            ]    
       }
    
    

    Observação

    As expressões condicionais devem filtrar por tipo de recurso Microsoft.Network/virtualNetwork para melhorar a eficiência. Essa condição é predefinida para você em todos os condicionais especificados por meio do portal.

Próximas etapas