Share via


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.Dataen 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/{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, approvedOnen 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.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 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