Azure存在性检查拒绝策略:存储账户未开HTTPS时禁止新建Blob/文件共享
实现方案说明
可行性判定
可以创建符合需求的策略规则,核心通过关联子资源对应的父存储账户属性做判定,只会拦截Blob容器、文件共享的创建,不会限制存储账户本身的创建操作。
原策略失效原因
- 未关联子资源对应的父存储账户实例,直接引用父级字段
supportsHttpsTrafficOnly的匹配逻辑不生效 - 仅覆盖了SMB协议的文件共享创建,未包含Blob容器的拦截规则
supportsHttpsTrafficOnly为布尔类型,使用字符串"true"匹配会出现类型不匹配,无法正确判定属性- 操作匹配覆盖不全,缺少Blob容器对应的操作判定
可用策略示例
以下为可正常生效的完整策略规则片段,策略模式需设置为All:
{ "mode": "All", "policyRule": { "if": { "allOf": [ { "anyOf": [ { "type": "Microsoft.Storage/storageAccounts/blobServices/containers" }, { "type": "Microsoft.Storage/storageAccounts/fileServices/shares" } ] }, { "field": "parent('Microsoft.Storage/storageAccounts').supportsHttpsTrafficOnly", "equals": false } ] }, "then": { "effect": "deny" } } }
如果仅需拦截SMB协议的文件共享,可在文件共享的匹配规则中额外添加Microsoft.Storage/storageAccounts/fileServices/shares/enabledProtocols等于SMB的判定条件即可。
内容的提问来源于stack exchange,提问作者Saran
相关产品推荐
相关产品推荐

