Dela via


Åtgärda icke-kompatibla resurser med Azure Policy

Resurser som inte är kompatibla med principer med deployIfNotExists eller modify effekter kan placeras i ett kompatibelt tillstånd via Reparation. Reparationen utförs genom reparationsåtgärder som distribuerar mallen deployIfNotExists modify eller å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 reparation med Azure Policy.

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

När Azure Policy startar en malldistribution när du utvärderar deployIfNotExists principer eller ändrar en resurs vid utvärdering av modify principer, 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 skapats av principtjänsten eller en användartilldelad identitet som tillhandahålls av användaren. Den hanterade identiteten måste tilldelas den minsta rollbaserade åtkomstkontrollrollen för Azure (Azure 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 listade rollerna när tilldelningen startar. När du använder ett Azure-programutvecklingspaket (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.

Kommentar

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

Reparationssäkerhet kan konfigureras genom följande steg:

Konfigurera principdefinitionen

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

"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 bort roleName rollen. Om du vill hämta ID:t för deltagarrollen 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 den minsta möjliga uppsättningen 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: skapa först antingen en systemtilldelad eller användartilldelad hanterad identitet och ge den sedan nödvändiga roller.

Kommentar

När du skapar en hanterad identitet via portalen beviljas roller automatiskt till den hanterade identiteten. Om roleDefinitionIds de 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 definierats 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örighet.

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.

  3. Tilldela inte något omfång för systemtilldelad hanterad identitet eftersom omfånget ärvs från tilldelningsomfånget.

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. Omfånget för den hanterade identiteten behöver inte motsvara tilldelningens omfång, men det 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 åtkomst genom tillägg av roller, annars misslyckas reparationsdistributionen.

Exempelscenarier som kräver manuella behörigheter:

  • Om tilldelningen skapas via ett Azure-programutvecklingspaket (SDK)
  • Om en resurs har ändrats av deployIfNotExists eller modify ligger utanför omfånget för principtilldelningen
  • 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: genom att använda Å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 ser ut som i följande exempel:

    /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/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 resursen 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 en roleDefinitionIds från principdefinitionen. Låt Tilldela åtkomst ange som standard för "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 reparationsaktivitet

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 tilldelningar och modify 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 principtilldelning som inte är kompatibel

  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 modify 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 den princip- eller initiativdefinition som ska tilldelas har en eller en modify effekt, erbjuder fliken Reparation i guiden alternativet Skapa en reparationsaktivitet, vilket skapar en reparationsaktivitet samtidigt som principtilldelningen.deployIfNotExists

Kommentar

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

  1. I tilldelningsguiden i portalen går du till fliken Reparation . 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 modify en princip kan åtgärdas via en enskild reparationsaktivitet i taget.

  2. Du kan också ändra reparationsinställningarna på sidan. Information om vad varje inställning styr finns i Åtgärdsaktivitetsstruktur.

  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 har tilldelats (inklusive ned till de enskilda resursobjekten). Använd listrutan Platser för att filtrera resurserna ytterligare.

    Skärmbild av noden Remediate 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 Reparationsåtgärder 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 Reparationsåtgärdersidan Reparation . Välj en reparationsaktivitet för att visa information om filtreringen 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 uppgift.

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

Nästa steg