Azure SQL PaaS和Azure策略交互

时间:2018-05-15 20:10:49

标签: azure azure-sql-database

有没有人知道如何通过策略限制添加到SQL防火墙规则的IP地址?

我已经尝试了一段时间了,我的政策如下所示......我已经尝试了一切 - 有什么东西可以忽略吗? :

    {
  "if": {
    "allOf": [
      {
        "field": "type",
        "equals": "Microsoft.SQL/servers/firewallRules"
      },
      {
        "Not": {
          "anyOf": [
            {
              "field": "Microsoft.Sql/servers/firewallRules/startIpAddress",
              "in": "[parameters('StartIP')]"
            },
            {
              "field": "Microsoft.Sql/servers/firewallRules/endIpAddress",
              "in": "[parameters('EndIP')]"
            }
          ]
        }
      }
    ]
  },
  "then": {
    "effect": "Deny"
  }
}

但是,尽管策略分配中提供了什么,但在更新防火墙规则时它总是会引发策略错误。

例如,如果我的参数都是“0.0.0.0; 8.8.8.8”,我认为我可以访问Azure服务和8.8.8.8,但事实并非如此 - 我只是得到了相同的旧拒绝到期政策错误。

如果我只使用0.0.0.0作为赋值的参数我可以配置新的SQL服务器,删除它我不能让我相信在某种程度上,策略是有效的。

我知道我可以做整个vnet路线并使用NSGS完成同样的事情;但是,我的组织不想走这条路,宁愿在政策上完成。

1 个答案:

答案 0 :(得分:2)

我没有足够的声誉对您的问题发表评论。但是,请确保在Portal中输入分配参数时要小心。如果您输入"它会按原样使用字符串。 0.0.0.0; 8.8.8.8"如你所指定的那样,前导空格和尾随空格会使比较变得混乱。

您可以使用Get-AzureRmPolicyAssignment powershell cmdlet(或类似的Azure CLI命令)检查分配中的确切参数值。为了更轻松地使用cmdlet,可以在门户网站中的分配合规性视图中公开分配的完整ID。