【问题标题】:Is there a way to deny creation of web app's without a network rule defined有没有办法在没有定义网络规则的情况下拒绝创建网络应用程序
【发布时间】:2019-09-02 18:23:21
【问题描述】:

我试图拒绝在 azure 中创建未定义网络规则的 Web 应用程序。

我正在尝试为此使用 Azure Policy,但无法使该策略生效。我已经确定了在 Azure 中保存配置的策略别名:

Microsoft.Web/sites/config/web.ipSecurityRestrictions[*].vnetSubnetResourceId
Microsoft.Web/sites/config/web.ipSecurityRestrictions[*].vnetTrafficTag
Microsoft.Web/sites/config/web.ipSecurityRestrictions[*].subnetTrafficTag
Microsoft.Web/sites/config/web.ipSecurityRestrictions[*].action
Microsoft.Web/sites/config/web.ipSecurityRestrictions[*].tag
Microsoft.Web/sites/config/web.ipSecurityRestrictions[*].priority
Microsoft.Web/sites/config/web.ipSecurityRestrictions[*].name
Microsoft.Web/sites/config/web.ipSecurityRestrictions[*].description
Microsoft.Web/sites/config/web.scmIpSecurityRestrictions[*].ipAddress
Microsoft.Web/sites/config/web.scmIpSecurityRestrictions[*].subnetMask
Microsoft.Web/sites/config/web.scmIpSecurityRestrictions[*].vnetSubnetResourceId
Microsoft.Web/sites/config/web.scmIpSecurityRestrictions[*].vnetTrafficTag
Microsoft.Web/sites/config/web.scmIpSecurityRestrictions[*].subnetTrafficTag
Microsoft.Web/sites/config/web.scmIpSecurityRestrictions[*].action
Microsoft.Web/sites/config/web.scmIpSecurityRestrictions[*].tag
Microsoft.Web/sites/config/web.scmIpSecurityRestrictions[*].priority
Microsoft.Web/sites/config/web.scmIpSecurityRestrictions[*].name
Microsoft.Web/sites/config/web.scmIpSecurityRestrictions[*].description                  
Microsoft.Web/sites/config/web.scmIpSecurityRestrictions[*]

但是我tride的策略不起作用,这是最新的迭代:

{
  "mode": "All",
  "policyRule": {
    "if": {
      "allOf": [
        {
          "field": "type",
          "equals": "Microsoft.Web/sites"
        },
        {
          "not": {
            "field": "Microsoft.Web/sites/config/web.ipSecurityRestrictions[*].action",
            "equals": "deny"
          }
        }
      ]
    },
    "then": {
      "effect": "deny"
    }
  },
  "parameters": {}
}

我正在尝试在数组中查找“拒绝”操作,如果已定义,则不需要任何操作,否则拒绝。但是策略什么也没做,我可以部署有或没有网络规则的 web 应用程序。

【问题讨论】:

    标签: azure policy azure-policy


    【解决方案1】:

    在 Azure 中,顶级资源被建模为较小的微资源,它们协同工作并创建功能性最终资源。在您的情况下,网站将属于 Microsft.Web/sites 微资源类型,但配置将位于另一个名为 Microsoft.Web/sites/config 的微资源类型中。

    Azure 策略仅在您处理单一微资源类型时才对您有所帮助。微资源类型是异步部署和创建的,因此目前无法基于另一种来拒绝。

    您可以使用 auditIfNotExists 编写类似的策略,该策略具有基于另一个属性审核微资源的能力。

    PS:我在这里编造了微资源术语来清楚地传达问题,在 Azure 中,每一个都被定义为一个资源

    查看 auditIfNotExist 文档:https://docs.microsoft.com/en-us/azure/governance/policy/concepts/effects#auditifnotexists

    您的解决方案看起来与此类似(未经测试)

    {
    "if": {
        "field": "type",
        "equals": "Microsoft.Web/sites"
    },
    "then": {
        "effect": "auditIfNotExists",
        "details": {
            "type": "Microsoft.Web/sites/config",
            "existenceCondition": {
                {
                    "field": "Microsoft.Web/sites/config/web.ipSecurityRestrictions[*].action",
                    "equals": "deny"
                }
            }
        }
    }
    

    }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-03
      • 1970-01-01
      • 2021-01-07
      • 2023-03-31
      • 2019-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多