Utvärdera effekten av en ny Azure Policy-definition

Azure Policy är ett kraftfullt verktyg för att hantera dina Azure-resurser för att uppfylla efterlevnadsbehov för affärsstandarder. När personer, processer eller pipelines skapar eller uppdaterar resurser granskar Azure Policy begäran. När principdefinitionseffekten är Modify, Append eller DeployIfNotExists ändrar principen begäran eller lägger till den. När principdefinitionseffekten är Granskning eller AuditIfNotExists skapar principen en aktivitetsloggpost för nya och uppdaterade resurser. Och när principdefinitionseffekten är Neka eller NekaÅtgärd stoppar principen skapandet eller ändringen av begäran.

Dessa resultat är exakt enligt önskan när du vet att principen har definierats korrekt. Det är dock viktigt att verifiera att en ny princip fungerar som den ska innan den kan ändras eller blockera arbete. Verifieringen måste se till att endast de avsedda resurserna bedöms vara icke-kompatibla och att inga kompatibla resurser inkluderas felaktigt (kallas falskt positiva) i resultaten.

Den rekommenderade metoden för att verifiera en ny principdefinition är genom att följa dessa steg:

  • Definiera din princip noggrant
  • Testa principens effektivitet
  • Granska nya eller uppdaterade resursbegäranden
  • Distribuera din princip till resurser
  • Kontinuerlig övervakning

Definiera din princip noggrant

Det är viktigt att förstå hur affärspolicyn implementeras som en principdefinition och relationen mellan Azure-resurser och andra Azure-tjänster. Det här steget utförs genom att identifiera kraven och fastställa resursegenskaperna. Men det är också viktigt att se bortom den snäva definitionen av din affärsprincip. Anger din princip till exempel "Alla virtuella datorer måste..."? Hur är det med andra Azure-tjänster som använder virtuella datorer, till exempel HDInsight eller AKS? När vi definierar en princip måste vi överväga hur den här principen påverkar resurser som används av andra tjänster.

Därför bör dina principdefinitioner vara så noggrant definierade och fokuserade på de resurser och egenskaper som du behöver utvärdera för efterlevnad som möjligt.

Testa principens effektivitet

Innan du vill hantera nya eller uppdaterade resurser med din nya principdefinition är det bäst att se hur den utvärderar en begränsad delmängd av befintliga resurser, till exempel en testresursgrupp. Azure Policy VS Code-tillägget möjliggör isolerad testning av definitioner mot befintliga Azure-resurser med hjälp av utvärderingsgenomsökningen på begäran. Du kan också tilldela definitionen i en Dev-miljö med tillämpningsläget Inaktiverad (DoNotEnforce) för din principtilldelning för att förhindra att effekten utlöses eller aktivitetsloggposter skapas.

Det här steget ger dig möjlighet att utvärdera efterlevnadsresultaten för den nya principen på befintliga resurser utan att påverka arbetsflödet. Kontrollera att inga kompatibla resurser visas som icke-kompatibla (falskt positiva) och att alla resurser som du förväntar dig är icke-kompatibla har markerats korrekt. När den första delmängden av resurserna har verifierats som förväntat expanderar du långsamt utvärderingen till fler befintliga resurser och fler omfång.

Att utvärdera befintliga resurser på det här sättet ger också möjlighet att åtgärda icke-kompatibla resurser innan den nya principen implementeras fullt ut. Den här rensningen kan göras manuellt eller via en reparationsaktivitet om principdefinitionseffekten är DeployIfNotExists eller Modify.

Principdefinitioner med en DeployIfNotExist bör använda Azure Resource Manager-mallen och vad händer om du vill verifiera och testa de ändringar som sker när du distribuerar ARM-mallen.

Granska nya eller uppdaterade resurser

När du har verifierat att den nya principdefinitionen rapporterar korrekt på befintliga resurser är det dags att titta på effekten av principen när resurser skapas eller uppdateras. Om principdefinitionen stöder effektparameterisering använder du Audit eller AuditIfNotExist. Med den här konfigurationen kan du övervaka skapande och uppdatering av resurser för att se om den nya principdefinitionen utlöser en post i Azure-aktivitetsloggen för en resurs som inte är kompatibel utan att påverka befintligt arbete eller begäranden.

Vi rekommenderar att du både uppdaterar och skapar nya resurser som matchar din principdefinition för att se att effekten Audit eller AuditIfNotExist utlöses korrekt när det är förväntat. Var på jakt efter resursbegäranden som inte ska påverkas av den nya principdefinitionen som utlöser effekten Audit eller AuditIfNotExist . Dessa berörda resurser är ett annat exempel på falska positiva identifieringar och måste åtgärdas i principdefinitionen innan den fullständiga implementeringen.

Om principdefinitionen ändras i det här skedet av testningen rekommenderar vi att du påbörjar valideringsprocessen med granskning av befintliga resurser. En ändring av principdefinitionen för ett falskt positivt resultat för nya eller uppdaterade resurser kommer sannolikt också att påverka befintliga resurser.

Distribuera din princip till resurser

När du har slutfört valideringen av den nya principdefinitionen med både befintliga resurser och nya eller uppdaterade resursbegäranden börjar du implementera principen. Vi rekommenderar att du skapar principtilldelningen för den nya principdefinitionen till en delmängd av alla resurser först, till exempel en resursgrupp. Du kan filtrera ytterligare efter resurstyp eller plats med hjälp av resourceSelectors egenskapen i principtilldelningen. När du har verifierat den första distributionen utökar du omfånget för principen till bredare som en resursgrupp. När du har verifierat den inledande distributionen expanderar du effekten av principen genom att justera resourceSelector-filtren för att rikta in sig på fler platser eller resurstyper, eller genom att ta bort tilldelningen och ersätta den med en ny i bredare omfattningar som prenumerationer och hanteringsgrupper. Fortsätt den här gradvisa distributionen tills den har tilldelats hela omfattningen av resurser som ska omfattas av den nya principdefinitionen.

Om resurser finns som ska undantas från den nya principdefinitionen under distributionen kan du åtgärda dem på något av följande sätt:

  • Uppdatera principdefinitionen så att den blir mer explicit för att minska oavsiktlig påverkan
  • Ändra omfånget för principtilldelningen (genom att ta bort och skapa en ny tilldelning)
  • Lägg till resursgruppen i undantagslistan för principtilldelningen

Eventuella ändringar av omfånget (nivå eller undantag) bör verifieras fullständigt och kommuniceras med dina säkerhets- och efterlevnadsorganisationer för att säkerställa att det inte finns några luckor i täckningen.

Övervaka din princip och efterlevnad

Att implementera och tilldela din principdefinition är inte det sista steget. Övervaka kontinuerligt efterlevnadsnivån för resurser till din nya principdefinition och konfigurera lämpliga Azure Monitor-aviseringar och meddelanden för när icke-kompatibla enheter identifieras. Vi rekommenderar också att du utvärderar principdefinitionen och relaterade tilldelningar enligt ett schema för att verifiera att principdefinitionen uppfyller affärsprincip- och efterlevnadsbehoven. Principer bör tas bort om de inte längre behövs. Principer måste också uppdateras då och då när de underliggande Azure-resurserna utvecklas och lägga till nya egenskaper och funktioner.

Nästa steg