2

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 キャッシュであり、その規則に一致しない場合は、監査します。

更新された JSON

4

1 に答える 1