Azure Policy-undantagsstruktur
Funktionen Azure Policy-undantag används för att undanta en resurshierarki eller en enskild resurs från utvärdering av initiativ eller definitioner. Resurser som är undantagna räknas mot övergripande efterlevnad, men som inte kan utvärderas eller ha ett tillfälligt undantag. Mer information finns i Förstå tillämplighet i Azure Policy. Azure Policy-undantag fungerar också med följande Resource Manager-lägen: Microsoft.Kubernetes.Data
, Microsoft.KeyVault.Data
och Microsoft.Network.Data
.
Du använder JSON (JavaScript Object Notation) för att skapa principundantag. Principundantaget innehåller element för:
- visningsnamn
- beskrivning
- metadata
- principtilldelning
- principdefinitioner inom ett initiativ
- undantagskategori
- Förfallodagen
- resursväljare
- validering av tilldelningsomfång
Ett principundantag skapas som ett underordnat objekt i resurshierarkin eller som den enskilda resurs som beviljats undantaget. Undantag kan inte skapas på komponentnivån Resursproviderläge. Om den överordnade resurs som undantaget gäller för tas bort kommer även undantaget att tas bort.
Följande JSON visar till exempel ett principundantag i undantagskategorin för en resurs till en initiativtilldelning med namnet resourceShouldBeCompliantInit
. Resursen är undantagen från endast två av principdefinitionerna i initiativet, den anpassade principdefinitionen customOrgPolicy
( policyDefinitionReferenceId
: requiredTags
) och den inbyggda principdefinitionen Tillåtna platser ( : allowedLocations
policyDefinitionReferenceId
):
{
"id": "/subscriptions/{subId}/resourceGroups/{rgName}/providers/Microsoft.Authorization/policyExemptions/resourceIsNotApplicable",
"apiVersion": "2020-07-01-preview",
"name": "resourceIsNotApplicable",
"type": "Microsoft.Authorization/policyExemptions",
"properties": {
"displayName": "This resource is scheduled for deletion",
"description": "This resources is planned to be deleted by end of quarter and has been granted a waiver to the policy.",
"metadata": {
"requestedBy": "Storage team",
"approvedBy": "IA",
"approvedOn": "2020-07-26T08:02:32.0000000Z",
"ticketRef": "4baf214c-8d54-4646-be3f-eb6ec7b9bc4f"
},
"policyAssignmentId": "/subscriptions/{mySubscriptionID}/providers/Microsoft.Authorization/policyAssignments/resourceShouldBeCompliantInit",
"policyDefinitionReferenceId": [
"requiredTags",
"allowedLocations"
],
"exemptionCategory": "waiver",
"expiresOn": "2020-12-31T23:59:00.0000000Z",
"assignmentScopeValidation": "Default"
}
}
Visningsnamn och beskrivning
Du använder displayName
och description
för att identifiera principundantaget och ange kontext för dess användning med den specifika resursen. displayName
har en maximal längd på 128 tecken och description
en maximal längd på 512 tecken.
Metadata
Med metadata
egenskapen kan du skapa alla underordnade egenskaper som behövs för att lagra relevant information. I exemplet innehåller egenskaperna requestedBy
, approvedBy
, approvedOn
och ticketRef
kundvärden för att ange information om vem som begärde undantaget, vem som godkände det och när samt en intern spårningsbegäran för begäran. Dessa metadata
egenskaper är exempel, men de krävs inte och metadata
är inte begränsade till dessa underordnade egenskaper.
Principtilldelnings-ID
Det här fältet måste vara det fullständiga sökvägsnamnet för antingen en principtilldelning eller en initiativtilldelning. policyAssignmentId
är en sträng och inte en matris. Den här egenskapen definierar vilken tilldelning den överordnade resurshierarkin eller den enskilda resursen är undantagen från.
Principdefinitions-ID:n
policyAssignmentId
Om är för en initiativtilldelning policyDefinitionReferenceId
kan egenskapen användas för att ange vilken principdefinition i initiativet ämnesresursen har ett undantag till. Eftersom resursen kan undantas från en eller flera inkluderade principdefinitioner är den här egenskapen en matris. Värdena måste matcha värdena i initiativdefinitionen i fälten policyDefinitions.policyDefinitionReferenceId
.
Undantagskategori
Det finns två undantagskategorier. De används för att gruppera undantag:
- Avhjälpt: Undantaget beviljas eftersom principavsikten uppfylls via en annan metod.
- Undantag: Undantaget beviljas eftersom resursens icke-efterlevnadstillstånd godkänns tillfälligt. En annan anledning till att använda den här kategorin är att undanta en resurs- eller resurshierarki från en eller flera definitioner i ett initiativ, men bör inte uteslutas från hela initiativet.
Förfallodatum
Ange egenskapen om du vill ange när en resurshierarki eller en enskild resurs inte längre är undantagen expiresOn
från en tilldelning. Den här valfria egenskapen måste vara i formatet Universal ISO 8601 DateTime yyyy-MM-ddTHH:mm:ss.fffffffZ
.
Kommentar
Principundantag tas inte bort när expiresOn
datumet nås. Objektet bevaras för arkivering, men undantaget respekteras inte längre.
Resursväljare
Undantag stöder en valfri egenskap resourceSelectors
som fungerar på samma sätt i undantag som i tilldelningar. Egenskapen möjliggör gradvis distribution eller återställning av ett undantag till vissa delmängder av resurser på ett kontrollerat sätt baserat på resurstyp, resursplats eller om resursen har en plats. Mer information om hur du använder resursväljare finns i tilldelningsstrukturen. Följande JSON är ett exempelundantag som använder resursväljare. I det här exemplet är endast resurser i westcentralus
undantagna från principtilldelningen:
{
"properties": {
"policyAssignmentId": "/subscriptions/{subId}/providers/Microsoft.Authorization/policyAssignments/CostManagement",
"policyDefinitionReferenceId": [
"limitSku",
"limitType"
],
"exemptionCategory": "Waiver",
"resourceSelectors": [
{
"name": "TemporaryMitigation",
"selectors": [
{
"kind": "resourceLocation",
"in": [
"westcentralus"
]
}
]
}
]
},
"systemData": { ...
},
"id": "/subscriptions/{subId}/resourceGroups/{rgName}/providers/Microsoft.Authorization/policyExemptions/DemoExpensiveVM",
"type": "Microsoft.Authorization/policyExemptions",
"name": "DemoExpensiveVM"
}
Regioner kan läggas till eller tas bort från resourceLocation
listan i exemplet. Resursväljare ger större flexibilitet för var och hur undantag kan skapas och hanteras.
Validering av tilldelningsomfång (förhandsversion)
I de flesta scenarier verifieras undantagsomfånget för att säkerställa att det finns i eller under principtilldelningsomfånget. Den valfria assignmentScopeValidation
egenskapen kan tillåta ett undantag för att kringgå den här valideringen och skapas utanför tilldelningsomfånget. Den här valideringen är avsedd för situationer där en prenumeration måste flyttas från en hanteringsgrupp (MG) till en annan, men flytten skulle blockeras av en princip på grund av egenskaper för resurser i prenumerationen. I det här scenariot kan ett undantag skapas för prenumerationen i dess aktuella MG för att undanta dess resurser från en principtilldelning på mål-MG. På så sätt blockeras inte åtgärden när prenumerationen flyttas till mål-MG eftersom resurser redan är undantagna från principtilldelningen i fråga. Användningen av den här egenskapen visas i följande exempel:
{
"properties": {
"policyAssignmentId": "/providers/Microsoft.Management/managementGroups/{mgName}/providers/Microsoft.Authorization/policyAssignments/CostManagement",
"policyDefinitionReferenceId": [
"limitSku",
"limitType"
],
"exemptionCategory": "Waiver",
"assignmentScopeValidation": "DoNotValidate",
},
"systemData": { ...
},
"id": "/subscriptions/{subId}/providers/Microsoft.Authorization/policyExemptions/DemoExpensiveVM",
"type": "Microsoft.Authorization/policyExemptions",
"name": "DemoExpensiveVM"
}
Tillåtna värden för assignmentScopeValidation
är Default
och DoNotValidate
. Om det inte anges sker standardverifieringsprocessen.
Behörigheter som krävs
De behörigheter för rollbaserad åtkomstkontroll i Azure (Azure RBAC) som krävs för att hantera principundantagsobjekt finns i Microsoft.Authorization/policyExemptions
åtgärdsgruppen. De inbyggda rollerna Resursprincipdeltagare och Säkerhetsadministratör har både behörigheterna read
och write
Policy Insights Data Writer (förhandsversion) har behörigheten read
.
Undantag har extra säkerhetsåtgärder på grund av effekten av att bevilja ett undantag. Förutom att Microsoft.Authorization/policyExemptions/write
kräva åtgärden i resurshierarkin eller den enskilda resursen måste skaparen av ett undantag ha verbet exempt/Action
på måltilldelningen.
Skapa och hantera undantag
Undantag rekommenderas för tidsbundna eller specifika scenarier där en resurs- eller resurshierarki fortfarande ska spåras och annars utvärderas, men det finns en specifik anledning till att den inte bör utvärderas för efterlevnad. Om en miljö till exempel har den inbyggda definitionen Storage accounts should disable public network access
(ID: b2982f36-99f2-4db5-8eff-283140c09693
) tilldelad med effekt inställd på granskning. Vid kompatibilitetsbedömning är resursen StorageAcc1
inkompatibel, men StorageAcc1
måste ha offentlig nätverksåtkomst aktiverad i affärssyfte. Vid den tidpunkten ska en begäran skickas för att skapa en undantagsresurs som riktar sig till StorageAcc1
. När undantaget har skapats StorageAcc1
visas som undantaget i efterlevnadsgranskningen.
Gå regelbundet tillbaka till dina undantag för att se till att alla berättigade objekt är undantagna på lämpligt sätt och omedelbart ta bort alla som inte är berättigade till undantag. Då kan även utgångna undantagsresurser tas bort.
Nästa steg
- Läs mer om Azure Resource Graph-frågor om undantag.
- Lär dig mer om skillnaden mellan undantag och undantag.
- Granska resurstypen Microsoft.Authorization policyExemptions.
- Lär dig hur du hämtar efterlevnadsdata.
- Lär dig hur du åtgärdar icke-kompatibla resurser.