Azure リソースを読み取り、標準化された命名規則に従っていることを確認するカスタム Azure Policy JSON を作成したいと考えています。たとえば、仮想マシン、クラウド サービス、Redis キャッシュ用にセットアップしようとしています。
{
"if": {
"allof": [
{
"field": "type",
"equals": "Microsoft.Compute/virtualMachines"
},
{
"not": {
"anyOf": [
{
"field": "name",
"match": "gz?????????#?##"
}
]
}
}
]
},
"then": {
"effect": "[parameters('effect')]"
}
"if": {
"allof": [
{
"field": "type",
"equals": "Microsoft.ClassicCompute/domainNames"
},
{
"not": {
"anyOf": [
{
"field": "name",
"match": "GZ?-??????-??#-???-??????-###"
}
]
}
}
]
},
"then": {
"effect": "[parameters('effect')]"
}
"if": {
"allof": [
{
"field": "type",
"equals": "Microsoft.Cache/Redis"
},
{
"not": {
"anyOf": [
{
"field": "name",
"match": "gz?????????#???###"
}
]
}
}
]
},
"then": {
"effect": "[parameters('effect')]"
}
}
私が設定しようとしている方法のように、Azure では複数の IF が存在することは許可されていないと思います。私がやりたいことはこれです:
リソースが VM であり、その規則に一致しない場合は、監査します。リソースがクラウド サービスであり、その規則に一致しない場合は、監査します。リソースが Redis キャッシュであり、その規則に一致しない場合は、監査します。