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:

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 (: requiredTagspolicyDefinitionReferenceId) en de ingebouwde beleidsdefinitie Toegestane locaties ( policyDefinitionReferenceId : allowedLocations):

{
    "id": "/subscriptions/{subId}/resourceGroups/ExemptRG/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",
        "policyDefinitionReferenceIds": [
            "requiredTags",
            "allowedLocations"
        ],
        "exemptionCategory": "waiver",
        "expiresOn": "2020-12-31T23:59:00.0000000Z",
        "assignmentScopeValidation": "Default"
    }
}

Schermnaam en -beschrijving

U gebruikt displayName en beschrijving 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 een maximale lengte van 512 tekens.

Metagegevens

Met de eigenschap metagegevens 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 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 eigenschappen van metagegevens zijn voorbeelden, maar zijn niet vereist en metagegevens zijn niet beperkt tot deze onderliggende eigenschappen.

Beleidstoewijzings-id

Dit veld moet de volledige padnaam van een beleidstoewijzing of een initiatieftoewijzing zijn. 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 de policyAssignmentId eigenschap is bedoeld voor een initiatieftoewijzing, kan de eigenschap policyDefinitionReferenceIds worden gebruikt om op te geven aan welke beleidsdefinitie(s) in het initiatief de onderwerpresource een uitzondering heeft. Omdat de resource kan worden 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:

  • Beperkt: de uitzondering wordt verleend omdat aan de beleidsintentie wordt voldaan via een andere methode.
  • Afstand: De vrijstelling wordt verleend omdat de niet-nalevingsstatus van de resource tijdelijk wordt geaccepteerd. Een andere reden om deze categorie te gebruiken, is voor een resource- of resourcehiërarchie die moet worden uitgesloten van een of meer definities in een initiatief, maar niet mag worden uitgesloten van het hele initiatief.

Verloopdatum

Als u wilt instellen wanneer een resourcehiërarchie of een afzonderlijke resource niet langer is vrijgesteld van een toewijzing, stelt u de eigenschap expiresOn in. Deze optionele eigenschap moet de Universal ISO 8601 DateTime-indeling yyyy-MM-ddTHH:mm:ss.fffffffZhebben.

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. Deze eigenschap werkt op dezelfde manier in uitzonderingen als in toewijzingen, waardoor een uitzondering geleidelijk kan worden geïmplementeerd of teruggedraaid naar bepaalde subsets van resources op een gecontroleerde manier op basis van resourcetype, resourcelocatie of of de resource een locatie heeft. Meer informatie over het gebruik van resourceselectors vindt u in de toewijzingsstructuur. Hier volgt een voorbeeld van een uitzonderings-JSON, die gebruikmaakt van resourceselectors. In dit voorbeeld worden alleen resources uitgesloten westcentralus van de beleidstoewijzing:

{
    "properties": {
        "policyAssignmentId": "/subscriptions/{subId}/providers/Microsoft.Authorization/policyAssignments/CostManagement",
        "policyDefinitionReferenceIds": [
            "limitSku", "limitType"
        ],
        "exemptionCategory": "Waiver",
        "resourceSelectors": [
            {
                "name": "TemporaryMitigation",
                "selectors": [
                    {
                        "kind": "resourceLocation",
                        "in": [ "westcentralus" ]
                    }
                ]
            }
        ]
    },
    "systemData": { ... },
    "id": "/subscriptions/{subId}/resourceGroups/demoCluster/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. Dit 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 hieronder geïllustreerd:

{
    "properties": {
        "policyAssignmentId": "/providers/Microsoft.Management/managementGroups/{mgB}/providers/Microsoft.Authorization/policyAssignments/CostManagement",
        "policyDefinitionReferenceIds": [
            "limitSku", "limitType"
        ],
        "exemptionCategory": "Waiver",
        "assignmentScopeValidation": "DoNotValidate",
    },
    "systemData": { ... },
    "id": "/subscriptions/{subIdA}/providers/Microsoft.Authorization/policyExemptions/DemoExpensiveVM",
    "type": "Microsoft.Authorization/policyExemptions",
    "name": "DemoExpensiveVM"
}

Toegestane waarden voor assignmentScopeValidation zijn Default en DoNotValidate. Als dit niet is opgegeven, wordt het standaardvalidatieproces uitgevoerd.

Vereiste machtigingen

De Azure RBAC-machtigingen die nodig zijn voor het beheren van beleidsvrijstellingsobjecten bevinden zich in de Microsoft.Authorization/policyExemptions bewerkingsgroep. De ingebouwde rollen Resource Policy Contributor en Security Beheer zowel de read als write machtigingen hebben en Policy Insights Data Writer (Preview) heeft de read machtiging.

Uitzonderingen hebben extra beveiligingsmaatregelen vanwege de gevolgen van het verlenen van een uitzondering. 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 nalevingsevaluatie is de resource StorageAcc1 niet-compatibel, maar StorageAcc1 moet openbare netwerktoegang hebben voor zakelijke doeleinden. Op dat moment moet een aanvraag worden ingediend om een uitzonderingsresource te maken die is gericht op StorageAcc1. Zodra de uitzondering is gemaakt, wordt StorageAcc1 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 worden verwijderd die niet meer in aanmerking komen voor vrijstelling. Op dat moment kunnen ook uitzonderingsbronnen die zijn verlopen, worden verwijderd.

Volgende stappen