Udostępnij za pośrednictwem


Definiowanie dynamicznego członkostwa w grupie sieci w usłudze Azure Virtual Network Manager za pomocą usługi Azure Policy

Z tego artykułu dowiesz się, jak używać instrukcji warunkowych usługi Azure Policy do tworzenia grup sieciowych z członkostwem dynamicznym. Te instrukcje warunkowe są tworzone przy użyciu edytora podstawowego, wybierając parametry i operatory z menu rozwijanego. Dowiesz się również, jak za pomocą edytora zaawansowanego aktualizować instrukcje warunkowe istniejącej grupy sieciowej.

Azure Policy to usługa umożliwiająca wymuszanie ładu poszczególnych zasobów na dużą skalę. Może służyć do określania wyrażeń warunkowych definiujących członkostwo w grupie, w przeciwieństwie do jawnych list sieci wirtualnych. Ten warunek nadal dynamicznie zasila grupy sieciowe, co pozwala sieciom wirtualnym na dołączanie i pozostawienie grupy automatycznie w miarę ich realizacji zmian warunku bez wymaganej operacji Menedżera sieci.

Wymagania wstępne

Parametry i operatory

Sieci wirtualne z członkostwem dynamicznym są wybierane przy użyciu instrukcji warunkowych. Można zdefiniować więcej niż jedną instrukcję warunkową przy użyciu operatorów logicznych, takich jak AND i OR , w scenariuszach, w których należy dodatkowo zawęzić wybrane sieci wirtualne.

Lista obsługiwanych parametrów:

Parametry Zaawansowane pole edytora
Nazwa/nazwisko Name
Identyfikator Id
Tagi tag['tagName']
Nazwa subskrypcji [subscription().Name]
Identyfikator subskrypcji [subscription().Id]
Tagi subskrypcji [subscription().tags['tagName']]
Nazwa grupy zasobów [resourceGroup().Name]
Identyfikator grupy zasobów [resourceGroup().Id]
Tagi grupy zasobów [resourceGroup().tags['tagName']]

Lista obsługiwanych operatorów:

Operatory Edytor zaawansowany
Contains "contains": <>
Nie zawiera "notcontains": <>
In "in": <>
Nie w "notin": <>
Equals "equals": <>
Nie równa się "notequals": <>
Zawiera dowolny z "contains": <>
Zawiera wszystkie "contains": <>
Nie zawiera żadnego z "notcontains": <>
Istnieje "exists": true
Nie istnieje "exists": false

Uwaga

Istnieje i nie istnieje operatory są używane tylko z parametrem Tagi.

Edytor podstawowy

Załóżmy, że masz następujące sieci wirtualne w ramach subskrypcji. Każda sieć wirtualna ma skojarzony tag o nazwie environment z odpowiednią wartością środowiska produkcyjnego lub testowego.

Virtual Network Nazwa tagu Wartość tagu
myVNet01-EastUS Środowisko usługi produkcja
myVNet01-WestUS Środowisko usługi produkcja
myVNet02-WestUS Środowisko usługi test
myVNet03-WestUS Środowisko usługi test

Chcesz wybrać tylko sieci wirtualne, których tag ma parę klucz-wartość środowiska równej środowisku produkcyjnemu. Aby rozpocząć tworzenie instrukcji warunkowej przy użyciu edytora podstawowego, należy utworzyć nową grupę sieciową.

  1. Przejdź do wystąpienia usługi Azure Virtual Network Manager i wybierz pozycję Grupy sieciowe w obszarze Ustawienia. Następnie wybierz pozycję + Utwórz , aby utworzyć nową grupę sieciową.

  2. Wprowadź nazwę i opcjonalny opis grupy sieciowej, a następnie wybierz pozycję Dodaj.

  3. Wybierz grupę sieci z listy i wybierz pozycję Utwórz usługę Azure Policy.

  4. Wprowadź nazwę zasad i pozostaw wybrane opcje Zakres, chyba że są potrzebne zmiany.

  5. W obszarze Kryteria wybierz pozycję Tagi z listy rozwijanej w obszarze Parametr , a następnie wybierz parę klucz-wartość z listy rozwijanej w obszarze Operator.

  6. Wprowadź środowisko i środowisko produkcyjne w obszarze Warunek i wybierz pozycję Zasoby w wersji zapoznawczej. Na liście powinny zostać wyświetlone jednostki myVNet01-EastUS i myVNet01-WestUS.

    Zrzut ekranu przedstawiający tag ustawienia okna Tworzenie usługi Azure Policy z parą wartości klucza.

  7. Wybierz pozycję Zamknij i zapisz.

  8. Po kilku minutach wybierz grupę sieci i wybierz pozycję Członkowie grupy w obszarze Ustawienia. Powinny być widoczne tylko sieci myVNet01-WestUS i myVNet01-WestUS.

Ważne

Edytor podstawowy jest dostępny tylko podczas tworzenia usługi Azure Policy. Po utworzeniu zasad wszystkie edycje będą wykonywane przy użyciu formatu JSON w sekcji Zasady menedżera sieci wirtualnej lub za pośrednictwem usługi Azure Policy.

Zaawansowany edytor

Edytor zaawansowany może służyć do wybierania sieci wirtualnych podczas tworzenia grupy sieciowej lub aktualizowania istniejącej grupy sieciowej. Oparty na formacie JSON zaawansowany edytor jest przydatny do tworzenia i aktualizowania złożonych instrukcji warunkowych usługi Azure Policy przez doświadczonych użytkowników.

Tworzenie nowych zasad za pomocą edytora zaawansowanego

  1. Przejdź do wystąpienia usługi Azure Virtual Network Manager i wybierz pozycję Grupy sieciowe w obszarze Ustawienia. Następnie wybierz pozycję + Utwórz , aby utworzyć nową grupę sieciową.

  2. Wprowadź nazwę i opcjonalny opis grupy sieciowej, a następnie wybierz pozycję Dodaj.

  3. Wybierz grupę sieci z listy i wybierz pozycję Utwórz usługę Azure Policy.

  4. Wprowadź nazwę zasad i pozostaw wybrane opcje Zakres, chyba że są potrzebne zmiany.

  5. W obszarze Kryteria wybierz pozycję Edytor zaawansowany (JSON), aby otworzyć edytor.

  6. Wprowadź następujący kod JSON w polu tekstowym i wybierz pozycję Zapisz:

       {
       "field": "Name",
       "contains": "myVNet01"
       }
    
  7. Po kilku minutach wybierz grupę sieci i wybierz pozycję Członkowie grupy w obszarze Ustawienia. Powinny być widoczne tylko sieci myVNet01-WestUS i myVNet01-EastUS.

Ważne

Wszystkie zasady platformy Azure tworzone za pomocą menedżera sieci wirtualnej będą aktywne w obszarze usług Azure Policy. Nie zostaną one usunięte z przypisań i definicji usługi Azure Policy po usunięciu wystąpienia menedżera sieci wirtualnej. Wymaga to ręcznego usunięcia zasad. Dowiedz się, jak usunąć zasady platformy Azure

Edytowanie istniejących zasad

  1. Wybierz grupę sieci utworzoną w poprzedniej sekcji. Następnie wybierz kartę Zasady .

  2. Wybierz zasady utworzone w poprzedniej sekcji.

  3. Instrukcje warunkowe dla grupy sieciowej są widoczne w widoku edytora z wyprzedzeniem w następujący sposób:

    [
      {
         "field": "Name",
         "contains": "myVNet01"
      }
    ]
    
  4. Aby dodać kolejną instrukcję warunkową dla pola Nazwa, które nie zawiera westUS, wprowadź następujące polecenie w edytorze zaawansowanym:

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

    Parametr "allOf" zawiera obie instrukcje warunkowe oddzielone operatorem logicznym AND .

  5. Wybierz pozycję Zapisz.

  6. Po kilku minutach wybierz grupę sieci i wybierz pozycję Członkowie grupy w obszarze Ustawienia. Powinna zostać wyświetlona tylko sieć myVNet01-EastUS.

Zobacz Parametry i operatory , aby uzyskać pełną listę parametrów i operatorów, których można używać z edytorem zaawansowanym.

Więcej przykładów

Poniżej przedstawiono więcej przykładów instrukcji warunkowych w edytorze zaawansowanym.

Przykład 1: tylko operator OR

W tym przykładzie użyto operatora logicznego OR do oddzielenia dwóch instrukcji warunkowych.

  • Edytor podstawowy:

    Zrzut ekranu przedstawiający instrukcję warunkową grupy sieci przy użyciu operatora logicznego OR.

  • Operator zaawansowany:

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

Parametr "anyOf" zawiera obie instrukcje warunkowe oddzielone operatorem logicznym OR .

Przykład 2: operator AND i OR w tym samym czasie

  • Edytor podstawowy:

    Zrzut ekranu przedstawiający instrukcję warunkową grupy sieci przy użyciu operatora LOGICZNEgo OR i AND.

  • Edytor zaawansowany:

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

Oba "allOf" elementy i "anyOf" są używane w kodzie. Ponieważ operator AND jest ostatni na liście, znajduje się na zewnętrznej części kodu zawierającego dwie instrukcje warunkowe z operatorem OR.

Przykład 3. Używanie niestandardowych wartości tagów z edytorem zaawansowanym

W tym przykładzie tworzona jest instrukcja warunkowa, która znajduje sieci wirtualne, w których nazwa zawiera nazwę myVNet, a tag środowiska jest równy środowisku produkcyjnemu.

  • Edytor zaawansowany:

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

    Uwaga

    Aby zwiększyć wydajność, warunkowe należy filtrować według typu zasobu Microsoft.Network/virtualNetwork. Ten warunek jest prepended dla Ciebie na wszystkich warunkowych określonych za pośrednictwem portalu.

Następne kroki