Dela via


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.Dataoch 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/{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, approvedOnoch 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