Azure自定义Policy的Modify效果自动配置存储账户VNet规则疑问
Azure Policy Modify 效果行为说明
核心逻辑澄清
你对Modify效果的认知存在部分偏差:Modify 效果的生效分为两类场景:
- 针对策略生效后发起的资源创建、更新请求:Azure Resource Manager(ARM)会在请求处理阶段实时执行策略评估,若检测到请求内容不符合规则,会直接按照Modify定义的操作自动修正配置后再完成资源的创建/更新,这个过程是默认强制触发的,不需要手动操作。
- 针对策略生效前已经存在的不合规资源:才需要手动创建Remediation(补救)任务执行修正,Modify不会自动扫描历史存量资源主动修改。
对应你遇到的现象解释
- 新建存储账户自动添加VNet配置:你发起存储账户创建请求时,ARM会先触发策略评估,检测到你选择「所有网络」的配置不符合规则,会自动将你定义的
virtualNetworkRules和defaultAction=Deny配置补充到创建参数中,最终完成创建的存储账户自然就是符合VNet集成要求的状态。 - 手动修改配置自动回滚:你通过UI、PowerShell修改存储账户网络配置的操作,本质是发起了一次资源更新请求,ARM同样会先执行策略评估,检测到更新后的配置不合规,会直接按照Modify规则修正配置后再完成更新,所以你会看到修改后的配置被快速回滚,且无报错提示——这个修正动作是ARM在请求处理流程中自动完成的,属于合规强制的正常表现。
另外你策略中配置的conflictEffect: "audit"仅在多个Modify策略同时修改同一个资源字段产生冲突时生效,你当前的场景无策略冲突,因此Modify操作会直接执行。
若要实现「仅手动补救时才修正配置」的预期
如果不需要Modify自动拦截创建、更新请求,仅需要对存量不合规资源做手动补救,可以将策略的effect参数改为Audit:此时不合规的创建、更新请求会被正常执行,仅会产生审计日志标记资源不合规,你可以按需手动发起补救任务修正配置。
内容的提问来源于stack exchange,提问作者Roger Chen
相关产品推荐
相关产品推荐

