【问题标题】:Azure policy forcing the use of Elastic Pool in the any new databaseAzure 策略强制在任何新数据库中使用弹性池
【发布时间】:2020-05-06 18:21:12
【问题描述】:

我正在尝试创建一个策略,如果设置中没有弹性池,则该策略将阻止将数据库发布到资源组。 不幸的是,每次设置条件的尝试都以阻塞数据库版本结束,无论它们是否启用了此选项。 我尝试使用各种字段类型作为参数(从最简单的例子开始):

 "if": {
         "allOf": [
          {
            "field": "type",
            "notEquals": "Microsoft.Sql/servers/elasticPools"
       },
       "then": {
         "effect": "Deny"
       }

但每次都失败。如何正确制定 JSON 中的条件以使策略生效?也许有人有一个现成配置的例子?也许是某个地方的现成配置示例?

【问题讨论】:

    标签: azure policy


    【解决方案1】:

    我正在解决类似的问题,似乎过滤器需要更明确才能正常工作。您可以从下面的示例中看到,我正在过滤数据库并且 ElasticPoolID 值不存在...

      "if": {
        "allOf": [
          {
            "field": "type",
            "equals": "Microsoft.Sql/servers/databases"
          },
          {
            "not": {
              "field": "Microsoft.Sql/servers/databases/elasticPoolId",
              "exists": "true"
            }
          }
        ]
      },
      "then": {
        "effect": "audit"
      }
    

    我还没有尝试过拒绝创建,但它似乎可以审计现有的数据库。

    【讨论】:

      【解决方案2】:

      您缺少用于 allof 的封闭括号。你应该能够做到这一点: “如果”: { “字段”:“类型”, “notEquals”:“Microsoft.Sql/servers/elasticPools” }, “然后”: { “效果”:“拒绝” }

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-12
        • 2020-10-16
        • 1970-01-01
        • 1970-01-01
        • 2018-06-30
        相关资源
        最近更新 更多