Efekt denyAction v definicích služby Azure Policy

Účinek denyAction se používá k blokování požadavků na základě zamýšlené akce na prostředky ve velkém měřítku. Jediná podporovaná akce je DELETEdnes . Tento účinek a název akce pomáhají zabránit náhodnému odstranění důležitých prostředků.

Vyhodnocení DenyAction

Když se odešle volání žádosti s příslušným názvem akce a cílovým oborem, zabrání tomu, denyAction aby požadavek proběhl úspěšně. Požadavek se vrátí jako 403 (Forbidden). Na portálu Forbidden se dá zobrazit jako stav nasazení, kterému přiřazení zásad zabránilo.

Microsoft.Authorization/policyAssignments, , Microsoft.Authorization/denyAssignmentsMicrosoft.Blueprint/blueprintAssignments, Microsoft.Resources/deploymentStacks, Microsoft.Resources/subscriptions, a Microsoft.Authorization/locks jsou všechny vyloučeny z denyAction vynucení, aby se zabránilo scénářům uzamčení.

Odstranění předplatného

Zásady neblokují odebrání prostředků, ke kterým dochází během odstraňování předplatného.

Odstranění skupiny prostředků

Zásada vyhodnocuje prostředky, které podporují umístění a značky proti denyAction zásadám při odstraňování skupiny prostředků. Odstranění skupiny prostředků blokují jenom zásady, které mají cascadeBehaviors nastavené deny v pravidle zásad. Zásady neblokují odebrání prostředků, které nepodporují umístění a značky ani žádné zásady s mode:all.

Kaskádové odstranění

Kaskádové odstranění nastane, když odstranění nadřazeného prostředku implicitně odstraní všechny jeho podřízené a rozšiřující prostředky. Zásady neblokují odebrání podřízených a rozšiřujících prostředků, když akce odstranění cílí na nadřazené prostředky. Například Microsoft.Insights/diagnosticSettings je rozšířením prostředku Microsoft.Storage/storageaccounts. Pokud zásady denyAction cílí Microsoft.Insights/diagnosticSettings, volání odstranění nastavení diagnostiky (podřízené) selže, ale odstranění účtu úložiště (nadřazené) implicitně odstraní nastavení diagnostiky (rozšíření).

Tato tabulka popisuje, jestli je prostředek chráněný před odstraněním vzhledem k prostředku použitelnému pro přiřazenou denyAction zásadu a cílový rozsah DELETE volání. V kontextu této tabulky je indexovaný prostředek, který podporuje značky a umístění a neindexovaný prostředek je ten, který nepodporuje značky nebo umístění. Další informace o indexovaných a neindexovaných prostředcích najdete v režimu definice. Podřízené prostředky jsou prostředky, které existují pouze v kontextu jiného prostředku. Prostředek rozšíření virtuálních počítačů je například podřízeným prostředkem virtuálního počítače, což je nadřazený prostředek.

Odstraněná entita Entita použitelná na podmínky zásad Provedená akce
Prostředek Prostředek Chráněno
Předplatné Prostředek Odstraněné
Skupina prostředků Indexovaný prostředek Závisí na cascadeBehaviors
Skupina prostředků Neindexovaný prostředek Odstraněné
Podřízený prostředek Nadřazený prostředek Nadřazený objekt je chráněn; podřízená položka je odstraněna.
Nadřazený prostředek Podřízený prostředek Odstraněné

Vlastnosti DenyAction

Vlastnost details efektu denyAction má všechny dílčí vlastnosti, které definují akci a chování.

  • actionNames (povinné)
    • Pole, které určuje, jaké akce se mají zabránit spuštění.
    • Podporované názvy akcí jsou: delete.
  • cascadeBehaviors (volitelné)
    • Objekt, který definuje, které chování se následuje, když je prostředek implicitně odstraněn při odebrání skupiny prostředků.
    • Podporováno pouze v definicích zásad s režimem nastaveným na indexed.
    • Povolené hodnoty jsou allow nebo deny.
    • Výchozí hodnota je deny.

Příklad DenyAction

Příklad: Zamítnout všechna volání odstranění cílící na databázové účty, které mají prostředí značek, které se rovná prod. Vzhledem k tomu, že kaskádové chování je nastaveno na odepření, zablokujte všechna DELETE volání, která cílí na skupinu prostředků s příslušným databázovým účtem.

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

Další kroky