请求修正Azure Policy:限制管理员仅用Standard计划创建App Service
修正后的Azure Policy:仅允许Standard计划创建App Service
你的原Policy存在核心偏差:它针对的是**App Service Environment(ASE)**资源,而非普通的App Service实例,且规则逻辑是阻止旧版ASE,和你限制定价层的需求完全不符。以下是符合需求的修正版本:
{ "properties": { "displayName": "仅允许使用Standard计划创建App Service", "policyType": "Custom", "mode": "All", "description": "阻止管理员使用Premium或其他非Standard计划创建新的App Service,仅允许Standard系列定价层", "metadata": { "version": "1.0.0", "category": "App Service" }, "parameters": { "effect": { "type": "String", "metadata": { "displayName": "执行效果", "description": "启用或禁用策略执行" }, "allowedValues": [ "Audit", "Deny", "Disabled" ], "defaultValue": "Deny" }, "allowedSkuPrefix": { "type": "String", "metadata": { "displayName": "允许的SKU前缀", "description": "指定允许的App Service定价层前缀,此处为Standard系列的S前缀" }, "defaultValue": "S" } }, "policyRule": { "if": { "allOf": [ { "field": "type", "equals": "Microsoft.Web/sites" }, { "not": { "field": "Microsoft.Web/sites/sku.name", "like": "[concat(parameters('allowedSkuPrefix'), '*')]" } } ] }, "then": { "effect": "[parameters('effect')]" } } }, "id": "/providers/Microsoft.Authorization/policyDefinitions/[自定义策略ID]", "type": "Microsoft.Authorization/policyDefinitions", "name": "[自定义策略名称]" }
关键修改说明
- 资源类型修正:将目标资源从
Microsoft.Web/hostingEnvironments改为Microsoft.Web/sites,对应普通App Service实例 - 规则逻辑调整:通过
not + like判断,拒绝所有SKU名称不以S开头的App Service(Standard系列定价层均以S开头,如S1、S2、S3) - 模式设置:使用
All模式,确保策略在资源创建和更新时都能生效 - 参数优化:新增
allowedSkuPrefix参数,方便后续灵活调整允许的定价层前缀 - 元数据更新:修正了显示名称和描述,匹配实际需求
内容的提问来源于stack exchange,提问作者bob
相关产品推荐
相关产品推荐

