Definieren der dynamischen Mitgliedschaft in Netzwerkgruppen in Azure Virtual Network Manager mit Azure Policy

In diesem Artikel erfahren Sie, wie Sie bedingte Anweisungen von Azure Policy verwenden, um Netzwerkgruppen mit dynamischer Mitgliedschaft zu erstellen. Sie erstellen diese bedingten Anweisungen mit dem Basiseditor, indem Sie Parameter und Operatoren aus einem Dropdown-Menü auswählen. Außerdem erfahren Sie, wie Sie mit dem erweiterten Editor bedingte Anweisungen einer vorhandenen Netzwerkgruppe aktualisieren.

Azure Policy ist ein Dienst, mit dem Sie Governance pro Ressource im großen Stil erzwingen können. Sie können damit bedingte Ausdrücke angeben, die die Gruppenmitgliedschaft im Gegensatz zu expliziten Listen virtueller Netzwerke definieren. Diese Bedingung sorgt dafür, dass Ihre Netzwerkgruppen weiterhin dynamisch bleiben. So können virtuelle Netzwerke automatisch der Gruppe beitreten und die Gruppe verlassen, wenn sich ihre Erfüllung der Bedingung ändert, ohne dass ein Network Manager-Vorgang erforderlich ist.

Wichtig

Azure Virtual Network Manager ist allgemein verfügbar für Hub-and-Spoke-Konnektivitätskonfigurationen und Sicherheitskonfigurationen mit Sicherheitsadministratorregeln. Gitterkonnektivitätskonfigurationen verbleiben in der öffentlichen Vorschau.

Diese Vorschauversion wird ohne Vereinbarung zum Servicelevel bereitgestellt und ist nicht für Produktionsworkloads vorgesehen. Manche Features werden möglicherweise nicht unterstützt oder sind nur eingeschränkt verwendbar. Weitere Informationen finden Sie unter Zusätzliche Nutzungsbestimmungen für Microsoft Azure-Vorschauen.

Voraussetzungen

Parameter und Operatoren

Virtuelle Netzwerke mit dynamischen Mitgliedschaften werden über bedingte Anweisungen ausgewählt. Sie können mehr als eine bedingte Anweisung definieren, indem Sie logische Operatoren wie AND und OR für Szenarien verwenden, in denen Sie die ausgewählten virtuellen Netzwerke weiter eingrenzen müssen.

Liste der unterstützten Parameter:

Parameter Feld „Erweiterter Editor“
Name Name
ID Id
Tags tag['tagName']
Abonnementname [subscription().Name]
Abonnement-ID [subscription().Id]
Abonnementtags [subscription().tags['tagName']]
Ressourcengruppenname [resourceGroup().Name]
Ressourcengruppen-ID [resourceGroup().Id]
Ressourcengruppentags [resourceGroup().tags['tagName']]

Liste der unterstützten Operatoren:

Operatoren Erweiterter Editor
Contains "contains": <>
Enthält nicht "notcontains": <>
In "in": <>
Not In "notin": <>
Ist gleich "equals": <>
Ungleich "notequals": <>
Enthält eines von "contains": <>
Enthält alle "contains": <>
Enthält keines von "notcontains": <>
Exists "exists": true
Ist nicht vorhanden "exists": false

Hinweis

Die Operatoren Existiert und Existiert nicht werden nur mit dem Parameter Tags verwendet.

Basiseditor

Angenommen, Sie haben die folgenden virtuellen Netzwerke in Ihrem Abonnement. Jedem virtuellen Netzwerk ist ein Tag namens Umgebung mit dem Wert Produktion bzw. Test zugeordnet.

Virtual Network Tagname Tagwert
myVNet01-EastUS Umgebung production
myVNet01-WestUS Umgebung production
myVNet02-WestUS Umgebung test
myVNet03-WestUS Umgebung test

Sie möchten nur virtuelle Netzwerke auswählen, deren Tag über ein Schlüssel-Wert-Paar Umgebung gleich Produktion verfügt. Um Ihre bedingte Anweisung mit dem Basiseditor zu erstellen, müssen Sie eine neue Netzwerkgruppe erstellen.

  1. Gehen Sie zu Ihrer Azure Virtual Network Manager-Instanz und wählen Sie Netzwerkgruppen unter Einstellungen aus. Wählen Sie dann + Erstellen, um eine neue Netzwerkgruppe zu erstellen.

  2. Geben Sie einen Namen und eine optionale Beschreibung für die Netzwerkgruppe ein, und wählen Sie Hinzufügen aus.

  3. Wählen Sie die Netzwerkgruppe aus der Liste aus, und wählen Sie Azure Policy erstellen aus.

  4. Geben Sie einen Richtliniennamen ein, und belassen Sie die Bereichsauswahl, es sei denn, es sind Änderungen erforderlich.

  5. Wählen Sie unter Kriterien die Option Tags aus der Dropdownliste unter Parameter und dann Schlüssel-Wert-Paar aus der Dropdownliste unter Operator aus.

  6. Geben Sie Umgebung und Produktion unter Bedingung ein, und wählen Sie Vorschau der Ressourcen anzeigen aus. Es sollten „myVNet01-EastUS“ und „myVNet01-WestUS“ in der Liste angezeigt werden.

    Screenshot: Tag der Fenstereinstellung für „ Azure Policy erstellen“ mit Schlüsse-Wert-Paar

  7. Wählen Sie Schließen und Speichern aus.

  8. Wählen Sie nach einigen Minuten Ihre Netzwerkgruppe aus und wählen Sie unter EinstellungenGruppenmitglieder aus. Es sollten nur „MyVNet01-WestUS“ und „myVNet01-WestUS“ angezeigt werden.

Wichtig

Der Basis-Editor ist nur während der Erstellung einer Azure Policy verfügbar. Sobald eine Richtlinie erstellt wurde, werden alle Bearbeitungen mithilfe von JSON im Abschnitt Richtlinien von Virtual Network Manager oder über Azure Policy durchgeführt.

Erweiterter Editor

Der erweiterte Editor kann verwendet werden, um beim Erstellen einer Netzwerkgruppe oder beim Aktualisieren einer bestehenden Netzwerkgruppe virtuelle Netzwerke auszuwählen. Der erweiterte Editor basiert auf JSON und hilft beim Erstellen und Aktualisieren komplexer bedingter Anweisungen von Azure Policy durch erfahrene Benutzer*innen.

Erstellen einer neuen Richtlinie mit dem erweiterten Editor

  1. Gehen Sie zu Ihrer Azure Virtual Network Manager-Instanz und wählen Sie Netzwerkgruppen unter Einstellungen aus. Wählen Sie dann + Erstellen, um eine neue Netzwerkgruppe zu erstellen.

  2. Geben Sie einen Namen und eine optionale Beschreibung für die Netzwerkgruppe ein, und wählen Sie Hinzufügen aus.

  3. Wählen Sie die Netzwerkgruppe aus der Liste aus, und wählen Sie Azure Policy erstellen aus.

  4. Geben Sie einen Richtliniennamen ein, und belassen Sie die Bereichsauswahl, es sei denn, es sind Änderungen erforderlich.

  5. Wählen Sie unter Kriterien die Option Erweiterter Editor (JSON) aus, um den Editor zu öffnen.

  6. Geben Sie im Textfeld den folgenden JSON-Code ein, und wählen Sie Speichern aus:

       {
       "field": "Name",
       "contains": "myVNet01"
       }
    
  7. Wählen Sie nach einigen Minuten Ihre Netzwerkgruppe aus und wählen Sie unter EinstellungenGruppenmitglieder aus. Es sollten nur „myVNet01-WestUS“ und „myVNet01-EastUS“ angezeigt werden.

Wichtig

Alle Azure-Richtlinien, die Sie mit dem virtuellem Netzwerk-Manager erstellen, befinden sich im Azure Policy-Dienstbereich. Sie werden nicht aus Ihren Azure Policy-Zuweisungen und -Definitionen entfernt, wenn eine Instanz eines virtuellen Netzwerk-Managers gelöscht wird. Dies erfordert das manuelle Entfernen der Richtlinien. Informationen zum Entfernen von Azure-Richtlinien

Bearbeiten einer vorhandenen Richtlinie

  1. Wählen Sie die im vorherigen Abschnitt erstellte Netzwerkgruppe aus. Wählen Sie dann die Registerkarte Richtlinien aus.

  2. Wählen Sie die im vorherigen Abschnitt erstellte Richtlinie aus.

  3. Sie zeigen die bedingten Anweisungen für die Netzwerkgruppe in der Ansicht des erweiterten Editors folgendermaßen an:

    [
      {
         "field": "Name",
         "contains": "myVNet01"
      }
    ]
    
  4. Um eine weitere bedingte Anweisung für ein Name-Feld hinzuzufügen, das nicht WestUS enthält, geben Sie Folgendes in den erweiterten Editor ein:

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

    Der Parameter "allOf" enthält beide bedingten Anweisungen, die durch den logischen Operator AND getrennt sind.

  5. Wählen Sie Speichern aus.

  6. Wählen Sie nach einigen Minuten Ihre Netzwerkgruppe aus und wählen Sie unter EinstellungenGruppenmitglieder aus. Es sollte nur „myVNet01-EastUS“ angezeigt werden.

Eine vollständige Liste der Parameter und Operatoren, die Sie mit dem erweiterten Editor verwenden können, finden Sie unter Parameter und Operatoren.

Weitere Beispiele

Hier finden Sie weitere Beispiele für bedingte Anweisungen im erweiterten Editor.

Beispiel 1: Nur OR-Operator

In diesem Beispiel wird der logische Operator OR verwendet, um zwei bedingte Anweisungen zu trennen.

  • Basiseditor:

    Screenshot der bedingten Anweisung der Netzwerkgruppe mit dem logischen Operator OR.

  • Fortgeschrittener Operator:

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

Der Parameter "anyOf" enthält beide bedingten Anweisungen, die durch den logischen Operator OR getrennt sind.

Beispiel 2: AND- und OR-Operator gleichzeitig

  • Basiseditor:

    Screenshot der bedingten Anweisung der Netzwerkgruppe mit dem logischen Operator OR und AND.

  • Fortgeschrittener Editor:

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

Sowohl "allOf" and "anyOf" als auch or werden im Code verwendet. Da der AND-Operator an letzter Stelle in der Liste steht, befindet er sich im äußeren Teil des Codes, der die beiden bedingten Anweisungen mit dem OR-Operator enthält.

Beispiel 3: Verwenden benutzerdefinierter Tagwerte mit dem erweiterten Editor

In diesem Beispiel wird eine bedingte Anweisung erstellt, die virtuelle Netzwerke findet, deren Name myVNet enthält und deren Tag Umgebung den Wert Produktion aufweist.

  • Fortgeschrittener Editor:

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

    Hinweis

    Bedingte Anweisungen sollten nach dem Ressourcentyp „Microsoft.Network/virtualNetwork“ filtern, um die Effizienz zu steigern. Diese Bedingung wird für Sie bei allen bedingten Anweisungen vorangestellt, die über das Portal angegeben werden.

Nächste Schritte