你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
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 |
| 订阅 | 资源 | Deleted |
| 资源组 | 索引资源 | 依赖cascadeBehaviors |
| 资源组 | 未编制索引的资源 | Deleted |
| 子资源 | 父资源 | 父级受保护;子级已删除 |
| 父资源 | 子资源 | Deleted |
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 Policy 示例中查看示例。
- 查看 Azure Policy 定义结构。
- 了解如何以编程方式创建策略。
- 了解如何获取符合性数据。
- 了解如何修正不符合的资源。
- 请查看 Azure 管理组。