Azure Policy-uitzonderingsstructuur
De functie Azure Policy-uitzonderingen wordt gebruikt om een resourcehiërarchie of een afzonderlijke resource uit te schakelen van evaluatie van initiatieven of definities. Resources die zijn uitgesloten , tellen mee voor de algehele naleving, maar kunnen niet worden geëvalueerd of een tijdelijke afstandsverklaring hebben. Zie Inzicht in toepasbaarheid in Azure Policy voor meer informatie. Azure Policy-uitzonderingen werken ook met de volgende Resource Manager-modi: Microsoft.Kubernetes.Data
, Microsoft.KeyVault.Data
en Microsoft.Network.Data
.
U gebruikt JavaScript Object Notation (JSON) om een beleidsuitzondering te maken. De beleidsuitzondering bevat de elementen voor:
- weergavenaam
- beschrijving
- metagegevens
- beleidstoewijzing
- beleidsdefinities binnen een initiatief
- uitzonderingscategorie
- afloop
- resourceselectors
- validatie van toewijzingsbereik
Er wordt een beleidsvrijstelling gemaakt als een onderliggend object in de resourcehiërarchie of de afzonderlijke resource die de uitzondering heeft verleend. Uitzonderingen kunnen niet worden gemaakt op onderdeelniveau van de resourceprovidermodus. Als de bovenliggende resource waarop de uitzondering van toepassing is, wordt de uitzondering ook verwijderd.
In de volgende JSON wordt bijvoorbeeld een beleidsuitzondering weergegeven in de categorie afstand van een resource aan een initiatieftoewijzing met de naam resourceShouldBeCompliantInit
. De resource is uitgesloten van slechts twee van de beleidsdefinities in het initiatief, de customOrgPolicy
aangepaste beleidsdefinitie (: requiredTags
policyDefinitionReferenceId
) en de ingebouwde beleidsdefinitie Toegestane locaties ( policyDefinitionReferenceId
: allowedLocations
):
{
"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"
}
}
Schermnaam en -beschrijving
U gebruikt displayName
en description
om de beleidsvrijstelling te identificeren en context te bieden voor het gebruik ervan met de specifieke resource. displayName
heeft een maximale lengte van 128 tekens en description
een maximumlengte van 512 tekens.
Metagegevens
Met de metadata
eigenschap kan elke onderliggende eigenschap worden gemaakt die nodig is voor het opslaan van relevante informatie. In het voorbeeld bevat eigenschappen requestedBy
, approvedBy
, approvedOn
en ticketRef
bevat klantwaarden om informatie te verstrekken over wie de uitzondering heeft aangevraagd, wie deze heeft goedgekeurd en wanneer, en een intern traceringsticket voor de aanvraag. Deze metadata
eigenschappen zijn voorbeelden, maar ze zijn niet vereist en metadata
zijn niet beperkt tot deze onderliggende eigenschappen.
Beleidstoewijzings-id
Dit veld moet de volledige padnaam van een beleidstoewijzing of een initiatieftoewijzing zijn. Dit policyAssignmentId
is een tekenreeks en geen matrix. Met deze eigenschap wordt gedefinieerd van welke toewijzing de bovenliggende resourcehiërarchie of afzonderlijke resource is uitgesloten .
Beleidsdefinitie-id's
Als dit policyAssignmentId
voor een initiatieftoewijzing geldt, kan de policyDefinitionReferenceId
eigenschap worden gebruikt om op te geven aan welke beleidsdefinitie in het initiatief de onderwerpresource een uitzondering heeft. Omdat de resource mogelijk wordt uitgesloten van een of meer opgenomen beleidsdefinities, is deze eigenschap een matrix. De waarden moeten overeenkomen met de waarden in de initiatiefdefinitie in de policyDefinitions.policyDefinitionReferenceId
velden.
Uitzonderingscategorie
Er bestaan twee uitzonderingscategorieën en deze worden gebruikt om uitzonderingen te groeperen:
- Beperking: de uitzondering wordt verleend omdat de beleidsintentie via een andere methode wordt voldaan.
- Afstand: De vrijstelling wordt verleend omdat de niet-nalevingsstatus van de resource tijdelijk wordt geaccepteerd. Een andere reden om deze categorie te gebruiken, is om een resource- of resourcehiërarchie uit te sluiten van een of meer definities in een initiatief, maar mag niet worden uitgesloten van het hele initiatief.
Verloop
Als u wilt instellen wanneer een resourcehiërarchie of een afzonderlijke resource niet langer is vrijgesteld van een toewijzing, stelt u de expiresOn
eigenschap in. Deze optionele eigenschap moet de Universal ISO 8601 DateTime-indeling yyyy-MM-ddTHH:mm:ss.fffffffZ
hebben.
Notitie
De beleidsvrijstellingen worden niet verwijderd wanneer de expiresOn
datum is bereikt. Het object blijft behouden voor het bewaren van records, maar de uitzondering wordt niet meer gehonoreerd.
Resourceselectors
Uitzonderingen ondersteunen een optionele eigenschap resourceSelectors
die op dezelfde manier werkt in uitzonderingen als in toewijzingen. Met de eigenschap kan een uitzondering geleidelijk worden geïmplementeerd of teruggedraaid naar bepaalde subsets van resources op een gecontroleerde manier op basis van het resourcetype, de resourcelocatie of of de resource een locatie heeft. Meer informatie over het gebruik van resourceselectors vindt u in de toewijzingsstructuur. De volgende JSON is een voorbeeld van een uitzondering die gebruikmaakt van resourceselectors. In dit voorbeeld zijn alleen resources uitgesloten westcentralus
van de beleidstoewijzing:
{
"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"
}
Regio's kunnen worden toegevoegd aan of verwijderd uit de resourceLocation
lijst in het voorbeeld. Resourceselectors bieden meer flexibiliteit voor waar en hoe uitzonderingen kunnen worden gemaakt en beheerd.
Validatie van toewijzingsbereik (preview)
In de meeste scenario's wordt het uitzonderingsbereik gevalideerd om ervoor te zorgen dat het binnen of onder het bereik van de beleidstoewijzing valt. Met de optionele assignmentScopeValidation
eigenschap kan een uitzondering deze validatie omzeilen en buiten het toewijzingsbereik worden gemaakt. Deze validatie is bedoeld voor situaties waarin een abonnement moet worden verplaatst van de ene beheergroep (MG) naar een andere, maar de verplaatsing wordt geblokkeerd door beleid vanwege eigenschappen van resources binnen het abonnement. In dit scenario kan een uitzondering worden gemaakt voor het abonnement in de huidige MG om de resources ervan te uitsluiten van een beleidstoewijzing op de doel-MG. Op die manier wordt de bewerking niet geblokkeerd wanneer het abonnement wordt verplaatst naar de doel-MG, omdat resources al zijn uitgesloten van de betreffende beleidstoewijzing. Het gebruik van deze eigenschap wordt weergegeven in het volgende voorbeeld:
{
"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"
}
Toegestane waarden voor assignmentScopeValidation
zijn Default
en DoNotValidate
. Als dit niet is opgegeven, vindt het standaardvalidatieproces plaats.
Vereiste machtigingen
De azure RBAC-machtigingen (op rollen gebaseerd toegangsbeheer) die nodig zijn voor het beheren van uitzonderingsobjecten voor beleid, bevinden zich in de Microsoft.Authorization/policyExemptions
bewerkingsgroep. De ingebouwde rollen Resource Policy Contributor en Security Admin hebben zowel de read
als machtigingen en write
Policy Insights Data Writer (Preview) heeft de read
machtiging.
Vrijstellingen hebben extra beveiligingsmaatregelen vanwege het effect van het verlenen van een vrijstelling. Naast het vereisen van de Microsoft.Authorization/policyExemptions/write
bewerking in de resourcehiërarchie of afzonderlijke resource, moet de maker van een uitzondering het exempt/Action
werkwoord hebben voor de doeltoewijzing.
Uitzondering maken en beheren
Uitzonderingen worden aanbevolen voor tijdgebonden of specifieke scenario's waarbij een resource- of resourcehiërarchie nog steeds moet worden bijgehouden en anders wordt geëvalueerd, maar er is een specifieke reden waarom deze niet moet worden beoordeeld op naleving. Als in een omgeving bijvoorbeeld de ingebouwde definitie Storage accounts should disable public network access
(ID: b2982f36-99f2-4db5-8eff-283140c09693
) is toegewezen met het effect ingesteld op controle. Bij de evaluatie van naleving is de resource StorageAcc1
niet-compatibel, maar StorageAcc1
moet openbare netwerktoegang zijn ingeschakeld voor zakelijke doeleinden. Op dat moment moet een aanvraag worden ingediend om een uitzonderingsresource te maken die is gericht op StorageAcc1
. Nadat de uitzondering is gemaakt, StorageAcc1
wordt deze weergegeven als vrijgesteld in nalevingsbeoordeling.
Ga regelmatig terug naar uw uitzonderingen om ervoor te zorgen dat alle in aanmerking komende items op de juiste wijze worden uitgesloten en onmiddellijk alle items verwijderen die niet in aanmerking komen voor vrijstelling. Op dat moment kunnen verlopen uitzonderingsbronnen ook worden verwijderd.
Volgende stappen
- Meer informatie over Azure Resource Graph-query's over uitzonderingen.
- Meer informatie over het verschil tussen uitsluitingen en uitzonderingen.
- Controleer het resourcetype Microsoft.Authorization policyExemptions.
- Meer informatie over het ophalen van nalevingsgegevens.
- Ontdek hoe u niet-compatibele resources kunt herstellen.