Azure 原則 定義 denyAction 效果
效果 denyAction
是用來根據大規模資源的預定動作來封鎖要求。 目前唯一支援的動作是 DELETE
。 此效果和動作名稱有助於防止意外刪除重要資源。
DenyAction 評估
提交具有適用動作名稱和目標範圍的要求呼叫時,denyAction
會防止要求成功。 要求會以 403 (Forbidden)
的形式傳回。 在入口網站中, Forbidden
可以檢視為原則指派所防止的部署狀態。
Microsoft.Authorization/policyAssignments
、 Microsoft.Authorization/denyAssignments
、 Microsoft.Blueprint/blueprintAssignments
、 Microsoft.Resources/deploymentStacks
、 Microsoft.Resources/subscriptions
和 Microsoft.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
的原則定義中才支援。 - 允許值為
allow
或deny
。 - 預設值為
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"
}
}
}
}
下一步
- 在 Azure 原則範例檢閱範例。
- 檢閱 Azure 原則定義結構。
- 了解如何以程式設計方式建立原則。
- 了解如何取得合規性資料。
- 了解如何補救不符合規範的資源。
- 檢閱 Azure 管理群組。