Åtgärda icke-kompatibla resurser med Azure Policy

Resurser som inte är kompatibla med principer med deployIfNotExists eller ändringseffekter kan placeras i ett kompatibelt tillstånd via Reparation. Reparationen utförs genom reparationsåtgärder som distribuerar mallen deployIfNotExists eller ändringsåtgärderna för den tilldelade principen för dina befintliga resurser och prenumerationer, oavsett om tilldelningen finns i en hanteringsgrupp, prenumeration, resursgrupp eller enskild resurs. Den här artikeln visar de steg som krävs för att förstå och utföra åtgärder med Azure Policy.

Så här fungerar åtkomstkontroll för reparation

När Azure Policy startar en malldistribution när du utvärderar distribueraIfNotExists-principer eller ändrar en resurs när du utvärderar ändringsprinciper, gör den det med hjälp av en hanterad identitet som är associerad med principtilldelningen. Principtilldelningar använder hanterade identiteter för Azure-resursauktorisering. Du kan använda antingen en systemtilldelad hanterad identitet som skapas av principtjänsten eller en användartilldelad identitet som tillhandahålls av användaren. Den hanterade identiteten måste tilldelas den minsta rollbaserade åtkomstkontrollrollen (RBAC) som krävs för att åtgärda resurser. Om den hanterade identiteten saknar roller visas ett fel i portalen under tilldelningen av principen eller ett initiativ. När du använder portalen beviljar Azure Policy automatiskt den hanterade identiteten de angivna rollerna när tilldelningen startar. När du använder ett Azure Software Development Kit (SDK) måste rollerna beviljas manuellt till den hanterade identiteten. Platsen för den hanterade identiteten påverkar inte dess åtgärd med Azure Policy.

Anteckning

Om du ändrar en principdefinition uppdateras inte tilldelningen automatiskt eller den associerade hanterade identiteten.

Reparationssäkerhet kan konfigureras med hjälp av följande steg:

Konfigurera principdefinitionen

Som en förutsättning måste principdefinitionen definiera de roller som distribuerarIfNotExists och ändra behovet av att distribuera innehållet i den inkluderade mallen. Ingen åtgärd krävs för en inbyggd principdefinition eftersom dessa roller är förifyllda. Lägg till egenskapen roleDefinitionIds under egenskapen details för en anpassad principdefinition. Den här egenskapen är en matris med strängar som matchar roller i din miljö. Ett fullständigt exempel finns i exemplet deployIfNotExists eller ändra exemplen.

"details": {
    ...
    "roleDefinitionIds": [
        "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/{roleGUID}",
        "/providers/Microsoft.Authorization/roleDefinitions/{builtinroleGUID}"
    ]
}

Egenskapen roleDefinitionIds använder den fullständiga resursidentifieraren och tar inte rollens korta roleName . Om du vill hämta ID:t för rollen Deltagare i din miljö använder du följande Azure CLI-kod:

az role definition list --name "Contributor"

Viktigt

Behörigheter bör begränsas till minsta möjliga uppsättning när du definierar roleDefinitionIds i en principdefinition eller tilldelar behörigheter till en hanterad identitet manuellt. Mer metodtips finns i rekommendationer för bästa praxis för hanterade identiteter .

Konfigurera den hanterade identiteten

Varje Azure Policy tilldelning kan bara associeras med en hanterad identitet. Den hanterade identiteten kan dock tilldelas flera roller. Konfigurationen sker i två steg: först skapar du antingen en systemtilldelad eller användartilldelad hanterad identitet och beviljar sedan de nödvändiga rollerna.

Anteckning

När du skapar en hanterad identitet via portalen beviljas roller automatiskt till den hanterade identiteten. Om roleDefinitionIds senare redigeras i principdefinitionen måste de nya behörigheterna beviljas manuellt, även i portalen.

Skapa den hanterade identiteten

När du skapar en tilldelning med hjälp av portalen kan Azure Policy generera en systemtilldelad hanterad identitet och ge den de roller som definieras i principdefinitionens roleDefinitionIds. Du kan också ange en användartilldelad hanterad identitet som tar emot samma rolltilldelning.

Skärmbild av en principtilldelning som skapar en systemtilldelad hanterad identitet i USA, östra med Log Analytics-deltagarbehörigheter.

Så här anger du en systemtilldelad hanterad identitet i portalen:

  1. På fliken Reparation i vyn skapa/redigera tilldelning under Typer av hanterad identitet kontrollerar du att Systemtilldelad hanterad identitet är markerad.

  2. Ange den plats där den hanterade identiteten ska finnas.

Så här anger du en användartilldelad hanterad identitet i portalen:

  1. På fliken Reparation i vyn Skapa/redigera tilldelning under Typer av hanterad identitet kontrollerar du att Användartilldelad hanterad identitet är markerad .

  2. Ange omfånget där den hanterade identiteten finns. Omfattningen för den hanterade identiteten behöver inte motsvara tilldelningens omfattning, men den måste finnas i samma klientorganisation.

  3. Under Befintliga användartilldelade identiteter väljer du den hanterade identiteten.

Bevilja behörigheter till den hanterade identiteten via definierade roller

Viktigt

Om den hanterade identiteten inte har de behörigheter som krävs för att köra den nödvändiga reparationsuppgiften beviljas den endast behörigheter automatiskt via portalen. Du kan hoppa över det här steget om du skapar en hanterad identitet via portalen.

För alla andra metoder måste tilldelningens hanterade identitet beviljas manuellt genom tillägg av roller, annars misslyckas reparationsdistributionen.

Exempelscenarier som kräver manuella behörigheter:

  • Om tilldelningen skapas via ett Azure Software Development Kit (SDK)
  • Om en resurs som ändrats av deployIfNotExists eller ändrar ligger utanför principtilldelningens omfång
  • Om mallen har åtkomst till egenskaper för resurser utanför principtilldelningens omfång

Det finns två sätt att bevilja en tilldelnings hanterade identitet de definierade rollerna med hjälp av portalen: med hjälp av Åtkomstkontroll (IAM) eller genom att redigera princip- eller initiativtilldelningen och välja Spara.

Följ dessa steg om du vill lägga till en roll i tilldelningens hanterade identitet:

  1. Starta Azure Policy-tjänsten i Azure Portal genom att välja Alla tjänster och sedan söka efter och välja Princip.

  2. Välj Tilldelningar till vänster på sidan Azure Policy.

  3. Leta upp tilldelningen som har en hanterad identitet och välj namnet.

  4. Leta upp egenskapen Tilldelnings-ID på redigeringssidan. Tilldelnings-ID:t kommer att se ut ungefär så här:

    /subscriptions/{subscriptionId}/resourceGroups/PolicyTarget/providers/Microsoft.Authorization/policyAssignments/2802056bfc094dfb95d4d7a5
    

    Namnet på den hanterade identiteten är den sista delen av tilldelningsresurs-ID:t, som finns 2802056bfc094dfb95d4d7a5 i det här exemplet. Kopiera den här delen av tilldelningsresurs-ID:t.

  5. Navigera till den resurs eller den överordnade resurscontainern (resursgrupp, prenumeration, hanteringsgrupp) som behöver rolldefinitionen manuellt tillagd.

  6. Välj länken Åtkomstkontroll (IAM) på resurssidan och välj sedan + Lägg till rolltilldelning överst på åtkomstkontrollsidan.

  7. Välj lämplig roll som matchar ett roleDefinitionId från principdefinitionen. Låt Tilldela åtkomst ange standardvärdet "Azure AD användare, grupp eller program". I rutan Välj klistrar du in eller skriver in den del av tilldelningsresurs-ID:t som fanns tidigare. När sökningen är klar väljer du objektet med samma namn för att välja ID och väljer Spara.

Skapa en reparationsuppgift

Starta Azure Policy-tjänsten i Azure Portal genom att välja Alla tjänster och sedan söka efter och välja Princip.

Skärmbild av sökning efter princip i Alla tjänster.

Steg 1: Initiera skapande av reparationsaktivitet

Det finns tre sätt att skapa en reparationsuppgift via portalen.

Alternativ 1: Skapa en reparationsaktivitet från sidan Reparation

  1. Välj Reparation till vänster på sidan Azure Policy.

    Skärmbild av noden Reparation på sidan Princip.

  2. Alla deployIfNotExists och ändra principtilldelningar visas på fliken Principer för att åtgärda . Välj en med resurser som inte är kompatibla för att öppna sidan Ny reparationsaktivitet .

  3. Följ stegen för att ange information om reparationsaktiviteten.

Alternativ 2: Skapa en reparationsaktivitet från en icke-kompatibel principtilldelning

  1. Välj Efterlevnad till vänster på sidan Azure Policy.

  2. Välj en icke-kompatibel princip eller initiativtilldelning som innehåller deployIfNotExists eller ändra effekter.

  3. Välj knappen Skapa reparationsaktivitet överst på sidan för att öppna sidan Ny reparationsaktivitet .

  4. Följ stegen för att ange information om reparationsaktiviteten.

Alternativ 3: Skapa en reparationsaktivitet under principtilldelningen

Om princip- eller initiativdefinitionen som ska tilldelas har en deployIfNotExists - eller ändringseffekt , erbjuder fliken Reparation i guiden alternativet Skapa en reparationsaktivitet , vilket skapar en reparationsaktivitet samtidigt som principtilldelningen.

Anteckning

Det här är den mest effektiva metoden för att skapa en reparationsaktivitet och stöds för principer som har tilldelats i en prenumeration. För principer som tilldelats i en hanteringsgrupp bör reparationsuppgifter skapas med alternativ 1 eller alternativ 2 när utvärderingen har fastställt resursefterlevnad.

  1. Gå till fliken Reparation i tilldelningsguiden i portalen. Markera kryssrutan för Skapa en reparationsaktivitet.

  2. Om reparationsaktiviteten initieras från en initiativtilldelning väljer du den princip som ska åtgärdas i listrutan.

  3. Konfigurera den hanterade identiteten och fyll i resten av guiden. Reparationsaktiviteten skapas när tilldelningen skapas.

Steg 2: Ange information om reparationsaktivitet

Det här steget gäller endast när du använder alternativ 1 eller alternativ 2 för att initiera skapande av reparationsaktivitet.

  1. Om reparationsaktiviteten initieras från en initiativtilldelning väljer du den princip som ska åtgärdas i listrutan. En deployIfNotExists - eller ändringsprincip kan åtgärdas via en enskild reparationsaktivitet i taget.

  2. Du kan också ändra reparationsinställningarna på sidan Ny reparationsaktivitet :

    • Tröskelvärde för fel – Används för att ange om reparationsaktiviteten ska misslyckas om procentandelen fel överskrider det angivna tröskelvärdet. Anges som ett tal mellan 0 och 100. Som standard är tröskelvärdet för fel 100 %.
    • Antal resurser – Avgör hur många icke-kompatibla resurser som ska åtgärdas i en viss reparationsaktivitet. Standardvärdet är 500 (den tidigare gränsen). Det maximala antalet är 50 000 resurser.
    • Parallella distributioner – Avgör hur många resurser som ska åtgärdas samtidigt. De tillåtna värdena är 1 till 30 resurser åt gången. Standardvärdet är 10.

    Anteckning

    De här inställningarna kan inte ändras när reparationsaktiviteten har startats.

  3. På samma sida filtrerar du de resurser som ska åtgärdas med hjälp av omfångsellipserna för att välja underordnade resurser där principen tilldelas (inklusive ned till de enskilda resursobjekten). Använd dessutom listrutan Platser för att ytterligare filtrera resurserna.

    Skärmbild av noden Reparera och rutnätet för resurser som ska åtgärdas.

  4. Påbörja reparationsaktiviteten när resurserna har filtrerats genom att välja Åtgärda. Sidan principefterlevnad öppnas på fliken Reparationsuppgifter för att visa status för aktiviteternas förlopp. Distributioner som skapats av reparationsaktiviteten börjar direkt.

    Skärmbild av fliken Reparationsuppgifter och förloppet för befintliga reparationsuppgifter.

Steg 3: Spåra åtgärdsaktivitetens förlopp

  1. Gå till fliken Reparationsuppgifter på sidan Reparation . Klicka på en reparationsaktivitet för att visa information om den filtrering som används, aktuell status och en lista över resurser som åtgärdas.

  2. På sidan Reparationsaktivitetsinformation högerklickar du på en resurs för att visa antingen reparationsaktivitetens distribution eller resursen. I slutet av raden väljer du Relaterade händelser för att se information, till exempel ett felmeddelande.

    Skärmbild av snabbmenyn för en resurs på fliken Åtgärda aktivitet.

Resurser som distribueras via en reparationsaktivitet läggs till på fliken Distribuerade resurser på sidan information om principtilldelning.

Nästa steg