Azure Policy-definitioner nekarÅtgärdseffekt

Effekten denyAction används för att blockera begäranden baserat på avsedd åtgärd för resurser i stor skala. Den enda åtgärd som stöds i dag är DELETE. Den här effekten och åtgärdsnamnet hjälper till att förhindra oavsiktlig borttagning av kritiska resurser.

DenyAction-utvärdering

När ett begärandeanrop med ett tillämpligt åtgärdsnamn och målomfång skickas förhindrar denyAction det att begäran lyckas. Begäran returneras som en 403 (Forbidden). I portalen Forbidden kan visas som en distributionsstatus som förhindrades av principtilldelningen.

Microsoft.Authorization/policyAssignments, Microsoft.Authorization/denyAssignments, Microsoft.Blueprint/blueprintAssignments, Microsoft.Resources/deploymentStacks, Microsoft.Resources/subscriptionsoch Microsoft.Authorization/locks är alla undantagna från denyAction verkställighet för att förhindra utelåsningsscenarier.

Borttagning av prenumeration

Principen blockerar inte borttagning av resurser som inträffar under en prenumerationsborttagning.

Borttagning av resursgrupp

Principen utvärderar resurser som stöder plats och taggar mot denyAction principer under en borttagning av resursgrupper. Endast principer som har angetts cascadeBehaviors till deny i principregeln blockerar borttagning av resursgrupper. Principen blockerar inte borttagning av resurser som inte stöder plats och taggar eller någon princip med mode:all.

Kaskadborttagning

Kaskadborttagning sker när borttagning av en överordnad resurs implicit tar bort alla dess underordnade resurser och tilläggsresurser. Principen blockerar inte borttagning av underordnade resurser och tilläggsresurser när en borttagningsåtgärd riktar sig mot de överordnade resurserna. Är till exempel Microsoft.Insights/diagnosticSettings en tilläggsresurs för Microsoft.Storage/storageaccounts. Om en denyAction princip är mål Microsoft.Insights/diagnosticSettingsmisslyckas ett borttagningsanrop till diagnostikinställningen (underordnad), men en borttagning till lagringskontot (överordnad) tar implicit bort diagnostikinställningen (tillägget).

Den här tabellen beskriver om en resurs skyddas från borttagning med tanke på resursen som är tillämplig på den tilldelade denyAction principen och anropets DELETE målomfång. I den här tabellen är en indexerad resurs en resurs som stöder taggar och platser och en icke-indexerad resurs är en resurs som inte stöder taggar eller platser. Mer information om indexerade och icke-indexerade resurser finns i definitionsläge. Underordnade resurser är resurser som bara finns i kontexten för en annan resurs. En tilläggsresurs för virtuella datorer är till exempel underordnad den virtuella datorn, som är den överordnade resursen.

Entitet som tas bort Entitet som gäller för principvillkor Åtgärder som vidtagits
Resurs Resurs Skyddad
Prenumeration Resurs Borttagen
Resursgrupp Indexerad resurs Beror på cascadeBehaviors
Resursgrupp Icke-indexerad resurs Borttagen
Underordnad resurs Överordnad resurs Överordnad är skyddad. underordnad tas bort
Överordnad resurs Underordnad resurs Borttagen

Egenskaper för DenyAction

Effektens detailsdenyAction egenskap har alla underegenskaper som definierar åtgärden och beteendena.

  • actionNames (krävs)
    • En matris som anger vilka åtgärder som ska förhindras att köras.
    • Åtgärdsnamn som stöds är: delete.
  • cascadeBehaviors (valfritt)
    • Ett objekt som definierar vilket beteende som följs när en resurs implicit tas bort när en resursgrupp tas bort.
    • Stöds endast i principdefinitioner med läget inställt på indexed.
    • Tillåtna värden är allow eller deny.
    • Standardvärdet är deny.

DenyAction-exempel

Exempel: Neka alla borttagningsanrop som riktar sig till databaskonton som har en taggmiljö som är lika med prod. Eftersom kaskadbeteendet är inställt på att neka blockerar du alla DELETE anrop som riktar sig mot en resursgrupp med ett tillämpligt databaskonto.

{
  "if": {
    "allOf": [
      {
        "field": "type",
        "equals": "Microsoft.DocumentDb/accounts"
      },
      {
        "field": "tags.environment",
        "equals": "prod"
      }
    ]
  },
  "then": {
    "effect": "denyAction",
    "details": {
      "actionNames": [
        "delete"
      ],
      "cascadeBehaviors": {
        "resourceGroup": "deny"
      }
    }
  }
}

Nästa steg