Konfigurera nätverksgrupper med Azure Policy i Azure Virtual Network Manager

I denna artikel lär du dig hur Azure Policy används i Azure Virtual Network Manager för att villkorligt definiera medlemskap i nätverksgrupper. Genom att använda Azure Policy för att definiera ditt nätverksgruppmedlemskap möjliggör automatisk konfigurationsdistribution till dina nätverksresurser, vilket ger dig möjlighet att skapa skalbara och dynamiska virtuella nätverksmiljöer för din organisation.

Översikt över Azure Policy

Azure Policy utvärderar resurser i Azure genom att jämföra egenskaperna hos dessa resurser med dina önskade affärsregler. Dessa affärsregler, som beskrivs i JSON-format, kallas principdefinitioner. När du har skapat dina affärsregler tilldelas policydefinitionen till alla resurser som Azure stödjer, såsom hanteringsgrupper, prenumerationer, resursgrupper eller enskilda resurser. Policytilldelningen gäller för alla resurser inom Resource Manager-området för den uppgiften. Läs mer om omfångsanvändning med omfång i Azure Policy.

Definition av nätverksgruppprincip

När du skapar och implementerar en princip i Azure Policy börjar du med att skapa en principdefinitionsresurs. Varje policydefinition har villkor för verkställighet och en definierad effekt som inträffar om villkoren uppfylls.

Med Azure Virtual Network Manager nätverksgrupper inkluderar din policydefinition ditt villkorsuttryck för att matcha virtuella nätverk som uppfyller dina kriterier, och specificerar vilken nätverksgrupp som de som matchar virtuella nätverk ansluter sig till. Effekten addToNetworkGroup används för att placera resurser i målnätverksgruppen. Här är ett exempel på en principregeldefinition med effekten addToNetworkGroup . För alla anpassade policyer anges egenskapen mode till Microsoft.Network.Data för att rikta in sig på resursprovidern för nätverksgrupper och krävs för att skapa en policydefinition för Azure Virtual Network Manager.

Kommentar

Azure Policy stöder för närvarande endast definitionen av nätverksgruppsmedlemskap för virtuella nätverk. Azure Policy-baserat dynamiskt nätverksgruppmedlemskap gäller för närvarande inte för virtuella nätverk som är över flera hyresgäster. Du kan bara lägga till dessa virtuella nätverk manuellt. För mer information, se kända begränsningar.

"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"
        }
      }
}

Viktigt!

När du definierar en policy måste det networkGroupId vara hela resurs-ID:t för målnätverkets grupp, som ses i exempeldefinitionen. Den stöder inte parameterisering i policydefinitionen. Om du behöver parameterisera nätverksgruppen kan du använda en Azure Resource Manager-mall för att skapa principdefinitionen och tilldelningen.

När du använder Azure Policy med Azure Virtual Network Manager, riktar policyn sig mot en egenskap Resource Provider av Microsoft.Network.Data. På grund av det här beteendet måste policydefinitionen ha en policyTypeCustom. Hur du sätter det värdet beror på var du skapar definitionen:

  • Från instrumentpanelen för Azure Virtual Network Manager: när du skapar en policy för att dynamiskt lägga till medlemmar anger Azure Virtual Network Manager policyType till Custom åt dig när policyn skapas. Du behöver inte ställa in det själv.
  • Genom Azure Policy eller andra verktyg: när du skapar en policydefinition utanför Azure Virtual Network Manager-dashboarden, ställ policyType in till Custom i definitionen själv.

Här är ett exempel på en principdefinition med egenskapen policyType inställd på 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
      }
}

Läs mer om policydefinitionsstruktur.

Skapa en principtilldelning

På samma sätt som med Virtual Network Manager-konfigurationer börjar principdefinitioner inte omedelbart gälla när du skapar dem. För att börja tillämpa måste du skapa en principtilldelning som tilldelar en definition som ska utvärderas i ett visst omfång. För närvarande utvärderas alla resurser inom omfånget mot definitionen, vilket tillåter en enda återanvändbar definition som du kan tilldela på flera platser för mer detaljerad gruppmedlemskapskontroll. Läs mer om tilldelningsstrukturen för Azure Policy.

Policydefinitioner och tilldelning kan skapas via Azure Virtual Network Manager eller Azure Policy.

Behörigheter som krävs

Om du vill använda nätverksgrupper med Azure Policy behöver användarna följande behörigheter:

  • Microsoft.Authorization/policyassignments/Write och Microsoft.Authorization/policydefinitions/Write behövs i det omfång som du tilldelar.
  • Microsoft.Network/networkManagers/networkGroups/join/action behövs på målnätverket. Denna behörighet möjliggör tillägg och borttagning av medlemsresurser från målnätverkets grupp.
  • När man använder mängddefinitioner för att tilldela flera policyer samtidigt krävs samtidiga Microsoft.Network/networkManagers/networkGroups/join/action behörigheter för alla definitioner som tilldelas samtidigt.

För att ange nödvändiga behörigheter kan användare tilldelas inbyggda roller med rollbaserad åtkomstkontroll:

  • Rollen Nätverksdeltagare till målnätverksgruppen.
  • Resursprincipdeltagare-rollen på målomfångsnivån.

Om du vill ha en mer detaljerad tilldelning av roller kan du skapa anpassade roller med Microsoft.Network/networkManagers/networkGroups/join/action behörigheten och policy/write behörigheten.

Viktigt!

För att modifiera Azure Virtual Network Manager nätverksgrupper med Azure Policy måste du beviljas åtkomst endast via Azure Role-Based Access Control (RBAC) rolltilldelning. Klassisk administratör eller äldre auktorisering stöds inte. Det betyder att om ditt konto endast är tilldelat rollen som medadministratör har du inga behörigheter i nätverksgrupperna.

Tillsammans med de behörigheter som krävs måste dina prenumerationer och hanteringsgrupper registreras med följande resursprovidrar:

  • Microsoft.Network krävs för att skapa virtuella nätverk.
  • Microsoft.PolicyInsights krävs för att använda Azure Policy.

För att registrera de nödvändiga resursleverantörerna använder du Register-AzResourceProvider i Azure PowerShell eller az provider register med Azure CLI.

Användbara tips

Filtrering efter typ

När du konfigurerar dina principdefinitioner rekommenderar vi att du inkluderar ett typvillkor för att begränsa det till virtuella nätverk. Detta villkor gör att en policy kan filtrera bort icke-virtuella nätverksoperationer och förbättra effektiviteten i dina policyresurser.

Regional uppdelning

Policyresurser är globala, vilket innebär att varje ändring av policydefinitionen träder i kraft på alla resurser inom tilldelningsområdet, oavsett region. Om du vill ha regional uppdelning eller gradvis utrullning, rekommenderar vi att du inkluderar ett where location in []-villkor. Du kan sedan successivt utöka platslistan för att gradvis rulla ut nätverksgruppmedlemskap och efterföljande konfigurationsdistribution.

Uppgiftens omfattning

Om du följer bästa praxis med Azure-hanteringsgrupper kan du redan ha dina resurser organiserade i en hierarkisk struktur. Med policytilldelningar kan du tilldela samma policydefinition till flera olika scopes inom din hierarki, vilket ger dig en högre kontroll över vilka resurser som är berättigade till din nätverksgrupp.

Ta bort en Azure Policy-definition som är associerad med en nätverksgrupp

Du kan ha situationer där du inte längre behöver en Azure Policy-definition. Scenarier inkluderar när en nätverksgrupp kopplad till en policy tas bort eller när du har en oanvänd policy som du inte längre behöver. För att ta bort policyn måste du ta bort policyassociationsobjektet och sedan policydefinitionen i Azure Policy. När raderingen är klar kan definitionsnamnet inte längre refereras om när en ny definition kopplas till en nätverksgrupp.

Nästa steg