Azure 策略强制在任何新数据库中使用弹性池
Azure policy forcing the use of Elastic Pool in the any new database
我正在尝试创建一个策略,如果设置中没有弹性池,该策略将阻止向资源组释放数据库。
不幸的是,无论是否启用此选项,每次设置条件的尝试都以阻止数据库发布而告终。
我尝试使用各种字段类型作为参数(从最简单的例子开始):
"if": {
"allOf": [
{
"field": "type",
"notEquals": "Microsoft.Sql/servers/elasticPools"
},
"then": {
"effect": "Deny"
}
但每次都失败。如何正确制定 JSON 中的条件以使政策生效?也许有人有现成配置的例子?也许是某处现成配置的示例?
您缺少 allof 的右括号。你应该能够做到这一点:
"if":{
"field": "type",
"notEquals": "Microsoft.Sql/servers/elasticPools"
},
"then":{
"effect": "Deny"
}
我正在解决类似的问题,过滤器似乎需要更明确才能正常工作。您可以从下面的示例中看到,我正在过滤数据库和 ElasticPoolID 值的 non-existence...
"if": {
"allOf": [
{
"field": "type",
"equals": "Microsoft.Sql/servers/databases"
},
{
"not": {
"field": "Microsoft.Sql/servers/databases/elasticPoolId",
"exists": "true"
}
}
]
},
"then": {
"effect": "audit"
}
我还没有试过它拒绝创建,但它似乎可以审计现有的数据库。
我正在尝试创建一个策略,如果设置中没有弹性池,该策略将阻止向资源组释放数据库。 不幸的是,无论是否启用此选项,每次设置条件的尝试都以阻止数据库发布而告终。 我尝试使用各种字段类型作为参数(从最简单的例子开始):
"if": {
"allOf": [
{
"field": "type",
"notEquals": "Microsoft.Sql/servers/elasticPools"
},
"then": {
"effect": "Deny"
}
但每次都失败。如何正确制定 JSON 中的条件以使政策生效?也许有人有现成配置的例子?也许是某处现成配置的示例?
您缺少 allof 的右括号。你应该能够做到这一点: "if":{ "field": "type", "notEquals": "Microsoft.Sql/servers/elasticPools" }, "then":{ "effect": "Deny" }
我正在解决类似的问题,过滤器似乎需要更明确才能正常工作。您可以从下面的示例中看到,我正在过滤数据库和 ElasticPoolID 值的 non-existence...
"if": {
"allOf": [
{
"field": "type",
"equals": "Microsoft.Sql/servers/databases"
},
{
"not": {
"field": "Microsoft.Sql/servers/databases/elasticPoolId",
"exists": "true"
}
}
]
},
"then": {
"effect": "audit"
}
我还没有试过它拒绝创建,但它似乎可以审计现有的数据库。