Å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
- Konfigurera den hanterade identiteten
- Bevilja behörigheter till den hanterade identiteten via definierade roller
- Skapa en reparationsaktivitet
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.
Så här anger du en systemtilldelad hanterad identitet i portalen:
På fliken Reparation i vyn Skapa/redigera tilldelning, under Typer av hanterad identitet, kontrollerar du att Systemtilldelad hanterad identitet är markerad.
Ange den plats där den hanterade identiteten ska finnas.
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:
På fliken Reparation i vyn skapa/redigera tilldelning under Typer av hanterad identitet kontrollerar du att Användartilldelad hanterad identitet är markerad.
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.
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
ellermodify
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:
Starta Azure Policy-tjänsten i Azure Portal genom att välja Alla tjänster och sedan söka efter och välja Princip.
Välj Tilldelningar till vänster på sidan Azure Policy.
Leta upp tilldelningen som har en hanterad identitet och välj namnet.
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.Navigera till resursen eller den överordnade resurscontainern (resursgrupp, prenumeration, hanteringsgrupp) som behöver rolldefinitionen manuellt tillagd.
Välj länken Åtkomstkontroll (IAM) på resurssidan och välj sedan + Lägg till rolltilldelning överst på åtkomstkontrollsidan.
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.
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
Välj Reparation till vänster på sidan Azure Policy.
Alla
deployIfNotExists
tilldelningar ochmodify
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 .Följ stegen för att ange information om reparationsaktiviteten.
Alternativ 2: Skapa en reparationsaktivitet från en principtilldelning som inte är kompatibel
Välj Efterlevnad till vänster på sidan Azure Policy.
Välj en icke-kompatibel princip eller initiativtilldelning som innehåller
deployIfNotExists
ellermodify
effekter.Välj knappen Skapa reparationsaktivitet överst på sidan för att öppna sidan Ny reparationsaktivitet.
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.
I tilldelningsguiden i portalen går du till fliken Reparation . Markera kryssrutan för Skapa en reparationsaktivitet.
Om reparationsaktiviteten initieras från en initiativtilldelning väljer du den princip som ska åtgärdas i listrutan.
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.
Om reparationsaktiviteten initieras från en initiativtilldelning väljer du den princip som ska åtgärdas i listrutan. En
deployIfNotExists
ellermodify
en princip kan åtgärdas via en enskild reparationsaktivitet i taget.Du kan också ändra reparationsinställningarna på sidan. Information om vad varje inställning styr finns i Åtgärdsaktivitetsstruktur.
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.
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.
Steg 3: Spåra åtgärdsaktivitetens förlopp
Gå till fliken Reparationsåtgärder på sidan 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.
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.
Resurser som distribueras via en reparationsaktivitet läggs till på fliken Distribuerade resurser på sidan information om principtilldelning.
Nästa steg
- Granska exempel i Azure Policy-exempel.
- Granska Azure Policy-definitionsstrukturen.
- Granska Förstå policy-effekter.
- Förstå hur du programmatiskt skapar principer.
- Lär dig hur du hämtar efterlevnadsdata.
- Granska vad en hanteringsgrupp är med Organisera dina resurser med Azure-hanteringsgrupper.