分享方式:


Azure 原則 定義 denyAction 效果

效果 denyAction 是用來根據大規模資源的預定動作來封鎖要求。 目前唯一支援的動作是 DELETE。 此效果和動作名稱有助於防止意外刪除重要資源。

DenyAction 評估

提交具有適用動作名稱和目標範圍的要求呼叫時,denyAction 會防止要求成功。 要求會以 403 (Forbidden) 的形式傳回。 在入口網站中, Forbidden 可以檢視為原則指派所防止的部署狀態。

Microsoft.Authorization/policyAssignmentsMicrosoft.Authorization/denyAssignmentsMicrosoft.Blueprint/blueprintAssignmentsMicrosoft.Resources/deploymentStacksMicrosoft.Resources/subscriptionsMicrosoft.Authorization/locks 全都不受 denyAction 強制執行,以防止鎖定案例。

訂用帳戶刪除

原則不會封鎖刪除訂閱期間發生的資源刪除。

資源群組刪除

原則在資源群組刪除期間,根據 denyAction 原則評估支援位置和標記的資源。 只有在原則規則中,將 cascadeBehaviors 設定為 deny 的原則,才會封鎖資源群組刪除。 原則不會封鎖移除不支援位置和標籤的資源,也不會封鎖任何具有 mode:all 的原則。

串聯刪除

刪除父資源時,會隱含刪除其所有子系和延伸模組資源時發生串聯刪除。 當刪除動作以父資源為目標時,原則不會封鎖移除子系和延伸模塊資源。 例如, Microsoft.Insights/diagnosticSettings 是的 Microsoft.Storage/storageaccounts擴充資源。 如果原則目標為 denyAction Microsoft.Insights/diagnosticSettings,則對診斷設定的刪除呼叫失敗,但對記憶體帳戶的刪除會隱含刪除診斷設定(擴充功能)。

此表格描述資源是否受到保護,以免因為資源適用於指派 denyAction 的原則和呼叫的目標範圍 DELETE 而遭到刪除。 在此資料表的內容中,索引資源是支援標籤和位置的資源,且非索引資源是不支援標籤或位置的資源。 如需索引和非索引資源的詳細資訊,請移至 定義模式。 子資源是只存在於另一個資源內容中的資源。 例如,虛擬機擴充資源是虛擬機的子系,也就是父資源。

正在刪除的實體 適用於原則條件的實體 已採取的動作
資源 資源 Protected
訂用帳戶 資源 已刪除
資源群組 已編制索引資源 相依於 cascadeBehaviors
資源群組 未編制索引的資源 已刪除
子資源 父資源 父系受到保護;子系已刪除
父資源 子資源 已刪除

DenyAction 屬性

details效果的 denyAction 屬性具有定義動作和行為的所有子屬性。

  • actionNames (必要)
    • 一組陣列,用於指定要防止執行的動作。
    • 支援的動作名稱為:delete
  • cascadeBehaviors (選擇性)
    • 對象,定義移除資源群組時,隱含刪除資源時所遵循的行為。
    • 僅在 mode 設定為 indexed 的原則定義中才支援。
    • 允許值為allowdeny
    • 預設值為 deny

DenyAction 範例

範例:拒絕針對具有等於 prod 的標記環境的資料庫帳戶的任何刪除呼叫。由於串聯行為設定為「拒絕」,因此封鎖以具有適用資料庫帳戶的資源群組為目標的任何 DELETE 呼叫。

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

下一步