You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建Azure策略以阻止Azure存储账户中队列(Queue)的创建?

如何创建Azure策略以阻止Azure存储账户中队列(Queue)的创建?

我明白你现在遇到的困扰——明明写了策略却拦不住队列的创建,这确实挺让人头疼的。咱们来一步步解决这个问题:

首先,你之前的策略没生效的核心原因是资源类型匹配错了:
你用的Microsoft.Storage/storageAccounts/queueServices其实是存储账户里的「队列服务」基础资源(每个存储账户默认会附带这个服务框架),而不是你实际要阻止的「具体队列实例」。当你创建新队列时,对应的资源类型是Microsoft.Storage/storageAccounts/queueServices/queues,这才是你需要精准匹配的目标。

给你调整后的完整策略定义,直接用这个应该就能生效:

resource policyBlockResourceTypes 'Microsoft.Authorization/policyDefinitions@2020-09-01' = {
  name: '${policyConfigurations.policyBlockResourceTypes.name} - block-storage-queues'
  properties: {
    displayName: '[${policyConfigurations.policyBlockResourceTypes.name}] Block Storage Account Queues'
    policyType: 'Custom'
    mode: 'All'
    description: 'Policy to allow Storage Accounts but deny creation of Queues within them; Blob and File resources are permitted.'
    metadata: policyConfigurations.policyBlockResourceTypes.metadata
    policyRule: {
      if: {
        field: 'type'
        equals: 'Microsoft.Storage/storageAccounts/queueServices/queues'
      }
      then: {
        effect: 'deny'
      }
    }
  }
}

另外还有几个需要注意的细节:

  • 策略分配后别着急测试,通常需要等待5-10分钟让策略在Azure中完全生效;
  • 确保策略分配的范围覆盖了你要管控的存储账户所在的订阅/资源组;
  • 如果你还想同时阻止创建队列服务本身(不过默认存储账户创建时不会自动生成这个服务,只有第一次使用队列时才会触发创建),可以把匹配规则改成like: 'Microsoft.Storage/storageAccounts/queueServices*',这样就能覆盖队列服务和所有队列实例。

如果还是有问题,可以检查一下策略分配的合规性报告,看看有没有相关的资源被标记出来,或者确认创建队列的操作是否真的触发了策略评估。

备注:内容来源于stack exchange,提问作者FerdiS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 10:52:38