Använda Azure Policy för att tilldela hanterade identiteter (förhandsversion)
Azure Policy hjälper till att framtvinga organisationsstandarder och utvärdera efterlevnad i stor skala. Via instrumentpanelen för efterlevnad tillhandahåller Azure Policy en aggregerad vy som hjälper administratörer att utvärdera miljöns övergripande tillstånd. Du har möjlighet att öka detaljnivån till kornigheten per resurs per princip. Det hjälper också till att göra dina resurser kompatibla genom massreparation för befintliga resurser och automatisk reparation av nya resurser. Vanliga användningsfall för Azure Policy är att implementera styrning för:
- Resurskonsekvens
- Regelefterlevnad
- Säkerhet
- Kostnad
- Hantering
Principdefinitioner för dessa vanliga användningsfall är redan tillgängliga i din Azure-miljö för att hjälpa dig att komma igång.
Azure Monitoring Agents kräver en hanterad identitet på de övervakade virtuella Azure-datorerna (VM). Det här dokumentet beskriver beteendet för en inbyggd Azure Policy från Microsoft som hjälper till att säkerställa att en hanterad identitet, som behövs för dessa scenarier, tilldelas till virtuella datorer i stor skala.
Det är möjligt att använda systemtilldelad hanterad identitet när den används i stor skala (till exempel för alla virtuella datorer i en prenumeration) vilket resulterar i ett stort antal identiteter som skapats (och tagits bort) i Microsoft Entra-ID. För att undvika den här typen av identiteter rekommenderar vi att du använder användartilldelade hanterade identiteter som kan skapas en gång och delas över flera virtuella datorer.
Principdefinition och information
När den körs vidtar principen följande åtgärder:
- Skapa, om inte, en ny inbyggd användartilldelad hanterad identitet i prenumerationen och varje Azure-region baserat på de virtuella datorer som ingår i principens omfång.
- När du har skapat det kan du låsa den användartilldelade hanterade identiteten så att den inte tas bort av misstag.
- Tilldela den inbyggda användartilldelade hanterade identiteten till virtuella datorer från prenumerationen och regionen baserat på de virtuella datorer som ingår i principens omfång.
Kommentar
Om den virtuella datorn har exakt 1 användartilldelad hanterad identitet som redan har tilldelats hoppar principen över den virtuella datorn för att tilldela den inbyggda identiteten. Detta är för att säkerställa att tilldelningen av principen inte bryter program som är beroende av standardbeteendet för tokenslutpunkten på IMDS.
Det finns två scenarier att använda principen:
- Låt principen skapa och använda en "inbyggd" användartilldelad hanterad identitet.
- Ta med din egen användartilldelade hanterade identitet.
Principen tar följande indataparametrar:
- Bring-Your-Own-UAMI? – Ska principen skapa, om den inte finns, en ny användartilldelad hanterad identitet?
- Om värdet är true måste du ange:
- Namnet på den hanterade identiteten.
- Resursgrupp som innehåller den hanterade identiteten.
- Om värdet är falskt behövs inga ytterligare indata.
- Principen skapar den användartilldelade hanterade identitet som krävs med namnet "inbyggd identitet" i en resursgrupp med namnet "built-in-identity-rg".
- Om värdet är true måste du ange:
- Begränsa bring-your-own-UAMI-to-subscription? – Om parametern Bring-Your-Own-UAMI är inställd på true, ska principen använda en centraliserad användartilldelad hanterad identitet eller använda en identitet för varje prenumeration?
- Om värdet är true krävs inga ytterligare indata.
- Principen använder en användartilldelad hanterad identitet per prenumeration.
- Om värdet är falskt använder principen en enda centraliserad användartilldelad hanterad identitet som tillämpas på alla prenumerationer som omfattas av principtilldelningen. Du måste ange:
- Resurs-ID för användartilldelad hanterad identitet
- Om värdet är true krävs inga ytterligare indata.
Använda principen
Skapa principtilldelningen
Principdefinitionen kan tilldelas till olika omfång i Azure – i hanteringsgruppsprenumerationen eller en specifik resursgrupp. Eftersom principer måste tillämpas hela tiden utförs tilldelningsåtgärden med hjälp av en hanterad identitet som är associerad med principtilldelningsobjektet. Principtilldelningsobjektet stöder både systemtilldelad och användartilldelad hanterad identitet. Joe kan till exempel skapa en användartilldelad hanterad identitet med namnet PolicyAssignmentMI. Den inbyggda principen skapar en användartilldelad hanterad identitet i varje prenumeration och i varje region med resurser som omfattas av principtilldelningen. De användartilldelade hanterade identiteterna som skapas av principen har följande resourceId-format:
/subscriptions/your-subscription-id/resourceGroups/built-in-identity-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/built-in-identity-{location}
Till exempel:
/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e4e/resourceGroups/built-in-identity-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/built-in-identity-eastus
Nödvändig auktorisering
För att PolicyAssignmentMI-hanterad identitet ska kunna tilldela den inbyggda principen i det angivna omfånget behöver den följande behörigheter, uttryckt som en Rolltilldelning för Azure RBAC (Rollbaserad åtkomstkontroll i Azure):
Huvudkonto | Roll/åtgärd | Omfattning | Syfte |
---|---|---|---|
PolicyAssigmentMI | Operatör för hanterad identitet | /subscription/subscription-id/resourceGroups/built-in-identity ELLER Bring-your-own-User-assinged-Managed-identitet |
Krävs för att tilldela den inbyggda identiteten till virtuella datorer. |
PolicyAssigmentMI | Deltagare | /subscription/subscription-id> | Krävs för att skapa resursgruppen som innehåller den inbyggda hanterade identiteten i prenumerationen. |
PolicyAssigmentMI | Hanterad identitetsdeltagare | /subscription/subscription-id/resourceGroups/built-in-identity | Krävs för att skapa en ny användartilldelad hanterad identitet. |
PolicyAssigmentMI | Administratör för användaråtkomst | /subscription/subscription-id/resourceGroups/built-in-identity ELLER Bring-your-own-User-assigned-Managed identity |
Krävs för att ange ett lås på den användartilldelade hanterade identiteten som skapats av principen. |
Eftersom principtilldelningsobjektet måste ha den här behörigheten i förväg kan PolicyAssignmentMI inte vara en systemtilldelad hanterad identitet för det här scenariot. Användaren som utför principtilldelningsaktiviteten måste i förväg auktorisera PolicyAssignmentMI i förväg med rolltilldelningarna ovan.
Som du ser är den resulterande minsta behörighetsrollen som krävs "deltagare" i prenumerationsomfånget.
Kända problem
Möjliga konkurrensvillkor med en annan distribution som ändrar identiteterna som tilldelats till en virtuell dator kan resultera i oväntade resultat.
Om det finns två eller flera parallella distributioner som uppdaterar samma virtuella dator och alla ändrar identitetskonfigurationen för den virtuella datorn är det möjligt att alla förväntade identiteter INTE tilldelas datorerna under specifika konkurrensförhållanden. Om principen i det här dokumentet till exempel uppdaterar de hanterade identiteterna för en virtuell dator och samtidigt en annan process också gör ändringar i avsnittet hanterade identiteter, är det inte garanterat att alla förväntade identiteter tilldelas korrekt till den virtuella datorn.