有没有人知道如何通过策略限制添加到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完成同样的事情;但是,我的组织不想走这条路,宁愿在政策上完成。
答案 0 :(得分:2)
我没有足够的声誉对您的问题发表评论。但是,请确保在Portal中输入分配参数时要小心。如果您输入"它会按原样使用字符串。 0.0.0.0; 8.8.8.8"如你所指定的那样,前导空格和尾随空格会使比较变得混乱。
您可以使用Get-AzureRmPolicyAssignment powershell cmdlet(或类似的Azure CLI命令)检查分配中的确切参数值。为了更轻松地使用cmdlet,可以在门户网站中的分配合规性视图中公开分配的完整ID。