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:

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 ( : allowedLocationspolicyDefinitionReferenceId ):

{
    "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"
    }
}

Visningsnamn och beskrivning

Du använder displayName och beskrivning 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 en maximal längd på 512 tecken.

Metadata

Med metadataegenskapen kan du skapa alla underordnade egenskaper som behövs för att lagra relevant information. I exemplet innehåller properties 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 metadataegenskaper ä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 kan egenskapen policyDefinitionReferenceIds användas för att ange vilka principdefinitioner i initiativet som ä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:

  • Minimerad: Undantaget beviljas eftersom princip avsikten uppfylls via en annan metod.
  • Undantag: Undantaget beviljas eftersom resursens icke-efterlevnadstillstånd godkänns tillfälligt. En annan anledning att använda den här kategorin är för en resurs- eller resurshierarki som ska undantas från en eller flera definitioner i ett initiativ, men som inte bör undantas från hela initiativet.

Förfallodatum

Ange egenskapen expiresOn om du vill ange när en resurshierarki eller en enskild resurs inte längre är undantagenfrå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. Den här egenskapen fungerar på samma sätt i undantag som i tilldelningar, vilket 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. Här är ett exempel på undantags-JSON, som använder resursväljare. I det här exemplet undantas endast resurser i westcentralus från principtilldelningen:

{
    "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"
}

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. Detta är avsett för situationer där en prenumeration måste flyttas från en hanteringsgrupp (MG) till en annan, men flytten skulle blockeras av principen 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 nedan:

{
    "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"
}

Tillåtna värden för assignmentScopeValidation är Default och DoNotValidate. Om det inte anges sker standardverifieringsprocessen.

Behörigheter som krävs

De Azure RBAC-behörigheter 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 writePolicy Insights Data Writer (förhandsversion) har behörigheten read .

Undantag har extra säkerhetsåtgärder på grund av den påverkan som beviljande av ett undantag medför. 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" icke-kompatibel, men StorageAcc1 måste ha offentlig nätverksåtkomst aktiverad för affärsändamål. Vid den tidpunkten ska en begäran skickas för att skapa en undantagsresurs som är avsedd för StorageAcc1. När undantaget har skapats visas StorageAcc1 som undantagen i efterlevnadsgranskningen.

Gå regelbundet tillbaka till dina undantag för att säkerställa att alla berättigade objekt är undantagna på lämpligt sätt och omedelbart ta bort eventuella undantag som inte längre är berättigade till undantag. Då kan även undantagsresurser som har upphört att gälla tas bort.

Nästa steg