如何编写自定义策略,禁止Azure租户级别直接创建订阅,仅允许管理组下创建?
Azure自定义策略:限制仅在管理组级别创建订阅
正确的策略定义
{ "mode": "All", "policyRule": { "if": { "allOf": [ { "field": "type", "equals": "Microsoft.Subscription/subscriptions" }, { "not": { "field": "Microsoft.Subscription/subscriptions.properties.parent.type", "equals": "ManagementGroup" } } ] }, "then": { "effect": "Deny" } }, "parameters": {}, "metadata": { "category": "Subscription" } }
关键注意事项
- 模式必须设为
All:订阅属于租户级资源,只有All模式能覆盖这类资源的创建操作。 - 使用正确的资源类型:别用
Microsoft.Resources/subscriptions,订阅创建对应的目标类型是Microsoft.Subscription/subscriptions。 - 条件判断逻辑:通过
Microsoft.Subscription/subscriptions.properties.parent.type别名校验父级类型,仅允许父级为管理组的订阅创建请求。 - 分配范围要覆盖租户根:把策略分配到租户根管理组(格式为
/providers/Microsoft.Management/managementGroups/你的租户根ID),确保所有订阅创建场景都被管控。
验证步骤
- 尝试直接在租户级别创建订阅:无论用门户、CLI还是PowerShell,都会触发策略拒绝。
- 在指定管理组下创建订阅:拥有对应权限的用户可正常完成创建。
内容的提问来源于stack exchange,提问作者Shan
相关产品推荐
相关产品推荐

